diff --git a/src/registrar/tests/test_admin_request.py b/src/registrar/tests/test_admin_request.py index 5b688343a..397de21db 100644 --- a/src/registrar/tests/test_admin_request.py +++ b/src/registrar/tests/test_admin_request.py @@ -627,28 +627,35 @@ class TestDomainRequestAdmin(MockEppLib): def test_action_needed_sends_reason_email_prod_bcc(self): """When an action needed reason is set, an email is sent out and help@get.gov is BCC'd in production""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) + BCC_EMAIL = settings.DEFAULT_FROM_EMAIL - User.objects.filter(email=EMAIL).delete() in_review = DomainRequest.DomainRequestStatus.IN_REVIEW action_needed = DomainRequest.DomainRequestStatus.ACTION_NEEDED # Create a sample domain request - domain_request = completed_domain_request(status=in_review) + domain_request = completed_domain_request(status=in_review, user=_creator) # Test the email sent out for already_has_domains already_has_domains = DomainRequest.ActionNeededReasons.ALREADY_HAS_DOMAINS self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=already_has_domains) - self.assert_email_is_accurate("ORGANIZATION ALREADY HAS A .GOV DOMAIN", 0, EMAIL, bcc_email_address=BCC_EMAIL) + self.assert_email_is_accurate("ORGANIZATION ALREADY HAS A .GOV DOMAIN", 0, _creator.email, bcc_email_address=BCC_EMAIL) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Test the email sent out for bad_name bad_name = DomainRequest.ActionNeededReasons.BAD_NAME self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=bad_name) self.assert_email_is_accurate( - "DOMAIN NAME DOES NOT MEET .GOV REQUIREMENTS", 1, EMAIL, bcc_email_address=BCC_EMAIL + "DOMAIN NAME DOES NOT MEET .GOV REQUIREMENTS", 1, _creator.email, bcc_email_address=BCC_EMAIL ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @@ -656,7 +663,7 @@ class TestDomainRequestAdmin(MockEppLib): eligibility_unclear = DomainRequest.ActionNeededReasons.ELIGIBILITY_UNCLEAR self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=eligibility_unclear) self.assert_email_is_accurate( - "ORGANIZATION MAY NOT MEET ELIGIBILITY REQUIREMENTS", 2, EMAIL, bcc_email_address=BCC_EMAIL + "ORGANIZATION MAY NOT MEET ELIGIBILITY REQUIREMENTS", 2, _creator.email, bcc_email_address=BCC_EMAIL ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 3) @@ -664,7 +671,7 @@ class TestDomainRequestAdmin(MockEppLib): questionable_so = DomainRequest.ActionNeededReasons.QUESTIONABLE_SENIOR_OFFICIAL self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=questionable_so) self.assert_email_is_accurate( - "SENIOR OFFICIAL DOES NOT MEET ELIGIBILITY REQUIREMENTS", 3, EMAIL, bcc_email_address=BCC_EMAIL + "SENIOR OFFICIAL DOES NOT MEET ELIGIBILITY REQUIREMENTS", 3, _creator.email, bcc_email_address=BCC_EMAIL ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 4) @@ -685,7 +692,7 @@ class TestDomainRequestAdmin(MockEppLib): ) domain_request.refresh_from_db() - self.assert_email_is_accurate("custom email content", 4, EMAIL, bcc_email_address=BCC_EMAIL) + self.assert_email_is_accurate("custom email content", 4, _creator.email, bcc_email_address=BCC_EMAIL) self.assertEqual(len(self.mock_client.EMAILS_SENT), 5) # Tests if a new email gets sent when just the email is changed. @@ -709,7 +716,7 @@ class TestDomainRequestAdmin(MockEppLib): action_needed_reason=eligibility_unclear, action_needed_reason_email="custom content when starting anew", ) - self.assert_email_is_accurate("custom content when starting anew", 5, EMAIL, bcc_email_address=BCC_EMAIL) + self.assert_email_is_accurate("custom content when starting anew", 5, _creator.email, bcc_email_address=BCC_EMAIL) self.assertEqual(len(self.mock_client.EMAILS_SENT), 6) # def test_action_needed_sends_reason_email_prod_bcc(self): @@ -773,22 +780,28 @@ class TestDomainRequestAdmin(MockEppLib): Also test that the default email set in settings is NOT BCCd on non-prod whenever an email does go out.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request() + domain_request = completed_domain_request(user=_creator) # Test Submitted Status from started self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) - self.assert_email_is_accurate("We received your .gov domain request.", 0, EMAIL, True) + self.assert_email_is_accurate("We received your .gov domain request.", 0, _creator.email, True) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Test Withdrawn Status self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN) self.assert_email_is_accurate( - "Your .gov domain request has been withdrawn and will not be reviewed by our team.", 1, EMAIL, True + "Your .gov domain request has been withdrawn and will not be reviewed by our team.", 1, _creator.email, True ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @@ -847,30 +860,36 @@ class TestDomainRequestAdmin(MockEppLib): Also test that the default email set in settings IS BCCd on prod whenever an email does go out.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) BCC_EMAIL = settings.DEFAULT_FROM_EMAIL # Create a sample domain request - domain_request = completed_domain_request() + domain_request = completed_domain_request(user=_creator) # Test Submitted Status from started self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) - self.assert_email_is_accurate("We received your .gov domain request.", 0, EMAIL, False, BCC_EMAIL) + self.assert_email_is_accurate("We received your .gov domain request.", 0, _creator.email, False, BCC_EMAIL) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Test Withdrawn Status self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN) self.assert_email_is_accurate( - "Your .gov domain request has been withdrawn and will not be reviewed by our team.", 1, EMAIL + "Your .gov domain request has been withdrawn and will not be reviewed by our team.", 1, _creator.email ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) # Test Submitted Status Again (from withdrawn) self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) - self.assert_email_is_accurate("We received your .gov domain request.", 0, EMAIL, False, BCC_EMAIL) + self.assert_email_is_accurate("We received your .gov domain request.", 0, _creator.email, False, BCC_EMAIL) self.assertEqual(len(self.mock_client.EMAILS_SENT), 3) # Move it to IN_REVIEW @@ -901,16 +920,22 @@ class TestDomainRequestAdmin(MockEppLib): """When transitioning to approved on a domain request, an email is sent out every time.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Test Submitted Status self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) - self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 0, EMAIL) + self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 0, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Test Withdrawn Status @@ -919,7 +944,7 @@ class TestDomainRequestAdmin(MockEppLib): DomainRequest.DomainRequestStatus.REJECTED, DomainRequest.RejectionReasons.DOMAIN_PURPOSE, ) - self.assert_email_is_accurate("Your .gov domain request has been rejected.", 1, EMAIL) + self.assert_email_is_accurate("Your .gov domain request has been rejected.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) # Test Submitted Status Again (No new email should be sent) @@ -931,12 +956,18 @@ class TestDomainRequestAdmin(MockEppLib): """When transitioning to rejected on a domain request, an email is sent explaining why when the reason is domain purpose.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Reject for reason DOMAIN_PURPOSE and test email self.transition_state_and_send_email( @@ -947,13 +978,13 @@ class TestDomainRequestAdmin(MockEppLib): self.assert_email_is_accurate( "Your domain request was rejected because the purpose you provided did not meet our \nrequirements.", 0, - EMAIL, + _creator.email, ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Approve self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) - self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL) + self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @less_console_noise_decorator @@ -961,12 +992,18 @@ class TestDomainRequestAdmin(MockEppLib): """When transitioning to rejected on a domain request, an email is sent explaining why when the reason is requestor.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Reject for reason REQUESTOR and test email including dynamic organization name self.transition_state_and_send_email( @@ -976,13 +1013,13 @@ class TestDomainRequestAdmin(MockEppLib): "Your domain request was rejected because we don’t believe you’re eligible to request a \n.gov " "domain on behalf of Testorg", 0, - EMAIL, + _creator.email, ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Approve self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) - self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL) + self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @less_console_noise_decorator @@ -990,12 +1027,18 @@ class TestDomainRequestAdmin(MockEppLib): """When transitioning to rejected on a domain request, an email is sent explaining why when the reason is second domain.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Reject for reason SECOND_DOMAIN_REASONING and test email including dynamic organization name self.transition_state_and_send_email( @@ -1003,25 +1046,30 @@ class TestDomainRequestAdmin(MockEppLib): DomainRequest.DomainRequestStatus.REJECTED, DomainRequest.RejectionReasons.SECOND_DOMAIN_REASONING, ) - self.assert_email_is_accurate("Your domain request was rejected because Testorg has a .gov domain.", 0, EMAIL) + self.assert_email_is_accurate("Your domain request was rejected because Testorg has a .gov domain.", 0, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Approve self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) - self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL) + self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @less_console_noise_decorator def test_save_model_sends_rejected_email_contacts_or_org_legitimacy(self): """When transitioning to rejected on a domain request, an email is sent explaining why when the reason is contacts or org legitimacy.""" - - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Reject for reason CONTACTS_OR_ORGANIZATION_LEGITIMACY and test email including dynamic organization name self.transition_state_and_send_email( @@ -1033,13 +1081,13 @@ class TestDomainRequestAdmin(MockEppLib): "Your domain request was rejected because we could not verify the organizational \n" "contacts you provided. If you have questions or comments, reply to this email.", 0, - EMAIL, + _creator.email, ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Approve self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) - self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL) + self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @less_console_noise_decorator @@ -1047,12 +1095,18 @@ class TestDomainRequestAdmin(MockEppLib): """When transitioning to rejected on a domain request, an email is sent explaining why when the reason is org eligibility.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Reject for reason ORGANIZATION_ELIGIBILITY and test email including dynamic organization name self.transition_state_and_send_email( @@ -1064,26 +1118,31 @@ class TestDomainRequestAdmin(MockEppLib): "Your domain request was rejected because we determined that Testorg is not \neligible for " "a .gov domain.", 0, - EMAIL, + _creator.email, ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Approve self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) - self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL) + self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @less_console_noise_decorator def test_save_model_sends_rejected_email_naming(self): """When transitioning to rejected on a domain request, an email is sent explaining why when the reason is naming.""" - - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Reject for reason NAMING_REQUIREMENTS and test email including dynamic organization name self.transition_state_and_send_email( @@ -1092,13 +1151,13 @@ class TestDomainRequestAdmin(MockEppLib): DomainRequest.RejectionReasons.NAMING_REQUIREMENTS, ) self.assert_email_is_accurate( - "Your domain request was rejected because it does not meet our naming requirements.", 0, EMAIL + "Your domain request was rejected because it does not meet our naming requirements.", 0, _creator.email ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Approve self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) - self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL) + self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @less_console_noise_decorator @@ -1106,12 +1165,18 @@ class TestDomainRequestAdmin(MockEppLib): """When transitioning to rejected on a domain request, an email is sent explaining why when the reason is other.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Reject for reason NAMING_REQUIREMENTS and test email including dynamic organization name self.transition_state_and_send_email( @@ -1119,12 +1184,12 @@ class TestDomainRequestAdmin(MockEppLib): DomainRequest.DomainRequestStatus.REJECTED, DomainRequest.RejectionReasons.OTHER, ) - self.assert_email_is_accurate("Choosing a .gov domain name", 0, EMAIL) + self.assert_email_is_accurate("Choosing a .gov domain name", 0, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Approve self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) - self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, EMAIL) + self.assert_email_is_accurate("Congratulations! Your .gov domain request has been approved.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) @less_console_noise_decorator @@ -1186,23 +1251,29 @@ class TestDomainRequestAdmin(MockEppLib): """When transitioning to withdrawn on a domain request, an email is sent out every time.""" - # Ensure there is no user with this email - EMAIL = "mayor@igorville.gov" - User.objects.filter(email=EMAIL).delete() + # Create fake creator + _creator = User.objects.create( + username="MrMeoward", + first_name="Meoward", + last_name="Jones", + email="meoward.jones@igorville.gov", + phone="(555) 123 12345", + title="Treat inspector", + ) # Create a sample domain request - domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) + domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW, user=_creator) # Test Submitted Status self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN) self.assert_email_is_accurate( - "Your .gov domain request has been withdrawn and will not be reviewed by our team.", 0, EMAIL + "Your .gov domain request has been withdrawn and will not be reviewed by our team.", 0, _creator.email ) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) # Test Withdrawn Status self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) - self.assert_email_is_accurate("We received your .gov domain request.", 1, EMAIL) + self.assert_email_is_accurate("We received your .gov domain request.", 1, _creator.email) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2) # Test Submitted Status Again (No new email should be sent)