mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-28 21:46:33 +02:00
update tests for admin domain requests
This commit is contained in:
parent
8aeeb3c9e3
commit
64de830254
1 changed files with 156 additions and 0 deletions
|
@ -1,6 +1,8 @@
|
|||
from datetime import datetime
|
||||
from django.forms import ValidationError
|
||||
from django.utils import timezone
|
||||
from registrar.models.federal_agency import FederalAgency
|
||||
from registrar.utility.constants import BranchChoices
|
||||
from waffle.testutils import override_flag
|
||||
import re
|
||||
from django.test import RequestFactory, Client, TestCase, override_settings
|
||||
|
@ -37,6 +39,7 @@ from .common import (
|
|||
less_console_noise,
|
||||
create_superuser,
|
||||
create_user,
|
||||
create_omb_analyst_user,
|
||||
multiple_unalphabetical_domain_objects,
|
||||
MockEppLib,
|
||||
GenericTestHelper,
|
||||
|
@ -68,6 +71,7 @@ class TestDomainRequestAdmin(MockEppLib):
|
|||
self.admin = DomainRequestAdmin(model=DomainRequest, admin_site=self.site)
|
||||
self.superuser = create_superuser()
|
||||
self.staffuser = create_user()
|
||||
self.ombanalyst = create_omb_analyst_user()
|
||||
self.client = Client(HTTP_HOST="localhost:8080")
|
||||
self.test_helper = GenericTestHelper(
|
||||
factory=self.factory,
|
||||
|
@ -80,6 +84,12 @@ class TestDomainRequestAdmin(MockEppLib):
|
|||
allowed_emails = [AllowedEmail(email="mayor@igorville.gov"), AllowedEmail(email="help@get.gov")]
|
||||
AllowedEmail.objects.bulk_create(allowed_emails)
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.fed_agency = FederalAgency.objects.create(
|
||||
agency="New FedExec Agency", federal_type=BranchChoices.EXECUTIVE
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
super().tearDown()
|
||||
Host.objects.all().delete()
|
||||
|
@ -92,6 +102,7 @@ class TestDomainRequestAdmin(MockEppLib):
|
|||
SeniorOfficial.objects.all().delete()
|
||||
Suborganization.objects.all().delete()
|
||||
Portfolio.objects.all().delete()
|
||||
self.fed_agency.delete()
|
||||
self.mock_client.EMAILS_SENT.clear()
|
||||
|
||||
@classmethod
|
||||
|
@ -100,6 +111,71 @@ class TestDomainRequestAdmin(MockEppLib):
|
|||
User.objects.all().delete()
|
||||
AllowedEmail.objects.all().delete()
|
||||
|
||||
@override_flag("organization_feature", active=True)
|
||||
@less_console_noise_decorator
|
||||
def test_omb_analyst_view(self):
|
||||
"""Ensure OMB analysts can view domain request list."""
|
||||
febportfolio = Portfolio.objects.create(
|
||||
organization_name="new portfolio",
|
||||
organization_type=DomainRequest.OrganizationChoices.FEDERAL,
|
||||
federal_agency=self.fed_agency,
|
||||
creator=self.ombanalyst,
|
||||
)
|
||||
nonfebportfolio = Portfolio.objects.create(
|
||||
organization_name="non feb portfolio",
|
||||
creator=self.ombanalyst,
|
||||
)
|
||||
nonfebdomainrequest = completed_domain_request(
|
||||
name="test1234nonfeb.gov",
|
||||
portfolio=nonfebportfolio,
|
||||
status=DomainRequest.DomainRequestStatus.SUBMITTED,
|
||||
)
|
||||
febdomainrequest = completed_domain_request(
|
||||
name="test1234feb.gov",
|
||||
portfolio=febportfolio,
|
||||
status=DomainRequest.DomainRequestStatus.SUBMITTED,
|
||||
)
|
||||
self.client.force_login(self.ombanalyst)
|
||||
response = self.client.get(reverse("admin:registrar_domainrequest_changelist"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, febdomainrequest.requested_domain.name)
|
||||
self.assertNotContains(response, nonfebdomainrequest.requested_domain.name)
|
||||
self.assertNotContains(response, ">Import<")
|
||||
self.assertNotContains(response, ">Export<")
|
||||
|
||||
@less_console_noise_decorator
|
||||
def test_omb_analyst_change(self):
|
||||
"""Ensure OMB analysts can view/edit federal executive branch domain requests."""
|
||||
self.client.force_login(self.ombanalyst)
|
||||
febportfolio = Portfolio.objects.create(
|
||||
organization_name="new portfolio",
|
||||
organization_type=DomainRequest.OrganizationChoices.FEDERAL,
|
||||
federal_agency=self.fed_agency,
|
||||
creator=self.ombanalyst,
|
||||
)
|
||||
nonfebportfolio = Portfolio.objects.create(
|
||||
organization_name="non feb portfolio",
|
||||
creator=self.ombanalyst,
|
||||
)
|
||||
nonfebdomainrequest = completed_domain_request(
|
||||
name="test1234nonfeb.gov",
|
||||
portfolio=nonfebportfolio,
|
||||
status=DomainRequest.DomainRequestStatus.SUBMITTED,
|
||||
)
|
||||
febdomainrequest = completed_domain_request(
|
||||
name="test1234feb.gov",
|
||||
portfolio=febportfolio,
|
||||
status=DomainRequest.DomainRequestStatus.SUBMITTED,
|
||||
)
|
||||
response = self.client.get(reverse("admin:registrar_domainrequest_change", args=[nonfebdomainrequest.id]))
|
||||
self.assertEqual(response.status_code, 302)
|
||||
response = self.client.get(reverse("admin:registrar_domainrequest_change", args=[febdomainrequest.id]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, febdomainrequest.requested_domain.name)
|
||||
# test buttons
|
||||
self.assertContains(response, "Save")
|
||||
self.assertNotContains(response, ">Delete<")
|
||||
|
||||
@override_flag("organization_feature", active=True)
|
||||
@less_console_noise_decorator
|
||||
def test_clean_validates_duplicate_suborganization(self):
|
||||
|
@ -2065,6 +2141,86 @@ class TestDomainRequestAdmin(MockEppLib):
|
|||
|
||||
self.assertEqual(readonly_fields, expected_fields)
|
||||
|
||||
def test_readonly_fields_for_omb_analyst(self):
|
||||
with less_console_noise():
|
||||
request = self.factory.get("/") # Use the correct method and path
|
||||
request.user = self.ombanalyst
|
||||
|
||||
readonly_fields = self.admin.get_readonly_fields(request)
|
||||
|
||||
expected_fields = [
|
||||
"portfolio_senior_official",
|
||||
"portfolio_organization_type",
|
||||
"portfolio_federal_type",
|
||||
"portfolio_organization_name",
|
||||
"portfolio_federal_agency",
|
||||
"portfolio_state_territory",
|
||||
"portfolio_address_line1",
|
||||
"portfolio_address_line2",
|
||||
"portfolio_city",
|
||||
"portfolio_zipcode",
|
||||
"portfolio_urbanization",
|
||||
"other_contacts",
|
||||
"current_websites",
|
||||
"alternative_domains",
|
||||
"is_election_board",
|
||||
"status_history",
|
||||
"federal_agency",
|
||||
"creator",
|
||||
"about_your_organization",
|
||||
"requested_domain",
|
||||
"approved_domain",
|
||||
"alternative_domains",
|
||||
"purpose",
|
||||
"no_other_contacts_rationale",
|
||||
"anything_else",
|
||||
"is_policy_acknowledged",
|
||||
"cisa_representative_first_name",
|
||||
"cisa_representative_last_name",
|
||||
"cisa_representative_email",
|
||||
"status",
|
||||
"investigator",
|
||||
"notes",
|
||||
"senior_official",
|
||||
"organization_type",
|
||||
"organization_name",
|
||||
"state_territory",
|
||||
"address_line1",
|
||||
"address_line2",
|
||||
"city",
|
||||
"zipcode",
|
||||
"urbanization",
|
||||
"portfolio_organization_type",
|
||||
"portfolio_federal_type",
|
||||
"portfolio_organization_name",
|
||||
"portfolio_federal_agency",
|
||||
"portfolio_state_territory",
|
||||
"portfolio_address_line1",
|
||||
"portfolio_address_line2",
|
||||
"portfolio_city",
|
||||
"portfolio_zipcode",
|
||||
"portfolio_urbanization",
|
||||
"is_election_board",
|
||||
"organization_type",
|
||||
"federal_type",
|
||||
"federal_agency",
|
||||
"tribe_name",
|
||||
"federally_recognized_tribe",
|
||||
"state_recognized_tribe",
|
||||
"about_your_organization",
|
||||
"rejection_reason",
|
||||
"rejection_reason_email",
|
||||
"action_needed_reason",
|
||||
"action_needed_reason_email",
|
||||
"portfolio",
|
||||
"sub_organization",
|
||||
"requested_suborganization",
|
||||
"suborganization_city",
|
||||
"suborganization_state_territory",
|
||||
]
|
||||
|
||||
self.assertEqual(readonly_fields, expected_fields)
|
||||
|
||||
def test_saving_when_restricted_creator(self):
|
||||
with less_console_noise():
|
||||
# Create an instance of the model
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue