mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-19 19:09:22 +02:00
Fix tests + lint
This commit is contained in:
parent
3c4b4630de
commit
743f81aa90
6 changed files with 45 additions and 43 deletions
|
@ -61,19 +61,19 @@ def add_has_profile_feature_flag_to_context(request):
|
||||||
def portfolio_permissions(request):
|
def portfolio_permissions(request):
|
||||||
"""Make portfolio permissions for the request user available in global context"""
|
"""Make portfolio permissions for the request user available in global context"""
|
||||||
default_context = {
|
default_context = {
|
||||||
"has_base_portfolio_permission": False,
|
"has_base_portfolio_permission": False,
|
||||||
"has_any_domains_portfolio_permission": False,
|
"has_any_domains_portfolio_permission": False,
|
||||||
"has_any_requests_portfolio_permission": False,
|
"has_any_requests_portfolio_permission": False,
|
||||||
"has_edit_request_portfolio_permission": False,
|
"has_edit_request_portfolio_permission": False,
|
||||||
"has_view_suborganization_portfolio_permission": False,
|
"has_view_suborganization_portfolio_permission": False,
|
||||||
"has_edit_suborganization_portfolio_permission": False,
|
"has_edit_suborganization_portfolio_permission": False,
|
||||||
"has_view_members_portfolio_permission": False,
|
"has_view_members_portfolio_permission": False,
|
||||||
"has_edit_members_portfolio_permission": False,
|
"has_edit_members_portfolio_permission": False,
|
||||||
"portfolio": None,
|
"portfolio": None,
|
||||||
"has_organization_feature_flag": False,
|
"has_organization_feature_flag": False,
|
||||||
"has_organization_requests_flag": False,
|
"has_organization_requests_flag": False,
|
||||||
"has_organization_members_flag": False,
|
"has_organization_members_flag": False,
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
portfolio = request.session.get("portfolio")
|
portfolio = request.session.get("portfolio")
|
||||||
if portfolio:
|
if portfolio:
|
||||||
|
@ -87,9 +87,7 @@ def portfolio_permissions(request):
|
||||||
portfolio
|
portfolio
|
||||||
),
|
),
|
||||||
"has_any_domains_portfolio_permission": request.user.has_any_domains_portfolio_permission(portfolio),
|
"has_any_domains_portfolio_permission": request.user.has_any_domains_portfolio_permission(portfolio),
|
||||||
"has_any_requests_portfolio_permission": request.user.has_any_requests_portfolio_permission(
|
"has_any_requests_portfolio_permission": request.user.has_any_requests_portfolio_permission(portfolio),
|
||||||
portfolio
|
|
||||||
),
|
|
||||||
"has_view_members_portfolio_permission": request.user.has_view_members_portfolio_permission(portfolio),
|
"has_view_members_portfolio_permission": request.user.has_view_members_portfolio_permission(portfolio),
|
||||||
"has_edit_members_portfolio_permission": request.user.has_edit_members_portfolio_permission(portfolio),
|
"has_edit_members_portfolio_permission": request.user.has_edit_members_portfolio_permission(portfolio),
|
||||||
"portfolio": portfolio,
|
"portfolio": portfolio,
|
||||||
|
|
|
@ -201,7 +201,7 @@ class User(AbstractUser):
|
||||||
request = HttpRequest()
|
request = HttpRequest()
|
||||||
request.user = self
|
request.user = self
|
||||||
return flag_is_active(request, "organization_requests")
|
return flag_is_active(request, "organization_requests")
|
||||||
|
|
||||||
def has_organization_members_flag(self):
|
def has_organization_members_flag(self):
|
||||||
request = HttpRequest()
|
request = HttpRequest()
|
||||||
request.user = self
|
request.user = self
|
||||||
|
@ -226,7 +226,7 @@ class User(AbstractUser):
|
||||||
def has_view_all_domains_portfolio_permission(self, portfolio):
|
def has_view_all_domains_portfolio_permission(self, portfolio):
|
||||||
"""Determines if the current user can view all available domains in a given portfolio"""
|
"""Determines if the current user can view all available domains in a given portfolio"""
|
||||||
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS)
|
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS)
|
||||||
|
|
||||||
def has_any_requests_portfolio_permission(self, portfolio):
|
def has_any_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
|
||||||
|
@ -445,8 +445,6 @@ class User(AbstractUser):
|
||||||
self.check_domain_invitations_on_login()
|
self.check_domain_invitations_on_login()
|
||||||
self.check_portfolio_invitations_on_login()
|
self.check_portfolio_invitations_on_login()
|
||||||
|
|
||||||
# NOTE TO DAVE: I'd simply suggest that we move these functions outside of the user object,
|
|
||||||
# and move them to some sort of utility file. That way we aren't calling request inside here.
|
|
||||||
def is_org_user(self, request):
|
def is_org_user(self, request):
|
||||||
has_organization_feature_flag = flag_is_active(request, "organization_feature")
|
has_organization_feature_flag = flag_is_active(request, "organization_feature")
|
||||||
portfolio = request.session.get("portfolio")
|
portfolio = request.session.get("portfolio")
|
||||||
|
|
|
@ -150,8 +150,11 @@ class CheckPortfolioMiddleware:
|
||||||
elif request.session.get("portfolio"):
|
elif request.session.get("portfolio"):
|
||||||
# Edge case: User disables flag while already logged in
|
# Edge case: User disables flag while already logged in
|
||||||
request.session["portfolio"] = None
|
request.session["portfolio"] = None
|
||||||
|
elif "portfolio" not in request.session:
|
||||||
|
# Set the portfolio in the session if its not already in it
|
||||||
|
request.session["portfolio"] = None
|
||||||
|
|
||||||
if request.session.get("portfolio"):
|
if request.user.is_org_user(request):
|
||||||
if current_path == self.home:
|
if current_path == self.home:
|
||||||
if request.user.has_any_domains_portfolio_permission(request.session["portfolio"]):
|
if request.user.has_any_domains_portfolio_permission(request.session["portfolio"]):
|
||||||
portfolio_redirect = reverse("domains")
|
portfolio_redirect = reverse("domains")
|
||||||
|
|
|
@ -1387,21 +1387,21 @@ class TestUser(TestCase):
|
||||||
# Test if the user has no roles
|
# Test if the user has no roles
|
||||||
self.assertEqual(self.user.portfolio_role_summary(self.portfolio), [])
|
self.assertEqual(self.user.portfolio_role_summary(self.portfolio), [])
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
def test_has_base_portfolio_permission(self, mock_has_permission):
|
def test_has_base_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.return_value = True
|
mock_has_permission.return_value = True
|
||||||
|
|
||||||
self.assertTrue(self.user.has_base_portfolio_permission(self.portfolio))
|
self.assertTrue(self.user.has_base_portfolio_permission(self.portfolio))
|
||||||
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.VIEW_PORTFOLIO)
|
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.VIEW_PORTFOLIO)
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
def test_has_edit_org_portfolio_permission(self, mock_has_permission):
|
def test_has_edit_org_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.return_value = True
|
mock_has_permission.return_value = True
|
||||||
|
|
||||||
self.assertTrue(self.user.has_edit_org_portfolio_permission(self.portfolio))
|
self.assertTrue(self.user.has_edit_org_portfolio_permission(self.portfolio))
|
||||||
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.EDIT_PORTFOLIO)
|
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.EDIT_PORTFOLIO)
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
def test_has_any_domains_portfolio_permission(self, mock_has_permission):
|
def test_has_any_domains_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.side_effect = [False, True] # First permission false, second permission true
|
mock_has_permission.side_effect = [False, True] # First permission false, second permission true
|
||||||
|
|
||||||
|
@ -1410,14 +1410,14 @@ class TestUser(TestCase):
|
||||||
mock_has_permission.assert_any_call(self.portfolio, UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS)
|
mock_has_permission.assert_any_call(self.portfolio, UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS)
|
||||||
mock_has_permission.assert_any_call(self.portfolio, UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS)
|
mock_has_permission.assert_any_call(self.portfolio, UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS)
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
def test_has_view_all_domains_portfolio_permission(self, mock_has_permission):
|
def test_has_view_all_domains_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.return_value = True
|
mock_has_permission.return_value = True
|
||||||
|
|
||||||
self.assertTrue(self.user.has_view_all_domains_portfolio_permission(self.portfolio))
|
self.assertTrue(self.user.has_view_all_domains_portfolio_permission(self.portfolio))
|
||||||
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS)
|
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS)
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
@override_flag("organization_requests", active=True)
|
@override_flag("organization_requests", active=True)
|
||||||
def test_has_any_requests_portfolio_permission(self, mock_has_permission):
|
def test_has_any_requests_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.side_effect = [False, True] # First permission false, second permission true
|
mock_has_permission.side_effect = [False, True] # First permission false, second permission true
|
||||||
|
@ -1427,28 +1427,28 @@ class TestUser(TestCase):
|
||||||
mock_has_permission.assert_any_call(self.portfolio, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS)
|
mock_has_permission.assert_any_call(self.portfolio, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS)
|
||||||
mock_has_permission.assert_any_call(self.portfolio, UserPortfolioPermissionChoices.EDIT_REQUESTS)
|
mock_has_permission.assert_any_call(self.portfolio, UserPortfolioPermissionChoices.EDIT_REQUESTS)
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
def test_has_view_all_requests_portfolio_permission(self, mock_has_permission):
|
def test_has_view_all_requests_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.return_value = True
|
mock_has_permission.return_value = True
|
||||||
|
|
||||||
self.assertTrue(self.user.has_view_all_requests_portfolio_permission(self.portfolio))
|
self.assertTrue(self.user.has_view_all_requests_portfolio_permission(self.portfolio))
|
||||||
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS)
|
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS)
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
def test_has_edit_request_portfolio_permission(self, mock_has_permission):
|
def test_has_edit_request_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.return_value = True
|
mock_has_permission.return_value = True
|
||||||
|
|
||||||
self.assertTrue(self.user.has_edit_request_portfolio_permission(self.portfolio))
|
self.assertTrue(self.user.has_edit_request_portfolio_permission(self.portfolio))
|
||||||
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.EDIT_REQUESTS)
|
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.EDIT_REQUESTS)
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
def test_has_view_suborganization_portfolio_permission(self, mock_has_permission):
|
def test_has_view_suborganization_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.return_value = True
|
mock_has_permission.return_value = True
|
||||||
|
|
||||||
self.assertTrue(self.user.has_view_suborganization_portfolio_permission(self.portfolio))
|
self.assertTrue(self.user.has_view_suborganization_portfolio_permission(self.portfolio))
|
||||||
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.VIEW_SUBORGANIZATION)
|
mock_has_permission.assert_called_once_with(self.portfolio, UserPortfolioPermissionChoices.VIEW_SUBORGANIZATION)
|
||||||
|
|
||||||
@patch('registrar.models.User._has_portfolio_permission')
|
@patch("registrar.models.User._has_portfolio_permission")
|
||||||
def test_has_edit_suborganization_portfolio_permission(self, mock_has_permission):
|
def test_has_edit_suborganization_portfolio_permission(self, mock_has_permission):
|
||||||
mock_has_permission.return_value = True
|
mock_has_permission.return_value = True
|
||||||
|
|
||||||
|
|
|
@ -711,7 +711,7 @@ class TestPortfolio(WebTest):
|
||||||
requests_page = self.client.get(reverse("domain-requests"))
|
requests_page = self.client.get(reverse("domain-requests"))
|
||||||
|
|
||||||
# create new request btn
|
# create new request btn
|
||||||
self.assertContains(requests_page, 'Start a new domain request')
|
self.assertContains(requests_page, "Start a new domain request")
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
@override_flag("organization_feature", active=True)
|
@override_flag("organization_feature", active=True)
|
||||||
|
@ -720,7 +720,12 @@ class TestPortfolio(WebTest):
|
||||||
"""Test the nav contains a simple link to view requests
|
"""Test the nav contains a simple link to view requests
|
||||||
Also test for the existence of the Create a new request btn on the requests page"""
|
Also test for the existence of the Create a new request btn on the requests page"""
|
||||||
UserPortfolioPermission.objects.get_or_create(
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
user=self.user, portfolio=self.portfolio, roles=[UserPortfolioPermissionChoices.VIEW_PORTFOLIO, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS]
|
user=self.user,
|
||||||
|
portfolio=self.portfolio,
|
||||||
|
additional_permissions=[
|
||||||
|
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
||||||
|
],
|
||||||
)
|
)
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
# create and submit a domain request
|
# create and submit a domain request
|
||||||
|
@ -744,7 +749,7 @@ class TestPortfolio(WebTest):
|
||||||
requests_page = self.client.get(reverse("domain-requests"))
|
requests_page = self.client.get(reverse("domain-requests"))
|
||||||
|
|
||||||
# create new request btn
|
# create new request btn
|
||||||
self.assertNotContains(requests_page, 'Start a new domain request')
|
self.assertNotContains(requests_page, "Start a new domain request")
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
def test_portfolio_cache_updates_when_modified(self):
|
def test_portfolio_cache_updates_when_modified(self):
|
||||||
|
@ -752,7 +757,7 @@ class TestPortfolio(WebTest):
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
portfolio_roles = [UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
portfolio_roles = [UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
||||||
UserPortfolioPermission.objects.get_or_create(user=self.user, portfolio=self.portfolio, roles=portfolio_roles)
|
UserPortfolioPermission.objects.get_or_create(user=self.user, portfolio=self.portfolio, roles=portfolio_roles)
|
||||||
|
|
||||||
with override_flag("organization_feature", active=True):
|
with override_flag("organization_feature", active=True):
|
||||||
# Initial request to set the portfolio in session
|
# Initial request to set the portfolio in session
|
||||||
response = self.client.get(reverse("home"), follow=True)
|
response = self.client.get(reverse("home"), follow=True)
|
||||||
|
@ -760,14 +765,14 @@ class TestPortfolio(WebTest):
|
||||||
portfolio = self.client.session.get("portfolio")
|
portfolio = self.client.session.get("portfolio")
|
||||||
self.assertEqual(portfolio.organization_name, "Hotel California")
|
self.assertEqual(portfolio.organization_name, "Hotel California")
|
||||||
self.assertContains(response, "Hotel California")
|
self.assertContains(response, "Hotel California")
|
||||||
|
|
||||||
# Modify the portfolio
|
# Modify the portfolio
|
||||||
self.portfolio.organization_name = "Updated Hotel California"
|
self.portfolio.organization_name = "Updated Hotel California"
|
||||||
self.portfolio.save()
|
self.portfolio.save()
|
||||||
|
|
||||||
# Make another request
|
# Make another request
|
||||||
response = self.client.get(reverse("home"), follow=True)
|
response = self.client.get(reverse("home"), follow=True)
|
||||||
|
|
||||||
# Check if the updated portfolio name is in the response
|
# Check if the updated portfolio name is in the response
|
||||||
self.assertContains(response, "Updated Hotel California")
|
self.assertContains(response, "Updated Hotel California")
|
||||||
|
|
||||||
|
@ -781,14 +786,14 @@ class TestPortfolio(WebTest):
|
||||||
self.client.force_login(self.user)
|
self.client.force_login(self.user)
|
||||||
portfolio_roles = [UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
portfolio_roles = [UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
||||||
UserPortfolioPermission.objects.get_or_create(user=self.user, portfolio=self.portfolio, roles=portfolio_roles)
|
UserPortfolioPermission.objects.get_or_create(user=self.user, portfolio=self.portfolio, roles=portfolio_roles)
|
||||||
|
|
||||||
with override_flag("organization_feature", active=True):
|
with override_flag("organization_feature", active=True):
|
||||||
# Initial request to set the portfolio in session
|
# Initial request to set the portfolio in session
|
||||||
response = self.client.get(reverse("home"), follow=True)
|
response = self.client.get(reverse("home"), follow=True)
|
||||||
portfolio = self.client.session.get("portfolio")
|
portfolio = self.client.session.get("portfolio")
|
||||||
self.assertEqual(portfolio.organization_name, "Hotel California")
|
self.assertEqual(portfolio.organization_name, "Hotel California")
|
||||||
self.assertContains(response, "Hotel California")
|
self.assertContains(response, "Hotel California")
|
||||||
|
|
||||||
# Disable the organization_feature flag
|
# Disable the organization_feature flag
|
||||||
with override_flag("organization_feature", active=False):
|
with override_flag("organization_feature", active=False):
|
||||||
# Make another request
|
# Make another request
|
||||||
|
|
|
@ -18,7 +18,7 @@ from registrar.models import (
|
||||||
Website,
|
Website,
|
||||||
FederalAgency,
|
FederalAgency,
|
||||||
Portfolio,
|
Portfolio,
|
||||||
UserPortfolioPermission
|
UserPortfolioPermission,
|
||||||
)
|
)
|
||||||
from registrar.views.domain_request import DomainRequestWizard, Step
|
from registrar.views.domain_request import DomainRequestWizard, Step
|
||||||
|
|
||||||
|
@ -2933,9 +2933,7 @@ class DomainRequestTestDifferentStatuses(TestWithUser, WebTest):
|
||||||
"""Tests that the withdraw button on portfolio redirects to the portfolio domain requests page"""
|
"""Tests that the withdraw button on portfolio redirects to the portfolio domain requests page"""
|
||||||
portfolio, _ = Portfolio.objects.get_or_create(creator=self.user, organization_name="Test Portfolio")
|
portfolio, _ = Portfolio.objects.get_or_create(creator=self.user, organization_name="Test Portfolio")
|
||||||
UserPortfolioPermission.objects.get_or_create(
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
user=self.user,
|
user=self.user, portfolio=portfolio, roles=[UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
||||||
portfolio=portfolio,
|
|
||||||
roles=[UserPortfolioRoleChoices.ORGANIZATION_ADMIN]
|
|
||||||
)
|
)
|
||||||
domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.SUBMITTED, user=self.user)
|
domain_request = completed_domain_request(status=DomainRequest.DomainRequestStatus.SUBMITTED, user=self.user)
|
||||||
domain_request.save()
|
domain_request.save()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue