From fa89221d46183bbbae3f693a4038d3eb6e9c4615 Mon Sep 17 00:00:00 2001 From: Andy Shultz Date: Tue, 17 Aug 2021 11:29:06 -0400 Subject: [PATCH] feat: update name affirmation to 0.6.1 Certificate tests required an update to switch from boolean verified flag to status. This feature is not deployed yet so only test uses needed attention. MST-969 and friends --- lms/djangoapps/certificates/tests/test_generation.py | 11 +++++++---- lms/djangoapps/certificates/tests/test_models.py | 11 +++++++---- .../certificates/tests/test_webview_views.py | 11 +++++++---- requirements/edx/base.txt | 2 +- requirements/edx/development.txt | 2 +- requirements/edx/testing.txt | 2 +- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/lms/djangoapps/certificates/tests/test_generation.py b/lms/djangoapps/certificates/tests/test_generation.py index add17cdae7..fde6c99082 100644 --- a/lms/djangoapps/certificates/tests/test_generation.py +++ b/lms/djangoapps/certificates/tests/test_generation.py @@ -6,6 +6,7 @@ import logging from unittest import mock from edx_name_affirmation.api import create_verified_name, create_verified_name_config +from edx_name_affirmation.statuses import VerifiedNameStatus from edx_name_affirmation.toggles import VERIFIED_NAME_FLAG from edx_toggles.toggles.testutils import override_waffle_flag @@ -195,16 +196,18 @@ class CertificateTests(EventTestMixin, ModuleStoreTestCase): assert cert.name == '' @override_waffle_flag(VERIFIED_NAME_FLAG, active=True) - @ddt.data((True, True), (True, False), (False, False)) + @ddt.data((True, VerifiedNameStatus.APPROVED), + (True, VerifiedNameStatus.DENIED), + (False, VerifiedNameStatus.PENDING)) @ddt.unpack - def test_generation_verified_name(self, should_use_verified_name_for_certs, is_verified): + def test_generation_verified_name(self, should_use_verified_name_for_certs, status): """ Test that if verified name functionality is enabled and the user has their preference set to use verified name for certificates, their verified name will appear on the certificate rather than their profile name. """ verified_name = 'Jonathan Doe' - create_verified_name(self.u, verified_name, self.name, is_verified=is_verified) + create_verified_name(self.u, verified_name, self.name, status=status) create_verified_name_config(self.u, use_verified_name_for_certs=should_use_verified_name_for_certs) GeneratedCertificateFactory( @@ -220,7 +223,7 @@ class CertificateTests(EventTestMixin, ModuleStoreTestCase): cert = GeneratedCertificate.objects.get(user=self.u, course_id=self.key) - if should_use_verified_name_for_certs and is_verified: + if should_use_verified_name_for_certs and status == VerifiedNameStatus.APPROVED: assert cert.name == verified_name else: assert cert.name == self.name diff --git a/lms/djangoapps/certificates/tests/test_models.py b/lms/djangoapps/certificates/tests/test_models.py index 2025c27289..20e9a56526 100644 --- a/lms/djangoapps/certificates/tests/test_models.py +++ b/lms/djangoapps/certificates/tests/test_models.py @@ -13,6 +13,7 @@ from django.core.files.uploadedfile import SimpleUploadedFile from django.test import TestCase from django.test.utils import override_settings from edx_name_affirmation.api import create_verified_name, create_verified_name_config +from edx_name_affirmation.statuses import VerifiedNameStatus from edx_name_affirmation.toggles import VERIFIED_NAME_FLAG from edx_toggles.toggles.testutils import override_waffle_flag from opaque_keys.edx.locator import CourseKey, CourseLocator @@ -545,15 +546,17 @@ class GeneratedCertificateTest(SharedModuleStoreTestCase): self._assert_event_data(mock_emit_certificate_event, expected_event_data) @override_waffle_flag(VERIFIED_NAME_FLAG, active=True) - @ddt.data((True, True), (True, False), (False, False)) + @ddt.data((True, VerifiedNameStatus.APPROVED), + (True, VerifiedNameStatus.DENIED), + (False, VerifiedNameStatus.PENDING)) @ddt.unpack - def test_invalidate_with_verified_name(self, should_use_verified_name_for_certs, is_verified): + def test_invalidate_with_verified_name(self, should_use_verified_name_for_certs, status): """ Test the invalidate method with verified name turned on for the user's certificates """ verified_name = 'Jonathan Doe' profile = UserProfile.objects.get(user=self.user) - create_verified_name(self.user, verified_name, profile.name, is_verified=is_verified) + create_verified_name(self.user, verified_name, profile.name, status=status) create_verified_name_config(self.user, use_verified_name_for_certs=should_use_verified_name_for_certs) cert = GeneratedCertificateFactory.create( @@ -568,7 +571,7 @@ class GeneratedCertificateTest(SharedModuleStoreTestCase): cert.invalidate(mode=mode, source=source) cert = GeneratedCertificate.objects.get(user=self.user, course_id=self.course_key) - if should_use_verified_name_for_certs and is_verified: + if should_use_verified_name_for_certs and status == VerifiedNameStatus.APPROVED: assert cert.name == verified_name else: assert cert.name == profile.name diff --git a/lms/djangoapps/certificates/tests/test_webview_views.py b/lms/djangoapps/certificates/tests/test_webview_views.py index 1797384fd3..440b0c142f 100644 --- a/lms/djangoapps/certificates/tests/test_webview_views.py +++ b/lms/djangoapps/certificates/tests/test_webview_views.py @@ -13,6 +13,7 @@ from django.test.client import Client, RequestFactory from django.test.utils import override_settings from django.urls import reverse from edx_name_affirmation.api import create_verified_name, create_verified_name_config +from edx_name_affirmation.statuses import VerifiedNameStatus from edx_name_affirmation.toggles import VERIFIED_NAME_FLAG from edx_toggles.toggles.testutils import override_waffle_flag, override_waffle_switch from organizations import api as organizations_api @@ -1593,16 +1594,18 @@ class CertificatesViewsTests(CommonCertificatesTestCase, CacheIsolationTestCase) @override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED) @override_waffle_flag(VERIFIED_NAME_FLAG, active=True) - @ddt.data((True, True), (True, False), (False, False)) + @ddt.data((True, VerifiedNameStatus.APPROVED), + (True, VerifiedNameStatus.DENIED), + (False, VerifiedNameStatus.PENDING)) @ddt.unpack - def test_certificate_view_verified_name(self, should_use_verified_name_for_certs, is_verified): + def test_certificate_view_verified_name(self, should_use_verified_name_for_certs, status): """ Test that if verified name functionality is enabled and the user has their preference set to use verified name for certificates, their verified name will appear on the certificate rather than their profile name. """ verified_name = 'Jonathan Doe' - create_verified_name(self.user, verified_name, self.user.profile.name, is_verified=is_verified) + create_verified_name(self.user, verified_name, self.user.profile.name, status=status) create_verified_name_config(self.user, use_verified_name_for_certs=should_use_verified_name_for_certs) self._add_course_certificates(count=1, signatory_count=1) @@ -1613,7 +1616,7 @@ class CertificatesViewsTests(CommonCertificatesTestCase, CacheIsolationTestCase) ) response = self.client.get(test_url, HTTP_HOST='test.localhost') - if should_use_verified_name_for_certs and is_verified: + if should_use_verified_name_for_certs and status == VerifiedNameStatus.APPROVED: self.assertContains(response, verified_name) self.assertNotContains(response, self.user.profile.name) else: diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index dcaec24e17..6774287ceb 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -445,7 +445,7 @@ edx-i18n-tools==0.7.0 # via ora2 edx-milestones==0.3.2 # via -r requirements/edx/base.in -edx-name-affirmation==0.4.0 +edx-name-affirmation==0.6.1 # via -r requirements/edx/base.in edx-opaque-keys[django]==2.2.2 # via diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 846f73f641..9cf6b19415 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -542,7 +542,7 @@ edx-lint==5.0.0 # via -r requirements/edx/testing.txt edx-milestones==0.3.2 # via -r requirements/edx/testing.txt -edx-name-affirmation==0.4.0 +edx-name-affirmation==0.6.1 # via -r requirements/edx/testing.txt edx-opaque-keys[django]==2.2.2 # via diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index cf17196dbe..6ea62896f8 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -526,7 +526,7 @@ edx-lint==5.0.0 # via -r requirements/edx/testing.in edx-milestones==0.3.2 # via -r requirements/edx/base.txt -edx-name-affirmation==0.4.0 +edx-name-affirmation==0.6.1 # via -r requirements/edx/base.txt edx-opaque-keys[django]==2.2.2 # via