Allow removing upgrade deadlines through the Commerce API.

This commit is contained in:
Peter Fogg
2015-12-30 11:54:47 -05:00
parent bc61e72c0c
commit 69432015f3
2 changed files with 22 additions and 3 deletions

View File

@@ -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)

View File

@@ -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. """