From d9ad5dd0c25a4ad7c7884cfe88227d6f86871ff0 Mon Sep 17 00:00:00 2001 From: Deborah Kaplan Date: Thu, 18 Jul 2024 15:33:02 -0400 Subject: [PATCH] test: adding a new test for missing certificate available date (#2525) we have a weird error condition happening sometimes when the certificate available date is missing. On the one hand, this test does not reveal the cause of the error condition, but on the other hand, is an important test to have. --- .../apps/api/v2/tests/test_serializers.py | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/credentials/apps/api/v2/tests/test_serializers.py b/credentials/apps/api/v2/tests/test_serializers.py index 17a0477b8..52c20cb4f 100644 --- a/credentials/apps/api/v2/tests/test_serializers.py +++ b/credentials/apps/api/v2/tests/test_serializers.py @@ -335,6 +335,7 @@ def test_course_credential(self): class CourseCertificateSerializerTests(SiteMixin, TestCase): def test_create_course_certificate(self): + """We can create a course certificate configuration""" course_run = CourseRunFactory() course_certificate = CourseCertificateFactory(site=self.site, course_run=course_run) Request = namedtuple("Request", ["site"]) @@ -351,7 +352,7 @@ def test_create_course_certificate(self): self.assertEqual(actual, expected) def test_missing_course_run(self): - # We should be able to create an entry without a course run + """We can create a course certificate configuration without a course run""" course_certificate = CourseCertificateFactory(site=self.site, course_run=None) Request = namedtuple("Request", ["site"]) actual = CourseCertificateSerializer(course_certificate, context={"request": Request(site=self.site)}).data @@ -367,8 +368,7 @@ def test_missing_course_run(self): self.assertEqual(actual, expected) def test_create_without_course_run_raises_warning(self): - # even though you can create an entry without a course run, - # we want to make sure we are logging a warning when it is missing + """Creating a course certificate configuration without a course run raises a warning""" with self.assertLogs(level=WARNING): Request = namedtuple("Request", ["site"]) CourseCertificateSerializer(context={"request": Request(site=self.site)}).create( @@ -379,3 +379,24 @@ def test_create_without_course_run_raises_warning(self): "certificate_available_date": None, } ) + + def test_missing_certificate_available_date(self): + """We can create a course certificate configuration without a certificate available date""" + course_run = CourseRunFactory() + course_certificate = CourseCertificateFactory( + site=self.site, + course_run=course_run, + certificate_available_date=None, + ) + Request = namedtuple("Request", ["site"]) + actual = CourseCertificateSerializer(course_certificate, context={"request": Request(site=self.site)}).data + expected = { + "id": course_certificate.id, + "site": self.site.id, + "course_run": course_certificate.course_run.key, + "course_id": course_certificate.course_id, + "certificate_type": course_certificate.certificate_type, + "certificate_available_date": None, + "is_active": course_certificate.is_active, + } + self.assertEqual(actual, expected)