response to cr
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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()
|
||||
@@ -203,6 +205,56 @@ class ShoppingCartViewsTests(ModuleStoreTestCase):
|
||||
self.assertIn(cert_item, context['order_items'])
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user