Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
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
edx-platform
Commits
3b9cd02b
Commit
3b9cd02b
authored
Dec 06, 2013
by
Julia Hansbrough
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
response to cr
parent
5aa1b231
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
58 additions
and
22 deletions
+58
-22
lms/djangoapps/shoppingcart/models.py
+0
-1
lms/djangoapps/shoppingcart/tests/test_models.py
+1
-14
lms/djangoapps/shoppingcart/tests/test_views.py
+53
-1
lms/djangoapps/shoppingcart/views.py
+2
-2
lms/templates/dashboard.html
+2
-4
No files found.
lms/djangoapps/shoppingcart/models.py
View file @
3b9cd02b
...
...
@@ -212,7 +212,6 @@ class OrderItem(models.Model):
refund_requested_time
=
models
.
DateTimeField
(
null
=
True
)
# general purpose field, not user-visible. Used for reporting
report_comments
=
models
.
TextField
(
default
=
""
)
refund_requested_time
=
models
.
DateTimeField
(
null
=
True
)
@property
def
line_cost
(
self
):
...
...
lms/djangoapps/shoppingcart/tests/test_models.py
View file @
3b9cd02b
...
...
@@ -434,7 +434,7 @@ class CertificateItemTest(ModuleStoreTestCase):
self
.
mock_get_current_request
.
return_value
=
sentinel
.
request
def
test_existing_enrollment
(
self
):
enrollment
=
CourseEnrollment
.
enroll
(
self
.
user
,
self
.
course_id
)
CourseEnrollment
.
enroll
(
self
.
user
,
self
.
course_id
)
cart
=
Order
.
get_cart_for_user
(
user
=
self
.
user
)
CertificateItem
.
add_to_order
(
cart
,
self
.
course_id
,
self
.
cost
,
'verified'
)
# verify that we are still enrolled
...
...
@@ -444,19 +444,6 @@ class CertificateItemTest(ModuleStoreTestCase):
enrollment
=
CourseEnrollment
.
objects
.
get
(
user
=
self
.
user
,
course_id
=
self
.
course_id
)
self
.
assertEquals
(
enrollment
.
mode
,
u'verified'
)
def
assert_upgrade_event_was_emitted
(
self
,
user
,
course_id
):
""" Helper function; checks that a particular was called only once """
self
.
mock_server_track
.
assert_called_once_with
(
sentinel
.
request
,
'edx.course.enrollment.upgrade.succeeded'
,
{
'course_id'
:
course_id
,
'user_id'
:
user
.
pk
,
'mode'
:
'honor'
}
)
self
.
mock_server_track
.
reset_mock
()
def
test_single_item_template
(
self
):
cart
=
Order
.
get_cart_for_user
(
user
=
self
.
user
)
cert_item
=
CertificateItem
.
add_to_order
(
cart
,
self
.
course_id
,
self
.
cost
,
'verified'
)
...
...
lms/djangoapps/shoppingcart/tests/test_views.py
View file @
3b9cd02b
...
...
@@ -20,7 +20,7 @@ from student.models import CourseEnrollment
from
course_modes.models
import
CourseMode
from
edxmako.shortcuts
import
render_to_response
from
shoppingcart.processors
import
render_purchase_form_html
from
mock
import
patch
,
Mock
from
mock
import
patch
,
Mock
,
sentinel
def
mock_render_purchase_form_html
(
*
args
,
**
kwargs
):
...
...
@@ -39,6 +39,8 @@ postpay_mock = Mock()
@override_settings
(
MODULESTORE
=
TEST_DATA_MONGO_MODULESTORE
)
class
ShoppingCartViewsTests
(
ModuleStoreTestCase
):
def
setUp
(
self
):
patcher
=
patch
(
'student.models.server_track'
)
self
.
mock_server_track
=
patcher
.
start
()
self
.
user
=
UserFactory
.
create
()
self
.
user
.
set_password
(
'password'
)
self
.
user
.
save
()
...
...
@@ -204,6 +206,56 @@ class ShoppingCartViewsTests(ModuleStoreTestCase):
self
.
assertFalse
(
context
[
'any_refunds'
])
@patch
(
'shoppingcart.views.render_to_response'
,
render_mock
)
def
test_show_receipt_success_with_upgrade
(
self
):
reg_item
=
PaidCourseRegistration
.
add_to_order
(
self
.
cart
,
self
.
course_id
)
cert_item
=
CertificateItem
.
add_to_order
(
self
.
cart
,
self
.
verified_course_id
,
self
.
cost
,
'honor'
)
self
.
cart
.
purchase
(
first
=
'FirstNameTesting123'
,
street1
=
'StreetTesting123'
)
self
.
login_user
()
# When we come from the upgrade flow, we'll have a session variable showing that
s
=
self
.
client
.
session
s
[
'attempting_upgrade'
]
=
True
s
.
save
()
self
.
mock_server_track
.
reset_mock
()
resp
=
self
.
client
.
get
(
reverse
(
'shoppingcart.views.show_receipt'
,
args
=
[
self
.
cart
.
id
]))
# Once they've upgraded, they're no longer *attempting* to upgrade
attempting_upgrade
=
self
.
client
.
session
.
get
(
'attempting_upgrade'
,
False
)
self
.
assertFalse
(
attempting_upgrade
)
self
.
assertEqual
(
resp
.
status_code
,
200
)
self
.
assertIn
(
'FirstNameTesting123'
,
resp
.
content
)
self
.
assertIn
(
'80.00'
,
resp
.
content
)
((
template
,
context
),
_
)
=
render_mock
.
call_args
# When we come from the upgrade flow, we get these context variables
self
.
assertEqual
(
template
,
'shoppingcart/receipt.html'
)
self
.
assertEqual
(
context
[
'order'
],
self
.
cart
)
self
.
assertIn
(
reg_item
,
context
[
'order_items'
])
self
.
assertIn
(
cert_item
,
context
[
'order_items'
])
self
.
assertFalse
(
context
[
'any_refunds'
])
course_enrollment
=
CourseEnrollment
.
get_or_create_enrollment
(
self
.
user
,
self
.
course_id
)
course_enrollment
.
emit_event
(
'edx.course.enrollment.upgrade.succeeded'
)
self
.
mock_server_track
.
assert_any_call
(
None
,
'edx.course.enrollment.upgrade.succeeded'
,
{
'user_id'
:
course_enrollment
.
user
.
id
,
'course_id'
:
course_enrollment
.
course_id
,
'mode'
:
course_enrollment
.
mode
}
)
self
.
mock_server_track
.
reset_mock
()
@patch
(
'shoppingcart.views.render_to_response'
,
render_mock
)
def
test_show_receipt_success_refund
(
self
):
reg_item
=
PaidCourseRegistration
.
add_to_order
(
self
.
cart
,
self
.
course_id
)
cert_item
=
CertificateItem
.
add_to_order
(
self
.
cart
,
self
.
verified_course_id
,
self
.
cost
,
'honor'
)
...
...
lms/djangoapps/shoppingcart/views.py
View file @
3b9cd02b
...
...
@@ -102,7 +102,6 @@ def show_receipt(request, ordernum):
Displays a receipt for a particular order.
404 if order is not yet purchased or request.user != order.user
"""
try
:
order
=
Order
.
objects
.
get
(
id
=
ordernum
)
except
Order
.
DoesNotExist
:
...
...
@@ -128,9 +127,10 @@ def show_receipt(request, ordernum):
receipt_template
=
order_items
[
0
]
.
single_item_receipt_template
context
.
update
(
order_items
[
0
]
.
single_item_receipt_context
)
# Only orders where order_items.count() == 1 might be attempting to upgrade
attempting_upgrade
=
request
.
session
.
get
(
'attempting_upgrade'
,
False
)
if
attempting_upgrade
:
course_enrollment
=
CourseEnrollment
.
get_or_create_enrollment
(
request
.
user
,
context
[
'course_id'
]
)
course_enrollment
=
CourseEnrollment
.
get_or_create_enrollment
(
request
.
user
,
order_items
[
0
]
.
course_id
)
course_enrollment
.
emit_event
(
EVENT_NAME_USER_UPGRADED
)
request
.
session
[
'attempting_upgrade'
]
=
False
...
...
lms/templates/dashboard.html
View file @
3b9cd02b
...
...
@@ -29,13 +29,11 @@
Logger
.
log
(
'edx.course.enrollment.upgrade.clicked'
,
[
user
,
course
],
null
);
%
if
waffle
.
flag_is_active
(
request
,
'alternate_upsell_copy'
):
analytics
.
track
(
"Clicked on Alternate Upsell Copy"
,
{
course
:
course
,
user
:
user
course
:
course
});
%
else
:
analytics
.
track
(
"Clicked on Regular Upsell Copy"
,
{
course
:
course
,
user
:
user
course
:
course
});
%
endif
});
...
...
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