diff --git a/lms/djangoapps/commerce/api/v1/models.py b/lms/djangoapps/commerce/api/v1/models.py index a42f9e54fb..691af83475 100644 --- a/lms/djangoapps/commerce/api/v1/models.py +++ b/lms/djangoapps/commerce/api/v1/models.py @@ -87,8 +87,7 @@ class Course(object): merged_mode.min_price = posted_mode.min_price merged_mode.currency = posted_mode.currency merged_mode.sku = posted_mode.sku - if posted_mode.expiration_datetime is not None: - merged_mode.expiration_datetime = posted_mode.expiration_datetime + merged_mode.expiration_datetime = posted_mode.expiration_datetime merged_mode.save() merged_modes.add(merged_mode) diff --git a/lms/djangoapps/commerce/api/v1/tests/test_views.py b/lms/djangoapps/commerce/api/v1/tests/test_views.py index 1a7a762909..3c251c1f02 100644 --- a/lms/djangoapps/commerce/api/v1/tests/test_views.py +++ b/lms/djangoapps/commerce/api/v1/tests/test_views.py @@ -1,5 +1,5 @@ """ Commerce API v1 view tests. """ -from datetime import datetime +from datetime import datetime, timedelta import itertools import json @@ -226,6 +226,26 @@ class CourseRetrieveUpdateViewTests(CourseApiViewTestMixin, ModuleStoreTestCase) self.assertEqual(response.status_code, 200) self.assertIsNone(VerificationDeadline.deadline_for_course(self.course.id)) + def test_remove_upgrade_deadline(self): + """ + Verify that course mode upgrade deadlines can be removed through the API. + """ + # First create a deadline + upgrade_deadline = datetime.now(pytz.utc) + timedelta(days=1) + response, __ = self._get_update_response_and_expected_data(upgrade_deadline, None) + self.assertEqual(response.status_code, 200) + verified_mode = CourseMode.verified_mode_for_course(self.course.id) + self.assertIsNotNone(verified_mode) + self.assertEqual(verified_mode.expiration_datetime.date(), upgrade_deadline.date()) + + # Now set the deadline to None + response, __ = self._get_update_response_and_expected_data(None, None) + self.assertEqual(response.status_code, 200) + + updated_verified_mode = CourseMode.verified_mode_for_course(self.course.id) + self.assertIsNotNone(updated_verified_mode) + self.assertIsNone(updated_verified_mode.expiration_datetime) + def test_update_overwrite(self): """ Verify that data submitted via PUT overwrites/deletes modes that are not included in the body of the request. """