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
This commit is contained in:
Andy Shultz
2021-08-17 11:29:06 -04:00
parent 97f750ffea
commit fa89221d46
6 changed files with 24 additions and 15 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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