88
99import ddt
1010from zoneinfo import ZoneInfo
11- from consent .models import DataSharingConsent
1211from django .contrib .auth .models import User # lint-amnesty, pylint: disable=imported-auth-user
1312from django .contrib .sites .models import Site
1413from django .core import mail
1514from django .core .cache import cache
1615from django .test import TestCase
1716from django .urls import reverse
18- from enterprise .models import (
19- EnterpriseCourseEnrollment ,
20- EnterpriseCustomer ,
21- EnterpriseCustomerUser ,
22- PendingEnterpriseCustomerUser
23- )
24- from integrated_channels .sap_success_factors .models import SapSuccessFactorsLearnerDataTransmissionAudit
2517from opaque_keys .edx .keys import CourseKey
2618from rest_framework import status
2719from social_django .models import UserSocialAuth
6557)
6658from openedx .core .djangoapps .external_user_ids .models import ExternalIdType
6759from openedx .core .djangoapps .oauth_dispatch .jwt import create_jwt_for_user
68- from openedx .core .djangoapps .site_configuration .tests .factories import SiteFactory
6960from openedx .core .djangoapps .user_api .accounts .views import AccountRetirementPartnerReportView
7061from openedx .core .djangoapps .user_api .models import (
7162 RetirementState ,
@@ -1289,33 +1280,6 @@ def setUp(self):
12891280 self .cache_key = UserProfile .country_cache_key_name (self .test_user .id )
12901281 cache .set (self .cache_key , 'Timor-leste' )
12911282
1292- # Enterprise model setup
1293- self .course_id = 'course-v1:edX+DemoX.1+2T2017'
1294- self .enterprise_customer = EnterpriseCustomer .objects .create (
1295- name = 'test_enterprise_customer' ,
1296- site = SiteFactory .create ()
1297- )
1298- self .enterprise_user = EnterpriseCustomerUser .objects .create (
1299- enterprise_customer = self .enterprise_customer ,
1300- user_id = self .test_user .id ,
1301- )
1302- self .enterprise_enrollment = EnterpriseCourseEnrollment .objects .create (
1303- enterprise_customer_user = self .enterprise_user ,
1304- course_id = self .course_id
1305- )
1306- self .pending_enterprise_user = PendingEnterpriseCustomerUser .objects .create (
1307- enterprise_customer_id = self .enterprise_user .enterprise_customer_id ,
1308- user_email = self .test_user .email
1309- )
1310- self .sapsf_audit = SapSuccessFactorsLearnerDataTransmissionAudit .objects .create (
1311- sapsf_user_id = self .test_user .id ,
1312- enterprise_course_enrollment_id = self .enterprise_enrollment .id ,
1313- )
1314- self .consent = DataSharingConsent .objects .create (
1315- username = self .test_user .username ,
1316- enterprise_customer = self .enterprise_customer ,
1317- )
1318-
13191283 # Entitlement model setup
13201284 self .entitlement = CourseEntitlementFactory .create (user = self .test_user )
13211285 self .entitlement_support_detail = CourseEntitlementSupportDetail .objects .create (
@@ -1348,46 +1312,13 @@ def setUp(self):
13481312 self .headers ['content_type' ] = "application/json"
13491313 self .url = reverse ('accounts_retire' )
13501314
1351- def _data_sharing_consent_assertions (self ):
1352- """
1353- Helper method for asserting that ``DataSharingConsent`` objects are retired.
1354- """
1355- self .consent .refresh_from_db ()
1356- assert self .retired_username == self .consent .username
1357- test_users_data_sharing_consent = DataSharingConsent .objects .filter (
1358- username = self .original_username
1359- )
1360- assert not test_users_data_sharing_consent .exists ()
1361-
13621315 def _entitlement_support_detail_assertions (self ):
13631316 """
13641317 Helper method for asserting that ``CourseEntitleSupportDetail`` objects are retired.
13651318 """
13661319 self .entitlement_support_detail .refresh_from_db ()
13671320 assert '' == self .entitlement_support_detail .comments
13681321
1369- def _pending_enterprise_customer_user_assertions (self ):
1370- """
1371- Helper method for asserting that ``PendingEnterpriseCustomerUser`` objects are retired.
1372- """
1373- self .pending_enterprise_user .refresh_from_db ()
1374- assert self .retired_email == self .pending_enterprise_user .user_email
1375- pending_enterprise_users = PendingEnterpriseCustomerUser .objects .filter (
1376- user_email = self .original_email
1377- )
1378- assert not pending_enterprise_users .exists ()
1379-
1380- def _sapsf_audit_assertions (self ):
1381- """
1382- Helper method for asserting that ``SapSuccessFactorsLearnerDataTransmissionAudit`` objects are retired.
1383- """
1384- self .sapsf_audit .refresh_from_db ()
1385- assert '' == self .sapsf_audit .sapsf_user_id
1386- audits_for_original_user_id = SapSuccessFactorsLearnerDataTransmissionAudit .objects .filter (
1387- sapsf_user_id = self .test_user .id ,
1388- )
1389- assert not audits_for_original_user_id .exists ()
1390-
13911322 def post_and_assert_status (self , data , expected_status = status .HTTP_204_NO_CONTENT ):
13921323 """
13931324 Helper function for making a request to the retire subscriptions endpoint, and asserting the status.
@@ -1463,9 +1394,6 @@ def test_retire_user(self, mock_remove_profile_images, mock_get_profile_image_na
14631394
14641395 assert cache .get (self .cache_key ) is None
14651396
1466- self ._data_sharing_consent_assertions ()
1467- self ._sapsf_audit_assertions ()
1468- self ._pending_enterprise_customer_user_assertions ()
14691397 self ._entitlement_support_detail_assertions ()
14701398
14711399 assert not PendingEmailChange .objects .filter (user = self .test_user ).exists ()
@@ -1480,6 +1408,21 @@ def test_retire_user_twice_idempotent(self):
14801408 fake_completed_retirement (self .test_user )
14811409 self .post_and_assert_status (data )
14821410
1411+ @mock .patch ('openedx.core.djangoapps.user_api.accounts.views.USER_RETIRE_LMS_CRITICAL' )
1412+ def test_retirement_sends_critical_signal_with_retirement_data (self , mock_signal ):
1413+ """
1414+ USER_RETIRE_LMS_CRITICAL is sent with retired_username and retired_email kwargs.
1415+ """
1416+ data = {'username' : self .original_username }
1417+ self .post_and_assert_status (data )
1418+
1419+ mock_signal .send .assert_called_once_with (
1420+ sender = mock_signal .send .call_args [1 ]['sender' ],
1421+ user = mock_signal .send .call_args [1 ]['user' ],
1422+ retired_username = self .retired_username ,
1423+ retired_email = self .retired_email ,
1424+ )
1425+
14831426 def test_deletes_pii_from_user_profile (self ):
14841427 for model_field , value_to_assign in USER_PROFILE_PII .items ():
14851428 if value_to_assign == '' :
@@ -1520,18 +1463,6 @@ def test_can_delete_user_profiles_country_cache(self):
15201463 AccountRetirementView .delete_users_country_cache (self .test_user )
15211464 assert cache .get (self .cache_key ) is None
15221465
1523- def test_can_retire_users_datasharingconsent (self ):
1524- AccountRetirementView .retire_users_data_sharing_consent (self .test_user .username , self .retired_username )
1525- self ._data_sharing_consent_assertions ()
1526-
1527- def test_can_retire_users_sap_success_factors_audits (self ):
1528- AccountRetirementView .retire_sapsf_data_transmission (self .test_user )
1529- self ._sapsf_audit_assertions ()
1530-
1531- def test_can_retire_user_from_pendingenterprisecustomeruser (self ):
1532- AccountRetirementView .retire_user_from_pending_enterprise_customer_user (self .test_user , self .retired_email )
1533- self ._pending_enterprise_customer_user_assertions ()
1534-
15351466 def test_course_entitlement_support_detail_comments_are_retired (self ):
15361467 AccountRetirementView .retire_entitlement_support_detail (self .test_user )
15371468 self ._entitlement_support_detail_assertions ()
0 commit comments