From 86fbac82496800d47896b8c34efdc4fd394e6ec2 Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Wed, 12 Feb 2025 21:10:22 -0500 Subject: [PATCH] updated tests --- src/registrar/decorators.py | 2 +- src/registrar/tests/test_views.py | 16 +-- src/registrar/tests/test_views_request.py | 116 +++++++++--------- .../tests/test_views_requests_json.py | 8 +- src/registrar/views/domain_request.py | 4 +- 5 files changed, 71 insertions(+), 75 deletions(-) diff --git a/src/registrar/decorators.py b/src/registrar/decorators.py index 37bdabccd..158139218 100644 --- a/src/registrar/decorators.py +++ b/src/registrar/decorators.py @@ -120,7 +120,7 @@ def _user_has_permission(user, request, rules, **kwargs): if not any(conditions_met) and IS_DOMAIN_REQUEST_CREATOR in rules: domain_request_id = kwargs.get("domain_request_pk") - has_permission = _is_domain_request_creator(user, domain_request_id) + has_permission = _is_domain_request_creator(user, domain_request_id) and not _is_portfolio_member(request) conditions_met.append(has_permission) if not any(conditions_met) and HAS_PORTFOLIO_DOMAIN_REQUESTS_ANY_PERM in rules: diff --git a/src/registrar/tests/test_views.py b/src/registrar/tests/test_views.py index 2dfead13f..7521719f8 100644 --- a/src/registrar/tests/test_views.py +++ b/src/registrar/tests/test_views.py @@ -126,7 +126,7 @@ class TestEnvironmentVariablesEffects(TestCase): with patch.object(DomainNameserversView, "get_initial", side_effect=self.side_effect_raise_value_error): with self.assertRaises(ValueError): contact_page_500 = self.client.get( - reverse("domain-dns-nameservers", kwargs={"pk": fake_domain.id}), + reverse("domain-dns-nameservers", kwargs={"domain_pk": fake_domain.id}), ) # Check that a 500 response is returned @@ -147,7 +147,7 @@ class TestEnvironmentVariablesEffects(TestCase): with patch.object(DomainNameserversView, "get_initial", side_effect=self.side_effect_raise_value_error): with self.assertRaises(ValueError): contact_page_500 = self.client.get( - reverse("domain-dns-nameservers", kwargs={"pk": fake_domain.id}), + reverse("domain-dns-nameservers", kwargs={"domain_pk": fake_domain.id}), ) # Check that a 500 response is returned @@ -292,7 +292,7 @@ class HomeTests(TestWithUser): ) # Trigger the delete logic - response = self.client.post(reverse("domain-request-delete", kwargs={"pk": domain_request.pk}), follow=True) + response = self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True) self.assertNotContains(response, "igorville.gov") @@ -309,7 +309,7 @@ class HomeTests(TestWithUser): ) # Trigger the delete logic - response = self.client.post(reverse("domain-request-delete", kwargs={"pk": domain_request.pk}), follow=True) + response = self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True) self.assertNotContains(response, "igorville.gov") @@ -335,7 +335,7 @@ class HomeTests(TestWithUser): # Trigger the delete logic response = self.client.post( - reverse("domain-request-delete", kwargs={"pk": domain_request.pk}), follow=True + reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk}), follow=True ) # Check for a 403 error - the end user should not be allowed to do this @@ -392,7 +392,7 @@ class HomeTests(TestWithUser): self.assertTrue(igorville.exists()) # Trigger the delete logic - self.client.post(reverse("domain-request-delete", kwargs={"pk": domain_request.pk})) + self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request.pk})) # igorville is now deleted igorville = DomainRequest.objects.filter(requested_domain__name="igorville.gov") @@ -462,7 +462,7 @@ class HomeTests(TestWithUser): self.assertTrue(teaville.exists()) # Trigger the delete logic - self.client.post(reverse("domain-request-delete", kwargs={"pk": domain_request_2.pk})) + self.client.post(reverse("domain-request-delete", kwargs={"domain_request_pk": domain_request_2.pk})) teaville = DomainRequest.objects.filter(requested_domain__name="teaville.gov") self.assertFalse(teaville.exists()) @@ -935,7 +935,7 @@ class UserProfileTests(TestWithUser, WebTest): @less_console_noise_decorator def test_domain_detail_contains_your_profile(self): """Tests that the domain detail view contains 'your profile' rather than 'your contact information'""" - response = self.client.get(reverse("domain", args=[self.domain.pk])) + response = self.client.get(reverse("domain", kwargs={"domain_pk": self.domain.pk})) self.assertContains(response, "Your profile") self.assertNotContains(response, "Your contact information") diff --git a/src/registrar/tests/test_views_request.py b/src/registrar/tests/test_views_request.py index f6eba2a56..d70300f9c 100644 --- a/src/registrar/tests/test_views_request.py +++ b/src/registrar/tests/test_views_request.py @@ -809,7 +809,7 @@ class DomainRequestTests(TestWithUser, WebTest): # type_page = home_page.click("Edit") session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] - url = reverse("edit-domain-request", kwargs={"id": domain_request.pk}) + url = reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) # TODO: The following line results in a django error on middleware @@ -1106,7 +1106,7 @@ class DomainRequestTests(TestWithUser, WebTest): def test_yes_no_contact_form_inits_blank_for_new_domain_request(self): """On the Other Contacts page, the yes/no form gets initialized with nothing selected for new domain requests""" - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": 0})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": 0})) other_contacts_form = other_contacts_page.forms[0] self.assertEquals(other_contacts_form["other_contacts-has_other_contacts"].value, None) @@ -1114,7 +1114,7 @@ class DomainRequestTests(TestWithUser, WebTest): def test_yes_no_additional_form_inits_blank_for_new_domain_request(self): """On the Additional Details page, the yes/no form gets initialized with nothing selected for new domain requests""" - additional_details_page = self.app.get(reverse("domain-request:additional_details", kwargs={"id": 0})) + additional_details_page = self.app.get(reverse("domain-request:additional_details", kwargs={"domain_request_pk": 0})) additional_form = additional_details_page.forms[0] # Check the cisa representative yes/no field @@ -1130,7 +1130,7 @@ class DomainRequestTests(TestWithUser, WebTest): # Domain Request has other contacts by default domain_request = completed_domain_request(user=self.user) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1138,7 +1138,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.pk})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1155,7 +1155,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request.save() # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1164,7 +1164,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) additional_details_page = self.app.get( - reverse("domain-request:additional_details", kwargs={"id": domain_request.pk}) + reverse("domain-request:additional_details", kwargs={"domain_request_pk": domain_request.pk}) ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -1187,7 +1187,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request.no_other_contacts_rationale = "Hello!" domain_request.save() # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1195,7 +1195,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.pk})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1216,7 +1216,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request.save() # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1225,7 +1225,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) additional_details_page = self.app.get( - reverse("domain-request:additional_details", kwargs={"id": domain_request.pk}) + reverse("domain-request:additional_details", kwargs={"domain_request_pk": domain_request.pk}) ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -1256,7 +1256,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.assertEqual(domain_request.cisa_representative_email, "fake@faketown.gov") # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1265,7 +1265,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) additional_details_page = self.app.get( - reverse("domain-request:additional_details", kwargs={"id": domain_request.pk}) + reverse("domain-request:additional_details", kwargs={"domain_request_pk": domain_request.pk}) ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -1320,7 +1320,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.assertEqual(domain_request.has_cisa_representative, None) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1329,7 +1329,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) additional_details_page = self.app.get( - reverse("domain-request:additional_details", kwargs={"id": domain_request.pk}) + reverse("domain-request:additional_details", kwargs={"domain_request_pk": domain_request.pk}) ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -1367,7 +1367,7 @@ class DomainRequestTests(TestWithUser, WebTest): ) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1376,7 +1376,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) additional_details_page = self.app.get( - reverse("domain-request:additional_details", kwargs={"id": domain_request.pk}) + reverse("domain-request:additional_details", kwargs={"domain_request_pk": domain_request.pk}) ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -1400,7 +1400,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request = completed_domain_request(name="cisareps.gov", user=self.user, has_anything_else=False) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1409,7 +1409,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) additional_details_page = self.app.get( - reverse("domain-request:additional_details", kwargs={"id": domain_request.pk}) + reverse("domain-request:additional_details", kwargs={"domain_request_pk": domain_request.pk}) ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -1439,7 +1439,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.assertEqual(domain_request.has_cisa_representative, None) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1448,7 +1448,7 @@ class DomainRequestTests(TestWithUser, WebTest): self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) additional_details_page = self.app.get( - reverse("domain-request:additional_details", kwargs={"id": domain_request.id}) + reverse("domain-request:additional_details", kwargs={"domain_request_pk": domain_request.id}) ) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) @@ -1472,7 +1472,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request.no_other_contacts_rationale = "Hello!" domain_request.save() # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1480,7 +1480,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.pk})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1520,7 +1520,7 @@ class DomainRequestTests(TestWithUser, WebTest): # Domain request has other contacts by default domain_request = completed_domain_request(user=self.user) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1528,7 +1528,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.pk})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1604,7 +1604,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_info.other_contacts.set([other]) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1612,7 +1612,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.pk})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1653,7 +1653,7 @@ class DomainRequestTests(TestWithUser, WebTest): @less_console_noise_decorator def test_if_yes_no_form_is_no_then_no_other_contacts_required(self): """Applicants with no other contacts have to give a reason.""" - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": 0})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": 0})) other_contacts_form = other_contacts_page.forms[0] other_contacts_form["other_contacts-has_other_contacts"] = "False" response = other_contacts_page.forms[0].submit() @@ -1669,7 +1669,7 @@ class DomainRequestTests(TestWithUser, WebTest): @less_console_noise_decorator def test_if_yes_no_form_is_yes_then_other_contacts_required(self): """Applicants with other contacts do not have to give a reason.""" - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": 0})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": 0})) other_contacts_form = other_contacts_page.forms[0] other_contacts_form["other_contacts-has_other_contacts"] = "True" response = other_contacts_page.forms[0].submit() @@ -1737,7 +1737,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request.other_contacts.add(other2) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1745,7 +1745,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.id})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1810,7 +1810,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request.other_contacts.add(other) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1818,7 +1818,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.id})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1887,7 +1887,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request.other_contacts.add(other) # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1895,7 +1895,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.id})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.id})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -1967,7 +1967,7 @@ class DomainRequestTests(TestWithUser, WebTest): other_contact_pk = other.id # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -1975,7 +1975,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.pk})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -2043,7 +2043,7 @@ class DomainRequestTests(TestWithUser, WebTest): other_contact_pk = so.id # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -2051,7 +2051,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"id": domain_request.pk})) + other_contacts_page = self.app.get(reverse("domain-request:other_contacts", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) other_contacts_form = other_contacts_page.forms[0] @@ -2113,7 +2113,7 @@ class DomainRequestTests(TestWithUser, WebTest): so_pk = so.id # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -2121,7 +2121,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - so_page = self.app.get(reverse("domain-request:senior_official", kwargs={"id": domain_request.pk})) + so_page = self.app.get(reverse("domain-request:senior_official", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) so_form = so_page.forms[0] @@ -2182,7 +2182,7 @@ class DomainRequestTests(TestWithUser, WebTest): so_pk = so.id # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -2190,7 +2190,7 @@ class DomainRequestTests(TestWithUser, WebTest): session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) - so_page = self.app.get(reverse("domain-request:senior_official", kwargs={"id": domain_request.pk})) + so_page = self.app.get(reverse("domain-request:senior_official", kwargs={"domain_request_pk": domain_request.pk})) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) so_form = so_page.forms[0] @@ -2240,7 +2240,7 @@ class DomainRequestTests(TestWithUser, WebTest): creator_pk = self.user.id # prime the form by visiting /edit - self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})) + self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})) # django-webtest does not handle cookie-based sessions well because it keeps # resetting the session key on each new request, thus destroying the concept # of a "session". We are going to do it manually, saving the session ID here @@ -2539,7 +2539,7 @@ class DomainRequestTests(TestWithUser, WebTest): new_domain_request_id = all_domain_requests.first().id # Skip to the current sites page - current_sites_page = self.app.get(reverse("domain-request:current_sites", kwargs={"id": new_domain_request_id})) + current_sites_page = self.app.get(reverse("domain-request:current_sites", kwargs={"domain_request_pk": new_domain_request_id})) # fill in the form field current_sites_form = current_sites_page.forms[0] self.assertIn("current_sites-0-website", current_sites_form.fields) @@ -2614,7 +2614,7 @@ class DomainRequestTests(TestWithUser, WebTest): domain_request.alternative_domains.add(alt) # prime the form by visiting /edit - url = reverse("edit-domain-request", kwargs={"id": domain_request.pk}) + url = reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}) response = self.client.get(url) # TODO: this is a sketch of each page in the wizard which needs to be tested @@ -2724,7 +2724,7 @@ class DomainRequestTests(TestWithUser, WebTest): NOTE: This may be a moot point if we implement a more solid pattern in the future, like not a submit action at all on the review page.""" - review_page = self.app.get(reverse("domain-request:review", kwargs={"id": 0})) + review_page = self.app.get(reverse("domain-request:review", kwargs={"domain_request_pk": 0})) self.assertContains(review_page, "toggle-submit-domain-request") self.assertContains(review_page, "Your request form is incomplete") @@ -2742,7 +2742,7 @@ class DomainRequestTests(TestWithUser, WebTest): # This user should also be forbidden from editing existing ones domain_request = completed_domain_request(user=self.user) - edit_page = self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk}), expect_errors=True) + edit_page = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}), expect_errors=True) self.assertEqual(edit_page.status_code, 403) # Cleanup @@ -2767,7 +2767,7 @@ class DomainRequestTests(TestWithUser, WebTest): # This user should also be allowed to edit existing ones domain_request = completed_domain_request(user=self.user) - edit_page = self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})).follow() + edit_page = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})).follow() self.assertEqual(edit_page.status_code, 200) def test_non_creator_access(self): @@ -2776,14 +2776,14 @@ class DomainRequestTests(TestWithUser, WebTest): other_user = User.objects.create_user(username="other_user", password=p) domain_request = completed_domain_request(user=other_user) - edit_page = self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk}), expect_errors=True) + edit_page = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk}), expect_errors=True) self.assertEqual(edit_page.status_code, 403) def test_creator_access(self): """Tests that a user can edit a domain request they created""" domain_request = completed_domain_request(user=self.user) - edit_page = self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})).follow() + edit_page = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})).follow() self.assertEqual(edit_page.status_code, 200) @@ -2898,12 +2898,8 @@ class DomainRequestTestDifferentStatuses(TestWithUser, WebTest): domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.SUBMITTED, user=self.user) domain_request.save() - detail_page = self.app.get(f"/domain-request/{domain_request.id}") - self.assertContains(detail_page, "city.gov") - self.assertContains(detail_page, "city1.gov") - self.assertContains(detail_page, "Chief Tester") - self.assertContains(detail_page, "testy@town.com") - self.assertContains(detail_page, "Status:") + detail_page = self.client.get(f"/domain-request/{domain_request.id}") + self.assertEqual(detail_page.status_code, 403) # Restricted user trying to withdraw results in 403 error with less_console_noise(): for url_name in [ @@ -2911,7 +2907,7 @@ class DomainRequestTestDifferentStatuses(TestWithUser, WebTest): "domain-request-withdrawn", ]: with self.subTest(url_name=url_name): - page = self.client.get(reverse(url_name, kwargs={"pk": domain_request.pk})) + page = self.client.get(reverse(url_name, kwargs={"domain_request_pk": domain_request.pk})) self.assertEqual(page.status_code, 403) @less_console_noise_decorator @@ -2931,7 +2927,7 @@ class DomainRequestTestDifferentStatuses(TestWithUser, WebTest): "domain-request-withdrawn", ]: with self.subTest(url_name=url_name): - page = self.client.get(reverse(url_name, kwargs={"pk": domain_request.pk})) + page = self.client.get(reverse(url_name, kwargs={"domain_request_pk": domain_request.pk})) self.assertEqual(page.status_code, 403) @less_console_noise_decorator @@ -3206,7 +3202,7 @@ class TestDomainRequestWizard(TestWithUser, WebTest): self.assertContains(detail_page, "usa-current", count=2) # We default to the requesting entity page - expected_url = reverse("domain-request:portfolio_requesting_entity", kwargs={"id": domain_request.id}) + expected_url = reverse("domain-request:portfolio_requesting_entity", kwargs={"domain_request_pk": domain_request.id}) # This returns the entire url, thus "in" self.assertIn(expected_url, detail_page.request.url) else: diff --git a/src/registrar/tests/test_views_requests_json.py b/src/registrar/tests/test_views_requests_json.py index e25d76bf7..55d9141ab 100644 --- a/src/registrar/tests/test_views_requests_json.py +++ b/src/registrar/tests/test_views_requests_json.py @@ -199,14 +199,14 @@ class GetRequestsJsonTest(TestWithUser, WebTest): # Check action_url action_url_expected = ( - reverse("edit-domain-request", kwargs={"id": self.domain_requests[i].id}) + reverse("edit-domain-request", kwargs={"domain_request_pk": self.domain_requests[i].id}) if self.domain_requests[i].status in [ DomainRequest.DomainRequestStatus.STARTED, DomainRequest.DomainRequestStatus.ACTION_NEEDED, DomainRequest.DomainRequestStatus.WITHDRAWN, ] - else reverse("domain-request-status", kwargs={"pk": self.domain_requests[i].id}) + else reverse("domain-request-status", kwargs={"domain_request_pk": self.domain_requests[i].id}) ) self.assertEqual(action_url_expected, action_urls[i]) @@ -342,7 +342,7 @@ class GetRequestsJsonTest(TestWithUser, WebTest): # Test case where action is View self.assertEqual("View", action_labels[i]) self.assertEqual( - reverse("domain-request-status-viewonly", kwargs={"pk": expected_domain_request.id}), action_urls[i] + reverse("domain-request-status-viewonly", kwargs={"domain_request_pk": expected_domain_request.id}), action_urls[i] ) self.assertEqual("visibility", svg_icons[i]) elif status[i] in [ @@ -360,7 +360,7 @@ class GetRequestsJsonTest(TestWithUser, WebTest): # Test case where action is Manage self.assertEqual("Manage", action_labels[i]) self.assertEqual( - reverse("domain-request-status", kwargs={"pk": expected_domain_request.id}), action_urls[i] + reverse("domain-request-status", kwargs={"domain_request_pk": expected_domain_request.id}), action_urls[i] ) self.assertEqual("settings", svg_icons[i]) diff --git a/src/registrar/views/domain_request.py b/src/registrar/views/domain_request.py index 7a0ce6d3c..1d17e3047 100644 --- a/src/registrar/views/domain_request.py +++ b/src/registrar/views/domain_request.py @@ -843,7 +843,7 @@ class DomainRequestStatus(DetailView): return context -@grant_access(IS_DOMAIN_REQUEST_CREATOR) +@grant_access(IS_DOMAIN_REQUEST_CREATOR, HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT) class DomainRequestWithdrawConfirmation(DetailView): """This page will ask user to confirm if they want to withdraw @@ -857,7 +857,7 @@ class DomainRequestWithdrawConfirmation(DetailView): context_object_name = "DomainRequest" -@grant_access(IS_DOMAIN_REQUEST_CREATOR) +@grant_access(IS_DOMAIN_REQUEST_CREATOR, HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT) class DomainRequestWithdrawn(DetailView): # this view renders no template template_name = ""