Commit bc38bbf6 by Renzo Lucioni

Make submission of the course verification deadline optional

Verification deadline should only be required if the course actually requires verification. XCOM-537.
parent eec2bfbc
......@@ -158,7 +158,8 @@ class AtomicPublicationSerializer(serializers.Serializer): # pylint: disable=ab
"""
id = serializers.RegexField(COURSE_ID_REGEX, max_length=255)
name = serializers.CharField(max_length=255)
verification_deadline = serializers.DateTimeField()
# Verification deadline should only be required if the course actually requires verification.
verification_deadline = serializers.DateTimeField(required=False, allow_null=True)
products = serializers.ListField()
def validate_products(self, products):
......@@ -193,7 +194,7 @@ class AtomicPublicationSerializer(serializers.Serializer): # pylint: disable=ab
"""
course_id = self.validated_data['id']
course_name = self.validated_data['name']
course_verification_deadline = self.validated_data['verification_deadline']
course_verification_deadline = self.validated_data.get('verification_deadline')
products = self.validated_data['products']
try:
......
......@@ -125,7 +125,7 @@ class AtomicPublicationTests(CourseCatalogTestMixin, UserMixin, TestCase):
course = Course.objects.get(id=course_id)
self.assertEqual(course.name, expected['name'])
verification_deadline = EXPIRES if expected['verification_deadline'] else None
verification_deadline = EXPIRES if expected.get('verification_deadline') else None
self.assertEqual(course.verification_deadline, verification_deadline)
# Validate product structure.
......@@ -238,3 +238,14 @@ class AtomicPublicationTests(CourseCatalogTestMixin, UserMixin, TestCase):
response = self.client.post(self.create_path, json.dumps(self.data), JSON_CONTENT_TYPE)
self.assertEqual(response.status_code, 400)
self._assert_course_saved(self.course_id)
def test_verification_deadline_optional(self):
"""Verify that submitting a course verification deadline is optional."""
self.data.pop('verification_deadline')
self._toggle_publication(True)
with mock.patch.object(LMSPublisher, 'publish') as mock_publish:
mock_publish.return_value = True
response = self.client.post(self.create_path, json.dumps(self.data), JSON_CONTENT_TYPE)
self.assertEqual(response.status_code, 201)
self._assert_course_saved(self.course_id, expected=self.data)
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