Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
course-discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
course-discovery
Commits
bb7fe721
Commit
bb7fe721
authored
Feb 24, 2017
by
Simon Chen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix bug on total program price calculation
ECOM-7023
parent
3951f428
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
5 deletions
+17
-5
course_discovery/apps/course_metadata/models.py
+2
-1
course_discovery/apps/course_metadata/tests/test_models.py
+15
-4
No files found.
course_discovery/apps/course_metadata/models.py
View file @
bb7fe721
...
...
@@ -835,7 +835,8 @@ class Program(TimeStampedModel):
elif
((
seat
.
course_run
.
end
is
None
or
seat
.
course_run
.
end
>=
datetime
.
datetime
.
now
(
pytz
.
UTC
))
and
(
seat
.
course_run
.
enrollment_start
is
None
or
seat
.
course_run
.
enrollment_start
>
selected_seat
.
course_run
.
enrollment_start
and
seat
.
course_run
.
enrollment_start
>
(
selected_seat
.
course_run
.
enrollment_start
or
datetime
.
datetime
.
min
)
and
seat
.
course_run
.
enrollment_start
<
datetime
.
datetime
.
now
(
pytz
.
UTC
))):
# If the seat has same currency, the course has not ended,
# and the course is enrollable, then choose the new seat associated with the course instead,
...
...
course_discovery/apps/course_metadata/tests/test_models.py
View file @
bb7fe721
...
...
@@ -509,7 +509,7 @@ class ProgramTests(MarketingSitePublisherTestMixin):
expected_price_ranges
=
[{
'currency'
:
'USD'
,
'min'
:
Decimal
(
100
),
'max'
:
Decimal
(
300
),
'total'
:
Decimal
(
600
)}]
self
.
assertEqual
(
self
.
program
.
price_ranges
,
expected_price_ranges
)
def
create_program_with_multiple_course_runs
(
self
):
def
create_program_with_multiple_course_runs
(
self
,
set_all_dates
=
True
):
currency
=
Currency
.
objects
.
get
(
code
=
'USD'
)
single_course_course_runs
=
factories
.
CourseRunFactory
.
create_batch
(
3
)
course
=
factories
.
CourseFactory
()
...
...
@@ -520,9 +520,10 @@ class ProgramTests(MarketingSitePublisherTestMixin):
day_diff
=
1
for
course_run
in
course_runs_same_course
:
course_run
.
enrollment_start
=
datetime
.
datetime
.
now
()
-
datetime
.
timedelta
(
days
=
day_diff
)
course_run
.
end
=
datetime
.
datetime
.
now
()
+
datetime
.
timedelta
(
weeks
=
day_diff
)
course_run
.
save
()
if
set_all_dates
or
day_diff
>
1
:
course_run
.
enrollment_start
=
datetime
.
datetime
.
now
()
-
datetime
.
timedelta
(
days
=
day_diff
)
course_run
.
end
=
datetime
.
datetime
.
now
()
+
datetime
.
timedelta
(
weeks
=
day_diff
)
course_run
.
save
()
factories
.
SeatFactory
(
type
=
'audit'
,
currency
=
currency
,
course_run
=
course_run
,
price
=
0
)
factories
.
SeatFactory
(
type
=
'verified'
,
currency
=
currency
,
course_run
=
course_run
,
price
=
(
day_diff
*
100
))
day_diff
+=
1
...
...
@@ -545,6 +546,16 @@ class ProgramTests(MarketingSitePublisherTestMixin):
expected_price_ranges
=
[{
'currency'
:
'USD'
,
'min'
:
Decimal
(
10
),
'max'
:
Decimal
(
200
),
'total'
:
Decimal
(
130
)}]
self
.
assertEqual
(
program
.
price_ranges
,
expected_price_ranges
)
def
test_price_ranges_with_multiple_course_runs_and_none_dates
(
self
):
"""
Verifies the price_range property of a program with multiple courses,
and a course with multiple runs, and some of the dates in the course runs are None
"""
program
=
self
.
create_program_with_multiple_course_runs
(
set_all_dates
=
False
)
expected_price_ranges
=
[{
'currency'
:
'USD'
,
'min'
:
Decimal
(
10
),
'max'
:
Decimal
(
200
),
'total'
:
Decimal
(
230
)}]
self
.
assertEqual
(
program
.
price_ranges
,
expected_price_ranges
)
def
test_staff
(
self
):
staff
=
factories
.
PersonFactory
.
create_batch
(
2
)
self
.
course_runs
[
0
]
.
staff
.
add
(
staff
[
0
])
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment