This commit is contained in:
David Kennedy 2024-07-16 15:19:15 -04:00
parent a2558bd762
commit 65fbedab89
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
8 changed files with 63 additions and 65 deletions

View file

@ -42,6 +42,7 @@ from registrar.models.user_domain_role import UserDomainRole
from registrar.models.utility.contact_error import ContactError, ContactErrorCodes from registrar.models.utility.contact_error import ContactError, ContactErrorCodes
from api.tests.common import less_console_noise_decorator from api.tests.common import less_console_noise_decorator
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -802,7 +803,7 @@ class MockDbForSharedTests(MockDb):
def setUpClass(cls): def setUpClass(cls):
super().setUpClass() super().setUpClass()
cls.sharedSetUp() cls.sharedSetUp()
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
super().tearDownClass() super().tearDownClass()
@ -815,11 +816,10 @@ class MockDbForIndividualTests(MockDb):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.sharedSetUp() self.sharedSetUp()
def tearDown(self): def tearDown(self):
super().tearDown() super().tearDown()
self.sharedTearDown() self.sharedTearDown()
def mock_user(): def mock_user():
@ -867,6 +867,7 @@ def create_user():
user.groups.set([group]) user.groups.set([group])
return user return user
def create_test_user(): def create_test_user():
username = "test_user" username = "test_user"
first_name = "First" first_name = "First"
@ -879,6 +880,7 @@ def create_test_user():
) )
return user return user
def create_ready_domain(): def create_ready_domain():
domain, _ = Domain.objects.get_or_create(name="city.gov", state=Domain.State.READY) domain, _ = Domain.objects.get_or_create(name="city.gov", state=Domain.State.READY)
return domain return domain

View file

@ -56,7 +56,7 @@ from .common import (
) )
from django.contrib.sessions.backends.db import SessionStore from django.contrib.sessions.backends.db import SessionStore
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from unittest.mock import ANY, patch, Mock from unittest.mock import patch, Mock
import logging import logging
@ -109,7 +109,7 @@ class TestFsmModelResource(TestCase):
class TestDomainRequestAdminForm(TestCase): class TestDomainRequestAdminForm(TestCase):
def test_form_choices(self): def test_form_choices(self):
with less_console_noise(): with less_console_noise():
# Create a test domain request with an initial state of started # Create a test domain request with an initial state of started
@ -197,7 +197,7 @@ class TestDomainInvitationAdmin(TestCase):
def setUp(self): def setUp(self):
"""Create a client object""" """Create a client object"""
self.client = Client(HTTP_HOST="localhost:8080") self.client = Client(HTTP_HOST="localhost:8080")
def tearDown(self): def tearDown(self):
"""Delete all DomainInvitation objects""" """Delete all DomainInvitation objects"""
DomainInvitation.objects.all().delete() DomainInvitation.objects.all().delete()
@ -361,7 +361,7 @@ class TestDomainInformationAdmin(TestCase):
DomainRequest.objects.all().delete() DomainRequest.objects.all().delete()
Domain.objects.all().delete() Domain.objects.all().delete()
Contact.objects.all().delete() Contact.objects.all().delete()
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
User.objects.all().delete() User.objects.all().delete()
@ -737,7 +737,7 @@ class TestUserDomainRoleAdmin(TestCase):
url="/admin/registrar/UserDomainRole/", url="/admin/registrar/UserDomainRole/",
model=UserDomainRole, model=UserDomainRole,
) )
def setUp(self): def setUp(self):
"""Setup environment for a mock admin user""" """Setup environment for a mock admin user"""
super().setUp() super().setUp()
@ -748,7 +748,7 @@ class TestUserDomainRoleAdmin(TestCase):
super().tearDown() super().tearDown()
Domain.objects.all().delete() Domain.objects.all().delete()
UserDomainRole.objects.all().delete() UserDomainRole.objects.all().delete()
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
super().tearDownClass() super().tearDownClass()
@ -898,6 +898,7 @@ class TestUserDomainRoleAdmin(TestCase):
fake_domain.delete() fake_domain.delete()
fake_user.delete() fake_user.delete()
class TestListHeaderAdmin(TestCase): class TestListHeaderAdmin(TestCase):
"""Tests for the ListHeaderAdmin class as super user """Tests for the ListHeaderAdmin class as super user
@ -913,7 +914,7 @@ class TestListHeaderAdmin(TestCase):
cls.factory = RequestFactory() cls.factory = RequestFactory()
cls.admin = ListHeaderAdmin(model=DomainRequest, admin_site=None) cls.admin = ListHeaderAdmin(model=DomainRequest, admin_site=None)
cls.superuser = create_superuser() cls.superuser = create_superuser()
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.client = Client(HTTP_HOST="localhost:8080") self.client = Client(HTTP_HOST="localhost:8080")
@ -922,7 +923,7 @@ class TestListHeaderAdmin(TestCase):
# delete any domain requests too # delete any domain requests too
DomainInformation.objects.all().delete() DomainInformation.objects.all().delete()
DomainRequest.objects.all().delete() DomainRequest.objects.all().delete()
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
super().tearDownClass() super().tearDownClass()
@ -1010,7 +1011,7 @@ class TestMyUserAdmin(MockDbForSharedTests):
def tearDown(self): def tearDown(self):
super().tearDown() super().tearDown()
DomainRequest.objects.all().delete() DomainRequest.objects.all().delete()
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
super().tearDownClass() super().tearDownClass()
@ -1205,6 +1206,7 @@ class TestMyUserAdmin(MockDbForSharedTests):
domain_request_ineligible.delete() domain_request_ineligible.delete()
domain_deleted.delete() domain_deleted.delete()
class AuditedAdminTest(TestCase): class AuditedAdminTest(TestCase):
@classmethod @classmethod
@ -1212,7 +1214,7 @@ class AuditedAdminTest(TestCase):
super().setUpClass() super().setUpClass()
cls.site = AdminSite() cls.site = AdminSite()
cls.factory = RequestFactory() cls.factory = RequestFactory()
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.client = Client(HTTP_HOST="localhost:8080") self.client = Client(HTTP_HOST="localhost:8080")
@ -1223,7 +1225,7 @@ class AuditedAdminTest(TestCase):
DomainInformation.objects.all().delete() DomainInformation.objects.all().delete()
DomainRequest.objects.all().delete() DomainRequest.objects.all().delete()
DomainInvitation.objects.all().delete() DomainInvitation.objects.all().delete()
def order_by_desired_field_helper(self, obj_to_sort: AuditedAdmin, request, field_name, *obj_names): def order_by_desired_field_helper(self, obj_to_sort: AuditedAdmin, request, field_name, *obj_names):
with less_console_noise(): with less_console_noise():
formatted_sort_fields = [] formatted_sort_fields = []
@ -1462,7 +1464,7 @@ class DomainSessionVariableTest(TestCase):
cls.factory = RequestFactory() cls.factory = RequestFactory()
cls.admin = DomainAdmin(Domain, None) cls.admin = DomainAdmin(Domain, None)
cls.superuser = create_superuser() cls.superuser = create_superuser()
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.client = Client(HTTP_HOST="localhost:8080") self.client = Client(HTTP_HOST="localhost:8080")
@ -1471,7 +1473,7 @@ class DomainSessionVariableTest(TestCase):
def tearDownClass(cls): def tearDownClass(cls):
super().tearDownClass() super().tearDownClass()
User.objects.all().delete() User.objects.all().delete()
def test_session_vars_set_correctly(self): def test_session_vars_set_correctly(self):
"""Checks if session variables are being set correctly""" """Checks if session variables are being set correctly"""
@ -1590,11 +1592,11 @@ class TestContactAdmin(TestCase):
def setUpClass(cls): def setUpClass(cls):
super().setUpClass() super().setUpClass()
cls.site = AdminSite() cls.site = AdminSite()
cls.factory = RequestFactory() cls.factory = RequestFactory()
cls.admin = ContactAdmin(model=get_user_model(), admin_site=None) cls.admin = ContactAdmin(model=get_user_model(), admin_site=None)
cls.superuser = create_superuser() cls.superuser = create_superuser()
cls.staffuser = create_user() cls.staffuser = create_user()
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.client = Client(HTTP_HOST="localhost:8080") self.client = Client(HTTP_HOST="localhost:8080")
@ -1608,7 +1610,7 @@ class TestContactAdmin(TestCase):
def tearDownClass(cls): def tearDownClass(cls):
super().tearDownClass() super().tearDownClass()
User.objects.all().delete() User.objects.all().delete()
@less_console_noise_decorator @less_console_noise_decorator
def test_has_model_description(self): def test_has_model_description(self):
"""Tests if this model has a model description on the table view""" """Tests if this model has a model description on the table view"""
@ -1684,7 +1686,7 @@ class TestContactAdmin(TestCase):
f"domainrequest/{domain_request4.pk}/change/'>city4.gov</a></li>" f"domainrequest/{domain_request4.pk}/change/'>city4.gov</a></li>"
"</ul>", "</ul>",
) )
# cleanup this test # cleanup this test
DomainRequest.objects.all().delete() DomainRequest.objects.all().delete()
contact.delete() contact.delete()
@ -1868,7 +1870,7 @@ class TestDraftDomain(TestCase):
def tearDown(self): def tearDown(self):
super().tearDown() super().tearDown()
DraftDomain.objects.all().delete() DraftDomain.objects.all().delete()
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
super().tearDownClass() super().tearDownClass()
@ -1903,14 +1905,14 @@ class TestFederalAgency(TestCase):
cls.admin = FederalAgencyAdmin(model=FederalAgency, admin_site=cls.site) cls.admin = FederalAgencyAdmin(model=FederalAgency, admin_site=cls.site)
cls.factory = RequestFactory() cls.factory = RequestFactory()
cls.test_helper = GenericTestHelper(admin=cls.admin) cls.test_helper = GenericTestHelper(admin=cls.admin)
def setUp(self): def setUp(self):
self.client = Client(HTTP_HOST="localhost:8080") self.client = Client(HTTP_HOST="localhost:8080")
def tearDown(self): def tearDown(self):
super().tearDown() super().tearDown()
FederalAgency.objects.all().delete() FederalAgency.objects.all().delete()
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
super().tearDownClass() super().tearDownClass()

View file

@ -9,7 +9,6 @@ from registrar.admin import (
DomainAdmin, DomainAdmin,
) )
from registrar.models import ( from registrar.models import (
Contact,
Domain, Domain,
DomainRequest, DomainRequest,
DomainInformation, DomainInformation,
@ -37,7 +36,7 @@ logger = logging.getLogger(__name__)
class TestDomainAdminAsStaff(MockEppLib): class TestDomainAdminAsStaff(MockEppLib):
"""Test DomainAdmin class as staff user. """Test DomainAdmin class as staff user.
Notes: Notes:
all tests share staffuser; do not change staffuser model in tests all tests share staffuser; do not change staffuser model in tests
tests have available staffuser, client, and admin tests have available staffuser, client, and admin
@ -52,7 +51,7 @@ class TestDomainAdminAsStaff(MockEppLib):
self.factory = RequestFactory() self.factory = RequestFactory()
def setUp(self): def setUp(self):
self.client = Client(HTTP_HOST="localhost:8080") self.client = Client(HTTP_HOST="localhost:8080")
self.client.force_login(self.staffuser) self.client.force_login(self.staffuser)
super().setUp() super().setUp()
@ -62,11 +61,11 @@ class TestDomainAdminAsStaff(MockEppLib):
Domain.objects.all().delete() Domain.objects.all().delete()
DomainInformation.objects.all().delete() DomainInformation.objects.all().delete()
DomainRequest.objects.all().delete() DomainRequest.objects.all().delete()
@classmethod @classmethod
def tearDownClass(self): def tearDownClass(self):
User.objects.all().delete() User.objects.all().delete()
super().tearDownClass() super().tearDownClass()
@less_console_noise_decorator @less_console_noise_decorator
def test_staff_can_see_cisa_region_federal(self): def test_staff_can_see_cisa_region_federal(self):
@ -374,7 +373,7 @@ class TestDomainAdminAsStaff(MockEppLib):
class TestDomainAdminWClient(TestCase): class TestDomainAdminWClient(TestCase):
"""Test DomainAdmin class as super user. """Test DomainAdmin class as super user.
Notes: Notes:
all tests share superuser; tests must not update superuser all tests share superuser; tests must not update superuser
tests have available superuser, client, and admin tests have available superuser, client, and admin
@ -389,7 +388,7 @@ class TestDomainAdminWClient(TestCase):
self.superuser = create_superuser() self.superuser = create_superuser()
def setUp(self): def setUp(self):
self.client = Client(HTTP_HOST="localhost:8080") self.client = Client(HTTP_HOST="localhost:8080")
self.client.force_login(self.superuser) self.client.force_login(self.superuser)
super().setUp() super().setUp()
@ -399,11 +398,11 @@ class TestDomainAdminWClient(TestCase):
Domain.objects.all().delete() Domain.objects.all().delete()
DomainInformation.objects.all().delete() DomainInformation.objects.all().delete()
DomainRequest.objects.all().delete() DomainRequest.objects.all().delete()
@classmethod @classmethod
def tearDownClass(self): def tearDownClass(self):
User.objects.all().delete() User.objects.all().delete()
super().tearDownClass() super().tearDownClass()
@less_console_noise_decorator @less_console_noise_decorator
def test_has_model_description(self): def test_has_model_description(self):
@ -665,7 +664,7 @@ class TestDomainAdminWClient(TestCase):
class TestDomainAdminWebTest(MockEppLib, WebTest): class TestDomainAdminWebTest(MockEppLib, WebTest):
"""Test DomainAdmin class as super user, using WebTest. """Test DomainAdmin class as super user, using WebTest.
WebTest allows for easier handling of forms and html responses. WebTest allows for easier handling of forms and html responses.
Notes: Notes:
all tests share superuser; tests must not update superuser all tests share superuser; tests must not update superuser
tests have available superuser, app, and admin tests have available superuser, app, and admin
@ -693,11 +692,11 @@ class TestDomainAdminWebTest(MockEppLib, WebTest):
Domain.objects.all().delete() Domain.objects.all().delete()
DomainInformation.objects.all().delete() DomainInformation.objects.all().delete()
DomainRequest.objects.all().delete() DomainRequest.objects.all().delete()
@classmethod @classmethod
def tearDownClass(self): def tearDownClass(self):
User.objects.all().delete() User.objects.all().delete()
super().tearDownClass() super().tearDownClass()
@less_console_noise_decorator @less_console_noise_decorator
@patch("registrar.admin.DomainAdmin._get_current_date", return_value=date(2024, 1, 1)) @patch("registrar.admin.DomainAdmin._get_current_date", return_value=date(2024, 1, 1))
@ -866,4 +865,3 @@ class TestDomainAdminWebTest(MockEppLib, WebTest):
@skip("Waiting on epp lib to implement") @skip("Waiting on epp lib to implement")
def test_place_and_remove_hold_epp(self): def test_place_and_remove_hold_epp(self):
raise raise

View file

@ -31,7 +31,7 @@ from .common import (
MockEppLib, MockEppLib,
GenericTestHelper, GenericTestHelper,
) )
from unittest.mock import ANY, patch from unittest.mock import patch
from django.conf import settings from django.conf import settings
import boto3_mocking # type: ignore import boto3_mocking # type: ignore
@ -43,7 +43,7 @@ logger = logging.getLogger(__name__)
@boto3_mocking.patching @boto3_mocking.patching
class TestDomainRequestAdmin(MockEppLib): class TestDomainRequestAdmin(MockEppLib):
"""Test DomainRequestAdmin class as either staff or super user. """Test DomainRequestAdmin class as either staff or super user.
Notes: Notes:
all tests share superuser/staffuser; do not change these models in tests all tests share superuser/staffuser; do not change these models in tests
tests have available staffuser, superuser, client, admin and test_helper tests have available staffuser, superuser, client, admin and test_helper
@ -878,9 +878,7 @@ class TestDomainRequestAdmin(MockEppLib):
DomainRequest.DomainRequestStatus.REJECTED, DomainRequest.DomainRequestStatus.REJECTED,
DomainRequest.RejectionReasons.SECOND_DOMAIN_REASONING, DomainRequest.RejectionReasons.SECOND_DOMAIN_REASONING,
) )
self.assert_email_is_accurate( self.assert_email_is_accurate("Your domain request was rejected because Testorg has a .gov domain.", 0, EMAIL)
"Your domain request was rejected because Testorg has a .gov domain.", 0, EMAIL
)
self.assertEqual(len(self.mock_client.EMAILS_SENT), 1) self.assertEqual(len(self.mock_client.EMAILS_SENT), 1)
# Approve # Approve
@ -1226,7 +1224,7 @@ class TestDomainRequestAdmin(MockEppLib):
last_name="Jones", last_name="Jones",
email="meoward.jones@igorville.gov", email="meoward.jones@igorville.gov",
phone="(555) 123 12345", phone="(555) 123 12345",
title = "Treat inspector" title="Treat inspector",
) )
# Create a fake domain request # Create a fake domain request
@ -1306,9 +1304,7 @@ class TestDomainRequestAdmin(MockEppLib):
domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW) domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.IN_REVIEW)
# Create a mock request # Create a mock request
request = self.factory.post( request = self.factory.post("/admin/registrar/domainrequest/{}/change/".format(domain_request.pk), follow=True)
"/admin/registrar/domainrequest/{}/change/".format(domain_request.pk), follow=True
)
with boto3_mocking.clients.handler_for("sesv2", self.mock_client): with boto3_mocking.clients.handler_for("sesv2", self.mock_client):
# Modify the domain request's property # Modify the domain request's property
@ -1350,9 +1346,7 @@ class TestDomainRequestAdmin(MockEppLib):
self.assertContains(response, "Yes, select ineligible status") self.assertContains(response, "Yes, select ineligible status")
# Create a mock request # Create a mock request
request = self.factory.post( request = self.factory.post("/admin/registrar/domainrequest{}/change/".format(domain_request.pk), follow=True)
"/admin/registrar/domainrequest{}/change/".format(domain_request.pk), follow=True
)
with boto3_mocking.clients.handler_for("sesv2", self.mock_client): with boto3_mocking.clients.handler_for("sesv2", self.mock_client):
# Modify the domain request's property # Modify the domain request's property
domain_request.status = DomainRequest.DomainRequestStatus.INELIGIBLE domain_request.status = DomainRequest.DomainRequestStatus.INELIGIBLE
@ -1873,5 +1867,3 @@ class TestDomainRequestAdmin(MockEppLib):
# Check if response contains expected_html # Check if response contains expected_html
self.assertIn(expected_html, response_content) self.assertIn(expected_html, response_content)

View file

@ -6,7 +6,7 @@ from django.test import TestCase
from waffle.testutils import override_flag from waffle.testutils import override_flag
from registrar.utility import email from registrar.utility import email
from registrar.utility.email import send_templated_email from registrar.utility.email import send_templated_email
from .common import completed_domain_request, less_console_noise from .common import completed_domain_request
from api.tests.common import less_console_noise_decorator from api.tests.common import less_console_noise_decorator
from datetime import datetime from datetime import datetime

View file

@ -2,7 +2,6 @@ from django.test import TestCase
from django.db.utils import IntegrityError from django.db.utils import IntegrityError
from django.db import transaction from django.db import transaction
from unittest.mock import patch from unittest.mock import patch
from django.contrib.auth import get_user_model
from django.test import RequestFactory from django.test import RequestFactory
@ -24,12 +23,19 @@ from registrar.models.transition_domain import TransitionDomain
from registrar.models.verified_by_staff import VerifiedByStaff # type: ignore from registrar.models.verified_by_staff import VerifiedByStaff # type: ignore
from registrar.utility.constants import BranchChoices from registrar.utility.constants import BranchChoices
from .common import MockSESClient, less_console_noise, completed_domain_request, set_domain_request_investigators, create_test_user from .common import (
MockSESClient,
less_console_noise,
completed_domain_request,
set_domain_request_investigators,
create_test_user,
)
from django_fsm import TransitionNotAllowed from django_fsm import TransitionNotAllowed
from waffle.testutils import override_flag from waffle.testutils import override_flag
from api.tests.common import less_console_noise_decorator from api.tests.common import less_console_noise_decorator
@boto3_mocking.patching @boto3_mocking.patching
class TestDomainRequest(TestCase): class TestDomainRequest(TestCase):
@less_console_noise_decorator @less_console_noise_decorator

View file

@ -31,8 +31,7 @@ from .common import MockDbForSharedTests, MockDbForIndividualTests, MockEppLib,
class CsvReportsTest(MockDbForSharedTests): class CsvReportsTest(MockDbForSharedTests):
"""Tests to determine if we are uploading our reports correctly. """Tests to determine if we are uploading our reports correctly."""
"""
def setUp(self): def setUp(self):
"""setup fake comain data""" """setup fake comain data"""
@ -200,8 +199,7 @@ class CsvReportsTest(MockDbForSharedTests):
class ExportDataTest(MockDbForIndividualTests, MockEppLib): class ExportDataTest(MockDbForIndividualTests, MockEppLib):
"""Test the ExportData class from csv_export. """Test the ExportData class from csv_export."""
"""
@less_console_noise_decorator @less_console_noise_decorator
def test_domain_data_type(self): def test_domain_data_type(self):

View file

@ -121,9 +121,7 @@ class TestEnvironmentVariablesEffects(TestCase):
fake_domain, _ = Domain.objects.get_or_create(name="igorville.gov") fake_domain, _ = Domain.objects.get_or_create(name="igorville.gov")
# Add a role # Add a role
UserDomainRole.objects.get_or_create( UserDomainRole.objects.get_or_create(user=self.user, domain=fake_domain, role=UserDomainRole.Roles.MANAGER)
user=self.user, domain=fake_domain, role=UserDomainRole.Roles.MANAGER
)
with patch.object(DomainNameserversView, "get_initial", side_effect=self.side_effect_raise_value_error): with patch.object(DomainNameserversView, "get_initial", side_effect=self.side_effect_raise_value_error):
with self.assertRaises(ValueError): with self.assertRaises(ValueError):
@ -144,9 +142,7 @@ class TestEnvironmentVariablesEffects(TestCase):
fake_domain, _ = Domain.objects.get_or_create(name="igorville.gov") fake_domain, _ = Domain.objects.get_or_create(name="igorville.gov")
# Add a role # Add a role
UserDomainRole.objects.get_or_create( UserDomainRole.objects.get_or_create(user=self.user, domain=fake_domain, role=UserDomainRole.Roles.MANAGER)
user=self.user, domain=fake_domain, role=UserDomainRole.Roles.MANAGER
)
with patch.object(DomainNameserversView, "get_initial", side_effect=self.side_effect_raise_value_error): with patch.object(DomainNameserversView, "get_initial", side_effect=self.side_effect_raise_value_error):
with self.assertRaises(ValueError): with self.assertRaises(ValueError):
@ -228,7 +224,9 @@ class HomeTests(TestWithUser):
test_domain.expiration_date = date(2011, 10, 10) test_domain.expiration_date = date(2011, 10, 10)
test_domain.save() test_domain.save()
test_role, _ = UserDomainRole.objects.get_or_create(user=self.user, domain=test_domain, role=UserDomainRole.Roles.MANAGER) test_role, _ = UserDomainRole.objects.get_or_create(
user=self.user, domain=test_domain, role=UserDomainRole.Roles.MANAGER
)
# Grab the json response of the domains list # Grab the json response of the domains list
response = self.client.get("/get-domains-json/") response = self.client.get("/get-domains-json/")
@ -995,7 +993,9 @@ class PortfoliosTests(TestWithUser, WebTest):
user=self.user, domain=self.domain, role=UserDomainRole.Roles.MANAGER user=self.user, domain=self.domain, role=UserDomainRole.Roles.MANAGER
) )
self.federal_agency = FederalAgency.objects.create() self.federal_agency = FederalAgency.objects.create()
self.portfolio, _ = Portfolio.objects.get_or_create(creator=self.user, organization_name="xyz inc", federal_agency=self.federal_agency) self.portfolio, _ = Portfolio.objects.get_or_create(
creator=self.user, organization_name="xyz inc", federal_agency=self.federal_agency
)
def tearDown(self): def tearDown(self):
Portfolio.objects.all().delete() Portfolio.objects.all().delete()