Merge pull request #2169 from cisagov/za/2147-show-non-federal-for-federal-agency

Ticket #2147: Ensure domain Request and domain Info have "Non-federal" instead of None when empty
This commit is contained in:
zandercymatics 2024-05-16 13:48:08 -06:00 committed by GitHub
commit cfce03ac8d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 28 additions and 1 deletions

View file

@ -9,6 +9,7 @@ from django.db import models
from django_fsm import FSMField, transition # type: ignore from django_fsm import FSMField, transition # type: ignore
from django.utils import timezone from django.utils import timezone
from registrar.models.domain import Domain from registrar.models.domain import Domain
from registrar.models.federal_agency import FederalAgency
from registrar.models.utility.generic_helper import CreateOrUpdateOrganizationTypeHelper from registrar.models.utility.generic_helper import CreateOrUpdateOrganizationTypeHelper
from registrar.utility.errors import FSMDomainRequestError, FSMErrorCodes from registrar.utility.errors import FSMDomainRequestError, FSMErrorCodes
@ -751,6 +752,10 @@ class DomainRequest(TimeStampedModel):
domain request into an admin on that domain. It also triggers an email domain request into an admin on that domain. It also triggers an email
notification.""" notification."""
if self.federal_agency is None:
self.federal_agency = FederalAgency.objects.filter(agency="Non-Federal Agency").first()
self.save()
# create the domain # create the domain
Domain = apps.get_model("registrar.Domain") Domain = apps.get_model("registrar.Domain")

View file

@ -646,7 +646,7 @@ class TestDomainAdmin(MockEppLib, WebTest):
response = self.client.get("/admin/registrar/domain/") response = self.client.get("/admin/registrar/domain/")
# There are 4 template references to Federal (4) plus four references in the table # There are 4 template references to Federal (4) plus four references in the table
# for our actual domain_request # for our actual domain_request
self.assertContains(response, "Federal", count=54) self.assertContains(response, "Federal", count=56)
# This may be a bit more robust # This may be a bit more robust
self.assertContains(response, '<td class="field-generic_org_type">Federal</td>', count=1) self.assertContains(response, '<td class="field-generic_org_type">Federal</td>', count=1)
# Now let's make sure the long description does not exist # Now let's make sure the long description does not exist

View file

@ -12,6 +12,7 @@ from registrar.models import (
DraftDomain, DraftDomain,
DomainInvitation, DomainInvitation,
UserDomainRole, UserDomainRole,
FederalAgency,
) )
import boto3_mocking import boto3_mocking
@ -75,6 +76,26 @@ class TestDomainRequest(TestCase):
with less_console_noise(): with less_console_noise():
return self.assertRaises(Exception, None, exception_type) return self.assertRaises(Exception, None, exception_type)
def test_federal_agency_set_to_non_federal_on_approve(self):
"""Ensures that when the federal_agency field is 'none' when .approve() is called,
the field is set to the 'Non-Federal Agency' record"""
domain_request = completed_domain_request(
status=DomainRequest.DomainRequestStatus.IN_REVIEW,
name="city2.gov",
federal_agency=None,
)
# Ensure that the federal agency is None
self.assertEqual(domain_request.federal_agency, None)
# Approve the request
domain_request.approve()
self.assertEqual(domain_request.status, DomainRequest.DomainRequestStatus.APPROVED)
# After approval, it should be "Non-Federal agency"
expected_federal_agency = FederalAgency.objects.filter(agency="Non-Federal Agency").first()
self.assertEqual(domain_request.federal_agency, expected_federal_agency)
def test_empty_create_fails(self): def test_empty_create_fails(self):
"""Can't create a completely empty domain request. """Can't create a completely empty domain request.
NOTE: something about theexception this test raises messes up with the NOTE: something about theexception this test raises messes up with the
@ -942,6 +963,7 @@ class TestDomainInformation(TestCase):
domain=domain, domain=domain,
notes="test notes", notes="test notes",
domain_request=domain_request, domain_request=domain_request,
federal_agency=FederalAgency.objects.get(agency="Non-Federal Agency"),
).__dict__ ).__dict__
# Test the two records for consistency # Test the two records for consistency