updated more tests

This commit is contained in:
David Kennedy 2025-02-12 19:59:01 -05:00
parent b170a47f46
commit 6537c93e63
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
7 changed files with 18 additions and 16 deletions

View file

@ -138,7 +138,6 @@ def _user_has_permission(user, request, rules, **kwargs):
if not any(conditions_met) and HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT in rules: if not any(conditions_met) and HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT in rules:
domain_request_id = kwargs.get("domain_request_pk") domain_request_id = kwargs.get("domain_request_pk")
has_permission = _has_portfolio_domain_requests_edit(user, request, domain_request_id) has_permission = _has_portfolio_domain_requests_edit(user, request, domain_request_id)
print(has_permission)
conditions_met.append(has_permission) conditions_met.append(has_permission)
if not any(conditions_met) and HAS_PORTFOLIO_MEMBERS_ANY_PERM in rules: if not any(conditions_met) and HAS_PORTFOLIO_MEMBERS_ANY_PERM in rules:

View file

@ -3834,8 +3834,6 @@ class TestTransferUser(WebTest):
self.assertContains(after_submit, "<h1>Change user</h1>") self.assertContains(after_submit, "<h1>Change user</h1>")
print(mock_success_message.call_args_list)
mock_success_message.assert_any_call( mock_success_message.assert_any_call(
ANY, ANY,
( (

View file

@ -85,7 +85,6 @@ def iter_sample_urls(urlconf):
if not viewname: if not viewname:
continue continue
if viewname == "auth_user_password_change": if viewname == "auth_user_password_change":
print(route)
break break
named_groups = route.regex.groupindex.keys() named_groups = route.regex.groupindex.keys()
kwargs = {} kwargs = {}

View file

@ -104,7 +104,7 @@ class GetDomainsJsonTest(TestWithUser, WebTest):
self.assertEqual(expected_domain.state_display(), state_displays[i]) self.assertEqual(expected_domain.state_display(), state_displays[i])
self.assertEqual(expected_domain.get_state_help_text(), get_state_help_texts[i]) self.assertEqual(expected_domain.get_state_help_text(), get_state_help_texts[i])
self.assertEqual(reverse("domain", kwargs={"pk": expected_domain.id}), action_urls[i]) self.assertEqual(reverse("domain", kwargs={"domain_pk": expected_domain.id}), action_urls[i])
# Check action_label # Check action_label
action_label_expected = ( action_label_expected = (
@ -185,7 +185,7 @@ class GetDomainsJsonTest(TestWithUser, WebTest):
self.assertEqual(expected_domain.state_display(), state_displays[i]) self.assertEqual(expected_domain.state_display(), state_displays[i])
self.assertEqual(expected_domain.get_state_help_text(), get_state_help_texts[i]) self.assertEqual(expected_domain.get_state_help_text(), get_state_help_texts[i])
self.assertEqual(reverse("domain", kwargs={"pk": expected_domain.id}), action_urls[i]) self.assertEqual(reverse("domain", kwargs={"domain_pk": expected_domain.id}), action_urls[i])
# Check action_label # Check action_label
user_domain_role_exists = UserDomainRole.objects.filter( user_domain_role_exists = UserDomainRole.objects.filter(
@ -272,7 +272,7 @@ class GetDomainsJsonTest(TestWithUser, WebTest):
self.assertEqual(expected_domain.state_display(), state_displays[i]) self.assertEqual(expected_domain.state_display(), state_displays[i])
self.assertEqual(expected_domain.get_state_help_text(), get_state_help_texts[i]) self.assertEqual(expected_domain.get_state_help_text(), get_state_help_texts[i])
self.assertEqual(reverse("domain", kwargs={"pk": expected_domain.id}), action_urls[i]) self.assertEqual(reverse("domain", kwargs={"domain_pk": expected_domain.id}), action_urls[i])
# Check action_label # Check action_label
user_domain_role_exists = UserDomainRole.objects.filter( user_domain_role_exists = UserDomainRole.objects.filter(

View file

@ -1320,7 +1320,7 @@ class TestPortfolio(WebTest):
self.client.force_login(self.user) self.client.force_login(self.user)
# Perform delete # Perform delete
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)
# Check that the response is 200 # Check that the response is 200
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
@ -1354,7 +1354,7 @@ class TestPortfolio(WebTest):
self.client.force_login(self.user) self.client.force_login(self.user)
# Attempt to delete # Attempt to delete
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)
# Check response is 403 Forbidden # Check response is 403 Forbidden
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
@ -1389,7 +1389,7 @@ class TestPortfolio(WebTest):
self.client.force_login(self.user) self.client.force_login(self.user)
# Perform delete as self.user # Perform delete as self.user
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)
# Check response is 403 Forbidden # Check response is 403 Forbidden
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
@ -3244,7 +3244,7 @@ class TestRequestingEntity(WebTest):
def test_requesting_entity_page_errors(self): def test_requesting_entity_page_errors(self):
"""Tests that we get the expected form errors on requesting entity""" """Tests that we get the expected form errors on requesting entity"""
domain_request = completed_domain_request(user=self.user, portfolio=self.portfolio) domain_request = completed_domain_request(user=self.user, portfolio=self.portfolio)
response = self.app.get(reverse("edit-domain-request", kwargs={"id": domain_request.pk})).follow() response = self.app.get(reverse("edit-domain-request", kwargs={"domain_request_pk": domain_request.pk})).follow()
form = response.forms[0] form = response.forms[0]
session_id = self.app.cookies[settings.SESSION_COOKIE_NAME] session_id = self.app.cookies[settings.SESSION_COOKIE_NAME]
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
@ -3334,7 +3334,7 @@ class TestRequestingEntity(WebTest):
domain_request.submit() domain_request.submit()
response = self.app.get(reverse("domain-request-status-viewonly", kwargs={"pk": domain_request.pk})) response = self.app.get(reverse("domain-request-status-viewonly", kwargs={"domain_request_pk": domain_request.pk}))
self.assertContains(response, "Requesting entity") self.assertContains(response, "Requesting entity")
self.assertContains(response, "moon") self.assertContains(response, "moon")
self.assertContains(response, "kepler, AL") self.assertContains(response, "kepler, AL")
@ -3359,7 +3359,7 @@ class TestRequestingEntity(WebTest):
domain_request.submit() domain_request.submit()
response = self.app.get(reverse("domain-request-status", kwargs={"pk": domain_request.pk})) response = self.app.get(reverse("domain-request-status", kwargs={"domain_request_pk": domain_request.pk}))
self.assertContains(response, "Requesting entity") self.assertContains(response, "Requesting entity")
self.assertContains(response, "moon") self.assertContains(response, "moon")
self.assertContains(response, "kepler, AL") self.assertContains(response, "kepler, AL")

View file

@ -1,12 +1,13 @@
import logging import logging
from collections import defaultdict from collections import defaultdict
from django.contrib import messages
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.http import Http404, HttpResponse, HttpResponseRedirect from django.http import Http404, HttpResponse, HttpResponseRedirect
from django.shortcuts import redirect, render from django.shortcuts import redirect, render
from django.urls import resolve, reverse from django.urls import resolve, reverse
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.generic import DeleteView, DetailView, TemplateView from django.views.generic import DeleteView, DetailView, TemplateView
from django.contrib import messages
from registrar.decorators import ( from registrar.decorators import (
HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT, HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT,
HAS_PORTFOLIO_DOMAIN_REQUESTS_VIEW_ALL, HAS_PORTFOLIO_DOMAIN_REQUESTS_VIEW_ALL,
@ -880,7 +881,7 @@ class DomainRequestWithdrawn(DetailView):
@grant_access(IS_DOMAIN_REQUEST_CREATOR, HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT) @grant_access(IS_DOMAIN_REQUEST_CREATOR, HAS_PORTFOLIO_DOMAIN_REQUESTS_EDIT)
class DomainRequestDeleteView(DeleteView): class DomainRequestDeleteView(PermissionRequiredMixin, DeleteView):
"""Delete view for home that allows the end user to delete DomainRequests""" """Delete view for home that allows the end user to delete DomainRequests"""
object: DomainRequest # workaround for type mismatch in DeleteView object: DomainRequest # workaround for type mismatch in DeleteView
@ -895,6 +896,12 @@ class DomainRequestDeleteView(DeleteView):
if status not in valid_statuses: if status not in valid_statuses:
return False return False
# Portfolio users cannot delete their requests if they aren't permissioned to do so
if self.request.user.is_org_user(self.request):
portfolio = self.request.session.get("portfolio")
if not self.request.user.has_edit_request_portfolio_permission(portfolio):
return False
return True return True
def get_success_url(self): def get_success_url(self):

View file

@ -39,7 +39,6 @@ def custom_403_error_view(request, exception=None, context=None):
def custom_404_error_view(request, exception=None, context=None): def custom_404_error_view(request, exception=None, context=None):
"""Used to redirect 404 errors to a custom view""" """Used to redirect 404 errors to a custom view"""
print("this is called")
if context is None: if context is None:
context = {} context = {}
return render(request, "404.html", context=context, status=404) return render(request, "404.html", context=context, status=404)