mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-25 20:18:38 +02:00
improvements to test_admin_domain
This commit is contained in:
parent
36985353c2
commit
99f19a70cb
2 changed files with 71 additions and 27 deletions
|
@ -898,6 +898,13 @@ class TestListHeaderAdmin(TestCase):
|
||||||
|
|
||||||
|
|
||||||
class TestMyUserAdmin(MockDb):
|
class TestMyUserAdmin(MockDb):
|
||||||
|
"""Test the MyUserAdmin class in Django Admin.
|
||||||
|
These tests use MockDb, which runs setUpClass and tearDownClass, rather than
|
||||||
|
setUp and tearDown. This is for efficiency purposes when running tests, but
|
||||||
|
also means that care must be taken to clean up within each test, because
|
||||||
|
setUp and tearDown are not used.
|
||||||
|
"""
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(self):
|
def setUpClass(self):
|
||||||
super().setUpClass()
|
super().setUpClass()
|
||||||
|
|
|
@ -36,10 +36,17 @@ logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class TestDomainAdminAsStaff(MockEppLib):
|
class TestDomainAdminAsStaff(MockEppLib):
|
||||||
|
|
||||||
def setUp(self):
|
@classmethod
|
||||||
|
def setUpClass(self):
|
||||||
|
super().setUpClass()
|
||||||
self.client = Client(HTTP_HOST="localhost:8080")
|
self.client = Client(HTTP_HOST="localhost:8080")
|
||||||
self.staffuser = create_user()
|
self.staffuser = create_user()
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
self.client.force_login(self.staffuser)
|
self.client.force_login(self.staffuser)
|
||||||
|
self.site = AdminSite()
|
||||||
|
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
||||||
|
self.factory = RequestFactory()
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
|
@ -48,7 +55,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
|
||||||
|
def tearDownClass(self):
|
||||||
User.objects.all().delete()
|
User.objects.all().delete()
|
||||||
|
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):
|
||||||
|
@ -149,6 +160,12 @@ class TestDomainAdminAsStaff(MockEppLib):
|
||||||
expected_organization_name = "MonkeySeeMonkeyDo"
|
expected_organization_name = "MonkeySeeMonkeyDo"
|
||||||
self.assertContains(response, expected_organization_name)
|
self.assertContains(response, expected_organization_name)
|
||||||
|
|
||||||
|
# clean up this test's data
|
||||||
|
domain.delete()
|
||||||
|
domain_information.delete()
|
||||||
|
_domain_request.delete()
|
||||||
|
_creator.delete()
|
||||||
|
|
||||||
@skip("Why did this test stop working, and is is a good test")
|
@skip("Why did this test stop working, and is is a good test")
|
||||||
def test_place_and_remove_hold(self):
|
def test_place_and_remove_hold(self):
|
||||||
domain = create_ready_domain()
|
domain = create_ready_domain()
|
||||||
|
@ -184,6 +201,9 @@ class TestDomainAdminAsStaff(MockEppLib):
|
||||||
self.assertContains(response, "Place hold")
|
self.assertContains(response, "Place hold")
|
||||||
self.assertNotContains(response, "Remove hold")
|
self.assertNotContains(response, "Remove hold")
|
||||||
|
|
||||||
|
# clean up this test's data
|
||||||
|
domain.delete()
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_deletion_is_successful(self):
|
def test_deletion_is_successful(self):
|
||||||
"""
|
"""
|
||||||
|
@ -192,9 +212,6 @@ class TestDomainAdminAsStaff(MockEppLib):
|
||||||
Then a user-friendly success message is returned for displaying on the web
|
Then a user-friendly success message is returned for displaying on the web
|
||||||
And `state` is set to `DELETED`
|
And `state` is set to `DELETED`
|
||||||
"""
|
"""
|
||||||
self.site = AdminSite()
|
|
||||||
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
domain = create_ready_domain()
|
domain = create_ready_domain()
|
||||||
# Put in client hold
|
# Put in client hold
|
||||||
domain.place_client_hold()
|
domain.place_client_hold()
|
||||||
|
@ -241,6 +258,8 @@ class TestDomainAdminAsStaff(MockEppLib):
|
||||||
|
|
||||||
self.assertEqual(domain.state, Domain.State.DELETED)
|
self.assertEqual(domain.state, Domain.State.DELETED)
|
||||||
|
|
||||||
|
# clean up data within this test
|
||||||
|
domain.delete()
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_deletion_ready_fsm_failure(self):
|
def test_deletion_ready_fsm_failure(self):
|
||||||
|
@ -250,12 +269,8 @@ class TestDomainAdminAsStaff(MockEppLib):
|
||||||
Then a user-friendly error message is returned for displaying on the web
|
Then a user-friendly error message is returned for displaying on the web
|
||||||
And `state` is not set to `DELETED`
|
And `state` is not set to `DELETED`
|
||||||
"""
|
"""
|
||||||
self.site = AdminSite()
|
|
||||||
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
domain = create_ready_domain()
|
domain = create_ready_domain()
|
||||||
p = "userpass"
|
|
||||||
self.client.login(username="staffuser", password=p)
|
|
||||||
# Ensure everything is displaying correctly
|
# Ensure everything is displaying correctly
|
||||||
response = self.client.get(
|
response = self.client.get(
|
||||||
"/admin/registrar/domain/{}/change/".format(domain.pk),
|
"/admin/registrar/domain/{}/change/".format(domain.pk),
|
||||||
|
@ -285,6 +300,9 @@ class TestDomainAdminAsStaff(MockEppLib):
|
||||||
|
|
||||||
self.assertEqual(domain.state, Domain.State.READY)
|
self.assertEqual(domain.state, Domain.State.READY)
|
||||||
|
|
||||||
|
# delete data created in this test
|
||||||
|
domain.delete()
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_analyst_deletes_domain_idempotent(self):
|
def test_analyst_deletes_domain_idempotent(self):
|
||||||
"""
|
"""
|
||||||
|
@ -294,14 +312,9 @@ class TestDomainAdminAsStaff(MockEppLib):
|
||||||
Then `commands.DeleteDomain` is sent to the registry
|
Then `commands.DeleteDomain` is sent to the registry
|
||||||
And Domain returns normally without an error dialog
|
And Domain returns normally without an error dialog
|
||||||
"""
|
"""
|
||||||
self.site = AdminSite()
|
|
||||||
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
domain = create_ready_domain()
|
domain = create_ready_domain()
|
||||||
# Put in client hold
|
# Put in client hold
|
||||||
domain.place_client_hold()
|
domain.place_client_hold()
|
||||||
p = "userpass"
|
|
||||||
self.client.login(username="staffuser", password=p)
|
|
||||||
# Ensure everything is displaying correctly
|
# Ensure everything is displaying correctly
|
||||||
response = self.client.get(
|
response = self.client.get(
|
||||||
"/admin/registrar/domain/{}/change/".format(domain.pk),
|
"/admin/registrar/domain/{}/change/".format(domain.pk),
|
||||||
|
@ -348,13 +361,23 @@ class TestDomainAdminAsStaff(MockEppLib):
|
||||||
)
|
)
|
||||||
self.assertEqual(domain.state, Domain.State.DELETED)
|
self.assertEqual(domain.state, Domain.State.DELETED)
|
||||||
|
|
||||||
|
# delete data created in this test
|
||||||
|
domain.delete()
|
||||||
|
|
||||||
|
|
||||||
class TestDomainAdminWClient(TestCase):
|
class TestDomainAdminWClient(TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
@classmethod
|
||||||
|
def setUpClass(self):
|
||||||
|
super().setUpClass()
|
||||||
self.client = Client(HTTP_HOST="localhost:8080")
|
self.client = Client(HTTP_HOST="localhost:8080")
|
||||||
self.superuser = create_superuser()
|
self.superuser = create_superuser()
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
self.client.force_login(self.superuser)
|
self.client.force_login(self.superuser)
|
||||||
|
self.site = AdminSite()
|
||||||
|
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
||||||
|
self.factory = RequestFactory()
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
|
@ -363,7 +386,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
|
||||||
|
def tearDownClass(self):
|
||||||
User.objects.all().delete()
|
User.objects.all().delete()
|
||||||
|
super().tearDownClass()
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_has_model_description(self):
|
def test_has_model_description(self):
|
||||||
|
@ -450,21 +477,21 @@ class TestDomainAdminWClient(TestCase):
|
||||||
# Test for the copy link
|
# Test for the copy link
|
||||||
self.assertContains(response, "usa-button__clipboard")
|
self.assertContains(response, "usa-button__clipboard")
|
||||||
|
|
||||||
|
# cleanup from this test
|
||||||
|
domain.delete()
|
||||||
|
_domain_info.delete()
|
||||||
|
domain_request.delete()
|
||||||
|
_creator.delete()
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_helper_text(self):
|
def test_helper_text(self):
|
||||||
"""
|
"""
|
||||||
Tests for the correct helper text on this page
|
Tests for the correct helper text on this page
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.site = AdminSite()
|
|
||||||
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
# Create a ready domain with a preset expiration date
|
# Create a ready domain with a preset expiration date
|
||||||
domain, _ = Domain.objects.get_or_create(name="fake.gov", state=Domain.State.READY)
|
domain, _ = Domain.objects.get_or_create(name="fake.gov", state=Domain.State.READY)
|
||||||
|
|
||||||
p = "adminpass"
|
|
||||||
self.client.login(username="superuser", password=p)
|
|
||||||
response = self.client.get(
|
response = self.client.get(
|
||||||
"/admin/registrar/domain/{}/change/".format(domain.pk),
|
"/admin/registrar/domain/{}/change/".format(domain.pk),
|
||||||
follow=True,
|
follow=True,
|
||||||
|
@ -566,6 +593,12 @@ class TestDomainAdminWClient(TestCase):
|
||||||
expected_organization_name = "MonkeySeeMonkeyDo"
|
expected_organization_name = "MonkeySeeMonkeyDo"
|
||||||
self.assertContains(response, expected_organization_name)
|
self.assertContains(response, expected_organization_name)
|
||||||
|
|
||||||
|
# cleanup from this test
|
||||||
|
domain.delete()
|
||||||
|
domain_information.delete()
|
||||||
|
_domain_request.delete()
|
||||||
|
_creator.delete()
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_custom_delete_confirmation_page_table(self):
|
def test_custom_delete_confirmation_page_table(self):
|
||||||
"""Tests if we override the delete confirmation page for custom content on the table"""
|
"""Tests if we override the delete confirmation page for custom content on the table"""
|
||||||
|
@ -575,10 +608,6 @@ class TestDomainAdminWClient(TestCase):
|
||||||
# Get the index. The post expects the index to be encoded as a string
|
# Get the index. The post expects the index to be encoded as a string
|
||||||
index = f"{domain.id}"
|
index = f"{domain.id}"
|
||||||
|
|
||||||
self.site = AdminSite()
|
|
||||||
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
# Contains some test tools
|
# Contains some test tools
|
||||||
self.test_helper = GenericTestHelper(
|
self.test_helper = GenericTestHelper(
|
||||||
factory=self.factory,
|
factory=self.factory,
|
||||||
|
@ -629,13 +658,17 @@ class TestDomainAdminWebTest(MockEppLib, WebTest):
|
||||||
# We disable them here. TODO for another ticket.
|
# We disable them here. TODO for another ticket.
|
||||||
csrf_checks = False
|
csrf_checks = False
|
||||||
|
|
||||||
def setUp(self):
|
@classmethod
|
||||||
|
def setUpClass(self):
|
||||||
|
super().setUpClass()
|
||||||
self.site = AdminSite()
|
self.site = AdminSite()
|
||||||
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
self.admin = DomainAdmin(model=Domain, admin_site=self.site)
|
||||||
self.superuser = create_superuser()
|
self.superuser = create_superuser()
|
||||||
self.factory = RequestFactory()
|
self.factory = RequestFactory()
|
||||||
self.app.set_user(self.superuser.username)
|
|
||||||
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
self.app.set_user(self.superuser.username)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
super().tearDown()
|
super().tearDown()
|
||||||
|
@ -643,7 +676,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
|
||||||
|
def tearDownClass(self):
|
||||||
User.objects.all().delete()
|
User.objects.all().delete()
|
||||||
|
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))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue