mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-14 16:47:02 +02:00
unit tests and lint
This commit is contained in:
parent
dbe438b6dc
commit
d802b51dc4
3 changed files with 109 additions and 11 deletions
|
@ -6,7 +6,7 @@ from django.db.models import Q
|
||||||
from django.http import HttpRequest
|
from django.http import HttpRequest
|
||||||
|
|
||||||
from registrar.models import DomainInformation, UserDomainRole
|
from registrar.models import DomainInformation, UserDomainRole
|
||||||
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices
|
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices
|
||||||
|
|
||||||
from .domain_invitation import DomainInvitation
|
from .domain_invitation import DomainInvitation
|
||||||
from .portfolio_invitation import PortfolioInvitation
|
from .portfolio_invitation import PortfolioInvitation
|
||||||
|
@ -198,38 +198,38 @@ class User(AbstractUser):
|
||||||
) or self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS)
|
) or self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS)
|
||||||
|
|
||||||
def has_domain_requests_portfolio_permission(self, portfolio):
|
def has_domain_requests_portfolio_permission(self, portfolio):
|
||||||
## BEGIN
|
# BEGIN
|
||||||
## Note code below is to add organization_request feature
|
# Note code below is to add organization_request feature
|
||||||
request = HttpRequest()
|
request = HttpRequest()
|
||||||
request.user = self
|
request.user = self
|
||||||
has_organization_requests_flag = flag_is_active(request, "organization_requests")
|
has_organization_requests_flag = flag_is_active(request, "organization_requests")
|
||||||
if not has_organization_requests_flag:
|
if not has_organization_requests_flag:
|
||||||
return False
|
return False
|
||||||
## END
|
# END
|
||||||
return self._has_portfolio_permission(
|
return self._has_portfolio_permission(
|
||||||
portfolio, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS
|
portfolio, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS
|
||||||
) or self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_CREATED_REQUESTS)
|
) or self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_CREATED_REQUESTS)
|
||||||
|
|
||||||
def has_view_members_portfolio_permission(self, portfolio):
|
def has_view_members_portfolio_permission(self, portfolio):
|
||||||
## BEGIN
|
# BEGIN
|
||||||
## Note code below is to add organization_request feature
|
# Note code below is to add organization_request feature
|
||||||
request = HttpRequest()
|
request = HttpRequest()
|
||||||
request.user = self
|
request.user = self
|
||||||
has_organization_members_flag = flag_is_active(request, "organization_members")
|
has_organization_members_flag = flag_is_active(request, "organization_members")
|
||||||
if not has_organization_members_flag:
|
if not has_organization_members_flag:
|
||||||
return False
|
return False
|
||||||
## END
|
# END
|
||||||
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_MEMBERS)
|
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_MEMBERS)
|
||||||
|
|
||||||
def has_edit_members_portfolio_permission(self, portfolio):
|
def has_edit_members_portfolio_permission(self, portfolio):
|
||||||
## BEGIN
|
# BEGIN
|
||||||
## Note code below is to add organization_request feature
|
# Note code below is to add organization_request feature
|
||||||
request = HttpRequest()
|
request = HttpRequest()
|
||||||
request.user = self
|
request.user = self
|
||||||
has_organization_members_flag = flag_is_active(request, "organization_members")
|
has_organization_members_flag = flag_is_active(request, "organization_members")
|
||||||
if not has_organization_members_flag:
|
if not has_organization_members_flag:
|
||||||
return False
|
return False
|
||||||
## END
|
# END
|
||||||
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.EDIT_MEMBERS)
|
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.EDIT_MEMBERS)
|
||||||
|
|
||||||
def has_view_all_domains_permission(self, portfolio):
|
def has_view_all_domains_permission(self, portfolio):
|
||||||
|
|
|
@ -230,6 +230,7 @@ class TestPortfolio(WebTest):
|
||||||
self.assertContains(response, 'for="id_city"')
|
self.assertContains(response, 'for="id_city"')
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
|
@override_flag("organization_requests", active=True)
|
||||||
def test_accessible_pages_when_user_does_not_have_permission(self):
|
def test_accessible_pages_when_user_does_not_have_permission(self):
|
||||||
"""Tests which pages are accessible when user does not have portfolio permissions"""
|
"""Tests which pages are accessible when user does not have portfolio permissions"""
|
||||||
self.app.set_user(self.user.username)
|
self.app.set_user(self.user.username)
|
||||||
|
@ -280,6 +281,7 @@ class TestPortfolio(WebTest):
|
||||||
self.assertEquals(domain_request_page.status_code, 403)
|
self.assertEquals(domain_request_page.status_code, 403)
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
|
@override_flag("organization_requests", active=True)
|
||||||
def test_accessible_pages_when_user_does_not_have_role(self):
|
def test_accessible_pages_when_user_does_not_have_role(self):
|
||||||
"""Test that admin / memmber roles are associated with the right access"""
|
"""Test that admin / memmber roles are associated with the right access"""
|
||||||
self.app.set_user(self.user.username)
|
self.app.set_user(self.user.username)
|
||||||
|
@ -532,3 +534,99 @@ class TestPortfolio(WebTest):
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertContains(response, "Domain name")
|
self.assertContains(response, "Domain name")
|
||||||
permission.delete()
|
permission.delete()
|
||||||
|
|
||||||
|
@less_console_noise_decorator
|
||||||
|
@override_flag("organization_feature", active=True)
|
||||||
|
@override_flag("organization_requests", active=False)
|
||||||
|
def test_organization_requests_waffle_flag_off_hides_nav_link_and_restricts_permission(self):
|
||||||
|
"""Setting the organization_requests waffle off hides the nav link and restricts access to the requests page"""
|
||||||
|
self.app.set_user(self.user.username)
|
||||||
|
|
||||||
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
|
user=self.user,
|
||||||
|
portfolio=self.portfolio,
|
||||||
|
additional_permissions=[
|
||||||
|
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_CREATED_REQUESTS,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
||||||
|
UserPortfolioPermissionChoices.EDIT_REQUESTS,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
home = self.app.get(reverse("home")).follow()
|
||||||
|
|
||||||
|
self.assertContains(home, "Hotel California")
|
||||||
|
self.assertNotContains(home, "Domain requests")
|
||||||
|
|
||||||
|
domain_requests = self.app.get(reverse("domain-requests"), expect_errors=True)
|
||||||
|
self.assertEqual(domain_requests.status_code, 403)
|
||||||
|
|
||||||
|
@less_console_noise_decorator
|
||||||
|
@override_flag("organization_feature", active=True)
|
||||||
|
@override_flag("organization_requests", active=True)
|
||||||
|
def test_organization_requests_waffle_flag_on_shows_nav_link_and_allows_permission(self):
|
||||||
|
"""Setting the organization_requests waffle on shows the nav link and allows access to the requests page"""
|
||||||
|
self.app.set_user(self.user.username)
|
||||||
|
|
||||||
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
|
user=self.user,
|
||||||
|
portfolio=self.portfolio,
|
||||||
|
additional_permissions=[
|
||||||
|
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_CREATED_REQUESTS,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
||||||
|
UserPortfolioPermissionChoices.EDIT_REQUESTS,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
home = self.app.get(reverse("home")).follow()
|
||||||
|
|
||||||
|
self.assertContains(home, "Hotel California")
|
||||||
|
self.assertContains(home, "Domain requests")
|
||||||
|
|
||||||
|
domain_requests = self.app.get(reverse("domain-requests"))
|
||||||
|
self.assertEqual(domain_requests.status_code, 200)
|
||||||
|
|
||||||
|
@less_console_noise_decorator
|
||||||
|
@override_flag("organization_feature", active=True)
|
||||||
|
@override_flag("organization_members", active=False)
|
||||||
|
def test_organization_members_waffle_flag_off_hides_nav_link(self):
|
||||||
|
"""Setting the organization_members waffle off hides the nav link"""
|
||||||
|
self.app.set_user(self.user.username)
|
||||||
|
|
||||||
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
|
user=self.user,
|
||||||
|
portfolio=self.portfolio,
|
||||||
|
additional_permissions=[
|
||||||
|
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_CREATED_REQUESTS,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
||||||
|
UserPortfolioPermissionChoices.EDIT_REQUESTS,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
home = self.app.get(reverse("home")).follow()
|
||||||
|
|
||||||
|
self.assertContains(home, "Hotel California")
|
||||||
|
self.assertNotContains(home, "Members")
|
||||||
|
|
||||||
|
@less_console_noise_decorator
|
||||||
|
@override_flag("organization_feature", active=True)
|
||||||
|
@override_flag("organization_members", active=True)
|
||||||
|
def test_organization_members_waffle_flag_on_shows_nav_link(self):
|
||||||
|
"""Setting the organization_members waffle on shows the nav link"""
|
||||||
|
self.app.set_user(self.user.username)
|
||||||
|
|
||||||
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
|
user=self.user,
|
||||||
|
portfolio=self.portfolio,
|
||||||
|
additional_permissions=[
|
||||||
|
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_MEMBERS,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
home = self.app.get(reverse("home")).follow()
|
||||||
|
|
||||||
|
self.assertContains(home, "Hotel California")
|
||||||
|
self.assertContains(home, "Members")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue