Add cosmetic price field to studio & logic

- Price field added to Advanced Settings
- Function that decides which price to display
- Test added to check that the function outputs correct price
- Added feature flag and conditional to decide whether to display course price or not
- Feature Flag to show or hide course price on Course About page sidebar when not using shopping cart
This commit is contained in:
Giulio Gratta
2014-10-10 11:43:55 -07:00
parent f6d0918555
commit c18ee8cc09
5 changed files with 60 additions and 10 deletions

View File

@@ -199,6 +199,24 @@ class ViewsTestCase(TestCase):
mock_course.id = self.course_key
self.assertTrue(views.registered_for_course(mock_course, self.user))
@override_settings(PAID_COURSE_REGISTRATION_CURRENCY=["USD", "$"])
def test_get_cosmetic_display_price(self):
"""
Check that get_cosmetic_display_price() returns the correct price given its inputs.
"""
registration_price = 99
self.course.cosmetic_display_price = 10
# Since registration_price is set, it overrides the cosmetic_display_price and should be returned
self.assertEqual(views.get_cosmetic_display_price(self.course, registration_price), "$99")
registration_price = 0
# Since registration_price is not set, cosmetic_display_price should be returned
self.assertEqual(views.get_cosmetic_display_price(self.course, registration_price), "$10")
self.course.cosmetic_display_price = 0
# Since both prices are not set, there is no price, thus "Free"
self.assertEqual(views.get_cosmetic_display_price(self.course, registration_price), "Free")
def test_jump_to_invalid(self):
# TODO add a test for invalid location
# TODO add a test for no data *