Fix tests

This commit is contained in:
zandercymatics 2024-09-05 15:17:53 -06:00
parent f7df9a3566
commit e0bc28f2c7
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
3 changed files with 67 additions and 30 deletions

View file

@ -856,23 +856,6 @@ class TestDomainRequestAdmin(MockEppLib):
self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED) self.transition_state_and_send_email(domain_request, DomainRequest.DomainRequestStatus.SUBMITTED)
self.assertEqual(len(self.mock_client.EMAILS_SENT), 3) self.assertEqual(len(self.mock_client.EMAILS_SENT), 3)
@less_console_noise_decorator
def test_model_displays_action_needed_email(self):
"""Tests if the action needed email is visible for Domain Requests"""
_domain_request = completed_domain_request(
status=DomainRequest.DomainRequestStatus.ACTION_NEEDED,
action_needed_reason=DomainRequest.ActionNeededReasons.BAD_NAME,
)
self.client.force_login(self.staffuser)
response = self.client.get(
"/admin/registrar/domainrequest/{}/change/".format(_domain_request.pk),
follow=True,
)
self.assertContains(response, "DOMAIN NAME DOES NOT MEET .GOV REQUIREMENTS")
@override_settings(IS_PRODUCTION=True) @override_settings(IS_PRODUCTION=True)
@less_console_noise_decorator @less_console_noise_decorator
def test_save_model_sends_submitted_email_with_bcc_on_prod(self): def test_save_model_sends_submitted_email_with_bcc_on_prod(self):

View file

@ -1,8 +1,8 @@
from django.urls import reverse from django.urls import reverse
from django.test import TestCase, Client from django.test import TestCase, Client
from registrar.models import FederalAgency, SeniorOfficial, User from registrar.models import FederalAgency, SeniorOfficial, User, DomainRequest
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from registrar.tests.common import create_superuser, create_user from registrar.tests.common import create_superuser, create_user, completed_domain_request
from api.tests.common import less_console_noise_decorator from api.tests.common import less_console_noise_decorator
from registrar.utility.constants import BranchChoices from registrar.utility.constants import BranchChoices
@ -109,3 +109,58 @@ class GetFederalPortfolioTypeJsonTest(TestCase):
self.client.login(username="testuser", password=p) self.client.login(username="testuser", password=p)
response = self.client.get(self.api_url, {"agency_name": "Test Agency", "organization_type": "federal"}) response = self.client.get(self.api_url, {"agency_name": "Test Agency", "organization_type": "federal"})
self.assertEqual(response.status_code, 302) self.assertEqual(response.status_code, 302)
class GetActionNeededEmailForUserJsonTest(TestCase):
def setUp(self):
self.client = Client()
self.superuser = create_superuser()
self.analyst_user = create_user()
self.agency = FederalAgency.objects.create(agency="Test Agency")
self.domain_request = completed_domain_request(
federal_agency=self.agency,
name="test.gov",
status=DomainRequest.DomainRequestStatus.ACTION_NEEDED,
)
self.api_url = reverse("get-action-needed-email-for-user-json")
def tearDown(self):
DomainRequest.objects.all().delete()
User.objects.all().delete()
FederalAgency.objects.all().delete()
@less_console_noise_decorator
def test_get_action_needed_email_for_user_json_superuser(self):
"""Test that a superuser can fetch the action needed email."""
p = "adminpass"
self.client.force_login(self.superuser)
response = self.client.get(
self.api_url,
{
"reason": DomainRequest.ActionNeededReasons.ELIGIBILITY_UNCLEAR,
"domain_request_id": self.domain_request.id,
},
)
self.assertEqual(response.status_code, 200)
data = response.json()
self.assertIn("action_needed_email", data)
self.assertIn("ORGANIZATION MAY NOT MEET ELIGIBILITY REQUIREMENTS", data["action_needed_email"])
@less_console_noise_decorator
def test_get_action_needed_email_for_user_json_analyst(self):
"""Test that an analyst can fetch the action needed email."""
self.client.force_login(self.analyst_user)
response = self.client.get(
self.api_url,
{
"reason": DomainRequest.ActionNeededReasons.QUESTIONABLE_SENIOR_OFFICIAL,
"domain_request_id": self.domain_request.id,
},
)
self.assertEqual(response.status_code, 200)
data = response.json()
self.assertIn("action_needed_email", data)
self.assertIn("SENIOR OFFICIAL DOES NOT MEET ELIGIBILITY REQUIREMENTS", data["action_needed_email"])

View file

@ -1,21 +1,20 @@
from django.http import HttpRequest
from registrar.models.domain_request import DomainRequest from registrar.models.domain_request import DomainRequest
from waffle.decorators import flag_is_active from waffle.decorators import flag_is_active
from django.template.loader import get_template from django.template.loader import get_template
def get_all_action_needed_reason_emails(request, domain_request): def get_all_action_needed_reason_emails(request, domain_request):
"""Returns a dictionary of every action needed reason and its associated email """Returns a dictionary of every action needed reason and its associated email
for this particular domain request.""" for this particular domain request."""
emails = {} emails = {}
for action_needed_reason in domain_request.ActionNeededReasons: for action_needed_reason in domain_request.ActionNeededReasons:
# Map the action_needed_reason to its default email # Map the action_needed_reason to its default email
emails[action_needed_reason.value] = get_action_needed_reason_default_email( emails[action_needed_reason.value] = get_action_needed_reason_default_email(
request, domain_request, action_needed_reason.value request, domain_request, action_needed_reason.value
) )
return emails return emails
def get_action_needed_reason_default_email(request, domain_request, action_needed_reason): def get_action_needed_reason_default_email(request, domain_request, action_needed_reason):
@ -39,4 +38,4 @@ def get_action_needed_reason_default_email(request, domain_request, action_neede
if email_body_text: if email_body_text:
email_body_text_cleaned = email_body_text.strip().lstrip("\n") email_body_text_cleaned = email_body_text.strip().lstrip("\n")
return email_body_text_cleaned return email_body_text_cleaned