Commit 63cfcd3d by Jason Bau

change PaidCourseRegistration.contained_in_order

now handles cases where the order has both a PaidCourseRegistration
and a CertificateItem
parent 739ee04f
...@@ -478,8 +478,11 @@ class PaidCourseRegistration(OrderItem): ...@@ -478,8 +478,11 @@ class PaidCourseRegistration(OrderItem):
""" """
Is the course defined by course_id contained in the order? Is the course defined by course_id contained in the order?
""" """
return course_id in [item.paidcourseregistration.course_id return course_id in [
for item in order.orderitem_set.all().select_subclasses("paidcourseregistration")] item.course_id
for item in order.orderitem_set.all().select_subclasses("paidcourseregistration")
if isinstance(item, cls)
]
@classmethod @classmethod
def get_total_amount_of_purchased_item(cls, course_key): def get_total_amount_of_purchased_item(cls, course_key):
......
...@@ -337,6 +337,16 @@ class PaidCourseRegistrationTest(ModuleStoreTestCase): ...@@ -337,6 +337,16 @@ class PaidCourseRegistrationTest(ModuleStoreTestCase):
reg1.purchased_callback() reg1.purchased_callback()
self.assertFalse(CourseEnrollment.is_enrolled(self.user, self.course_key)) self.assertFalse(CourseEnrollment.is_enrolled(self.user, self.course_key))
def test_user_cart_has_both_items(self):
"""
This test exists b/c having both CertificateItem and PaidCourseRegistration in an order used to break
PaidCourseRegistration.contained_in_order
"""
cart = Order.get_cart_for_user(self.user)
CertificateItem.add_to_order(cart, self.course_key, self.cost, 'honor')
PaidCourseRegistration.add_to_order(self.cart, self.course_key)
self.assertTrue(PaidCourseRegistration.contained_in_order(cart, self.course_key))
@override_settings(MODULESTORE=TEST_DATA_MONGO_MODULESTORE) @override_settings(MODULESTORE=TEST_DATA_MONGO_MODULESTORE)
class CertificateItemTest(ModuleStoreTestCase): class CertificateItemTest(ModuleStoreTestCase):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment