Update email status tests

This commit is contained in:
Erin Song 2024-08-27 18:16:40 -07:00
parent 5b3ae28b88
commit 2fcad733cd
No known key found for this signature in database

View file

@ -627,28 +627,35 @@ class TestDomainRequestAdmin(MockEppLib):
def test_action_needed_sends_reason_email_prod_bcc(self): 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 """When an action needed reason is set, an email is sent out and help@get.gov
is BCC'd in production""" is BCC'd in production"""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _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 BCC_EMAIL = settings.DEFAULT_FROM_EMAIL
User.objects.filter(email=EMAIL).delete()
in_review = DomainRequest.DomainRequestStatus.IN_REVIEW in_review = DomainRequest.DomainRequestStatus.IN_REVIEW
action_needed = DomainRequest.DomainRequestStatus.ACTION_NEEDED action_needed = DomainRequest.DomainRequestStatus.ACTION_NEEDED
# Create a sample domain request # 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 # Test the email sent out for already_has_domains
already_has_domains = DomainRequest.ActionNeededReasons.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.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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Test the email sent out for bad_name # Test the email sent out for bad_name
bad_name = DomainRequest.ActionNeededReasons.BAD_NAME bad_name = DomainRequest.ActionNeededReasons.BAD_NAME
self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=bad_name) self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=bad_name)
self.assert_email_is_accurate( 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
@ -656,7 +663,7 @@ class TestDomainRequestAdmin(MockEppLib):
eligibility_unclear = DomainRequest.ActionNeededReasons.ELIGIBILITY_UNCLEAR eligibility_unclear = DomainRequest.ActionNeededReasons.ELIGIBILITY_UNCLEAR
self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=eligibility_unclear) self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=eligibility_unclear)
self.assert_email_is_accurate( 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 3)
@ -664,7 +671,7 @@ class TestDomainRequestAdmin(MockEppLib):
questionable_so = DomainRequest.ActionNeededReasons.QUESTIONABLE_SENIOR_OFFICIAL questionable_so = DomainRequest.ActionNeededReasons.QUESTIONABLE_SENIOR_OFFICIAL
self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=questionable_so) self.transition_state_and_send_email(domain_request, action_needed, action_needed_reason=questionable_so)
self.assert_email_is_accurate( 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 4)
@ -685,7 +692,7 @@ class TestDomainRequestAdmin(MockEppLib):
) )
domain_request.refresh_from_db() 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 5)
# Tests if a new email gets sent when just the email is changed. # 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=eligibility_unclear,
action_needed_reason_email="custom content when starting anew", 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 6)
# def test_action_needed_sends_reason_email_prod_bcc(self): # 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 Also test that the default email set in settings is NOT BCCd on non-prod whenever
an email does go out.""" an email does go out."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 # Create a sample domain request
domain_request = completed_domain_request() domain_request = completed_domain_request(user=_creator)
# Test Submitted Status from started # Test Submitted Status from started
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Test Withdrawn Status # Test Withdrawn Status
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN) self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN)
self.assert_email_is_accurate( 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) 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 Also test that the default email set in settings IS BCCd on prod whenever
an email does go out.""" an email does go out."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 BCC_EMAIL = settings.DEFAULT_FROM_EMAIL
# Create a sample domain request # Create a sample domain request
domain_request = completed_domain_request() domain_request = completed_domain_request(user=_creator)
# Test Submitted Status from started # Test Submitted Status from started
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Test Withdrawn Status # Test Withdrawn Status
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN) self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN)
self.assert_email_is_accurate( 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
# Test Submitted Status Again (from withdrawn) # Test Submitted Status Again (from withdrawn)
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 3)
# Move it to IN_REVIEW # Move it to IN_REVIEW
@ -901,16 +920,22 @@ class TestDomainRequestAdmin(MockEppLib):
"""When transitioning to approved on a domain request, """When transitioning to approved on a domain request,
an email is sent out every time.""" an email is sent out every time."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 # 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 # Test Submitted Status
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Test Withdrawn Status # Test Withdrawn Status
@ -919,7 +944,7 @@ class TestDomainRequestAdmin(MockEppLib):
DomainRequest.DomainRequestStatus.REJECTED, DomainRequest.DomainRequestStatus.REJECTED,
DomainRequest.RejectionReasons.DOMAIN_PURPOSE, 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
# Test Submitted Status Again (No new email should be sent) # 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 """When transitioning to rejected on a domain request, an email is sent
explaining why when the reason is domain purpose.""" explaining why when the reason is domain purpose."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 # 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 # Reject for reason DOMAIN_PURPOSE and test email
self.transition_state_and_send_email( self.transition_state_and_send_email(
@ -947,13 +978,13 @@ class TestDomainRequestAdmin(MockEppLib):
self.assert_email_is_accurate( self.assert_email_is_accurate(
"Your domain request was rejected because the purpose you provided did not meet our \nrequirements.", "Your domain request was rejected because the purpose you provided did not meet our \nrequirements.",
0, 0,
EMAIL, _creator.email,
) )
self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Approve # Approve
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
@less_console_noise_decorator @less_console_noise_decorator
@ -961,12 +992,18 @@ class TestDomainRequestAdmin(MockEppLib):
"""When transitioning to rejected on a domain request, an email is sent """When transitioning to rejected on a domain request, an email is sent
explaining why when the reason is requestor.""" explaining why when the reason is requestor."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 # 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 # Reject for reason REQUESTOR and test email including dynamic organization name
self.transition_state_and_send_email( self.transition_state_and_send_email(
@ -976,13 +1013,13 @@ class TestDomainRequestAdmin(MockEppLib):
"Your domain request was rejected because we dont believe youre eligible to request a \n.gov " "Your domain request was rejected because we dont believe youre eligible to request a \n.gov "
"domain on behalf of Testorg", "domain on behalf of Testorg",
0, 0,
EMAIL, _creator.email,
) )
self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Approve # Approve
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
@less_console_noise_decorator @less_console_noise_decorator
@ -990,12 +1027,18 @@ class TestDomainRequestAdmin(MockEppLib):
"""When transitioning to rejected on a domain request, an email is sent """When transitioning to rejected on a domain request, an email is sent
explaining why when the reason is second domain.""" explaining why when the reason is second domain."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 # 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 # Reject for reason SECOND_DOMAIN_REASONING and test email including dynamic organization name
self.transition_state_and_send_email( self.transition_state_and_send_email(
@ -1003,25 +1046,30 @@ class TestDomainRequestAdmin(MockEppLib):
DomainRequest.DomainRequestStatus.REJECTED, DomainRequest.DomainRequestStatus.REJECTED,
DomainRequest.RejectionReasons.SECOND_DOMAIN_REASONING, 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Approve # Approve
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
@less_console_noise_decorator @less_console_noise_decorator
def test_save_model_sends_rejected_email_contacts_or_org_legitimacy(self): def test_save_model_sends_rejected_email_contacts_or_org_legitimacy(self):
"""When transitioning to rejected on a domain request, an email is sent """When transitioning to rejected on a domain request, an email is sent
explaining why when the reason is contacts or org legitimacy.""" explaining why when the reason is contacts or org legitimacy."""
# Create fake creator
# Ensure there is no user with this email _creator = User.objects.create(
EMAIL = "mayor@igorville.gov" username="MrMeoward",
User.objects.filter(email=EMAIL).delete() first_name="Meoward",
last_name="Jones",
email="meoward.jones@igorville.gov",
phone="(555) 123 12345",
title="Treat inspector",
)
# Create a sample domain request # 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 # Reject for reason CONTACTS_OR_ORGANIZATION_LEGITIMACY and test email including dynamic organization name
self.transition_state_and_send_email( 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" "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.", "contacts you provided. If you have questions or comments, reply to this email.",
0, 0,
EMAIL, _creator.email,
) )
self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Approve # Approve
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
@less_console_noise_decorator @less_console_noise_decorator
@ -1047,12 +1095,18 @@ class TestDomainRequestAdmin(MockEppLib):
"""When transitioning to rejected on a domain request, an email is sent """When transitioning to rejected on a domain request, an email is sent
explaining why when the reason is org eligibility.""" explaining why when the reason is org eligibility."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 # 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 # Reject for reason ORGANIZATION_ELIGIBILITY and test email including dynamic organization name
self.transition_state_and_send_email( 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 " "Your domain request was rejected because we determined that Testorg is not \neligible for "
"a .gov domain.", "a .gov domain.",
0, 0,
EMAIL, _creator.email,
) )
self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Approve # Approve
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
@less_console_noise_decorator @less_console_noise_decorator
def test_save_model_sends_rejected_email_naming(self): def test_save_model_sends_rejected_email_naming(self):
"""When transitioning to rejected on a domain request, an email is sent """When transitioning to rejected on a domain request, an email is sent
explaining why when the reason is naming.""" explaining why when the reason is naming."""
# Create fake creator
# Ensure there is no user with this email _creator = User.objects.create(
EMAIL = "mayor@igorville.gov" username="MrMeoward",
User.objects.filter(email=EMAIL).delete() first_name="Meoward",
last_name="Jones",
email="meoward.jones@igorville.gov",
phone="(555) 123 12345",
title="Treat inspector",
)
# Create a sample domain request # 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 # Reject for reason NAMING_REQUIREMENTS and test email including dynamic organization name
self.transition_state_and_send_email( self.transition_state_and_send_email(
@ -1092,13 +1151,13 @@ class TestDomainRequestAdmin(MockEppLib):
DomainRequest.RejectionReasons.NAMING_REQUIREMENTS, DomainRequest.RejectionReasons.NAMING_REQUIREMENTS,
) )
self.assert_email_is_accurate( 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Approve # Approve
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
@less_console_noise_decorator @less_console_noise_decorator
@ -1106,12 +1165,18 @@ class TestDomainRequestAdmin(MockEppLib):
"""When transitioning to rejected on a domain request, an email is sent """When transitioning to rejected on a domain request, an email is sent
explaining why when the reason is other.""" explaining why when the reason is other."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 # 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 # Reject for reason NAMING_REQUIREMENTS and test email including dynamic organization name
self.transition_state_and_send_email( self.transition_state_and_send_email(
@ -1119,12 +1184,12 @@ class TestDomainRequestAdmin(MockEppLib):
DomainRequest.DomainRequestStatus.REJECTED, DomainRequest.DomainRequestStatus.REJECTED,
DomainRequest.RejectionReasons.OTHER, 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Approve # Approve
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.APPROVED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
@less_console_noise_decorator @less_console_noise_decorator
@ -1186,23 +1251,29 @@ class TestDomainRequestAdmin(MockEppLib):
"""When transitioning to withdrawn on a domain request, """When transitioning to withdrawn on a domain request,
an email is sent out every time.""" an email is sent out every time."""
# Ensure there is no user with this email # Create fake creator
EMAIL = "mayor@igorville.gov" _creator = User.objects.create(
User.objects.filter(email=EMAIL).delete() 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 # 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 # Test Submitted Status
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN) self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.WITHDRAWN)
self.assert_email_is_accurate( 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Test Withdrawn Status # Test Withdrawn Status
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) 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) self.assertEqual(len(self.mock_client.EMAILS_SENT), 2)
# Test Submitted Status Again (No new email should be sent) # Test Submitted Status Again (No new email should be sent)