mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-19 02:49:21 +02:00
JK on last commit -- more unit test fixes
This commit is contained in:
parent
35fec1ed89
commit
ada24a6864
1 changed files with 57 additions and 7 deletions
|
@ -1,6 +1,8 @@
|
||||||
|
import re
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from api.tests.common import less_console_noise_decorator
|
from api.tests.common import less_console_noise_decorator
|
||||||
from registrar.config import settings
|
from registrar.config import settings
|
||||||
|
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||||
from registrar.models import Portfolio, SeniorOfficial
|
from registrar.models import Portfolio, SeniorOfficial
|
||||||
from django_webtest import WebTest # type: ignore
|
from django_webtest import WebTest # type: ignore
|
||||||
from registrar.models import (
|
from registrar.models import (
|
||||||
|
@ -733,10 +735,17 @@ class TestPortfolio(WebTest):
|
||||||
# Verify that the user can access the members page
|
# Verify that the user can access the members page
|
||||||
# This will redirect the user to the members page.
|
# This will redirect the user to the members page.
|
||||||
response = self.app.get(reverse("members"))
|
response = self.app.get(reverse("members"))
|
||||||
|
|
||||||
|
# ---- Useful debugging stub to see what "assertContains" is finding
|
||||||
|
# pattern = r'Members'
|
||||||
|
# matches = re.findall(pattern, response.content.decode('utf-8'))
|
||||||
|
# for match in matches:
|
||||||
|
# TerminalHelper.colorful_logger(logger.info, TerminalColors.OKCYAN, f"{match}")
|
||||||
|
|
||||||
# Make sure the page loaded
|
# Make sure the page loaded
|
||||||
self.assertContains(response, "Members")
|
self.assertContains(response, "Members")
|
||||||
|
|
||||||
@less_console_noise_decorator
|
|
||||||
@override_flag("organization_feature", active=True)
|
@override_flag("organization_feature", active=True)
|
||||||
@override_flag("organization_members", active=True)
|
@override_flag("organization_members", active=True)
|
||||||
def test_can_manage_members(self):
|
def test_can_manage_members(self):
|
||||||
|
@ -755,6 +764,7 @@ class TestPortfolio(WebTest):
|
||||||
UserPortfolioPermissionChoices.EDIT_MEMBERS,
|
UserPortfolioPermissionChoices.EDIT_MEMBERS,
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
# Give user permissions to modify user objects in the DB
|
# Give user permissions to modify user objects in the DB
|
||||||
group, _ = UserGroup.objects.get_or_create(name="full_access_group")
|
group, _ = UserGroup.objects.get_or_create(name="full_access_group")
|
||||||
# Add the user to the group
|
# Add the user to the group
|
||||||
|
@ -766,9 +776,12 @@ class TestPortfolio(WebTest):
|
||||||
response = self.client.get(reverse("members"), follow=True)
|
response = self.client.get(reverse("members"), follow=True)
|
||||||
# Make sure the page loaded
|
# Make sure the page loaded
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
# Check that the manage settings appear in the DOM
|
|
||||||
self.assertContains(response, '<use xlink:href="/public/img/sprite.svg#settings"></use>')
|
# Verify that manage settings are sent in the dynamic HTML
|
||||||
self.assertContains(response, "Manage")
|
self.client.force_login(self.user)
|
||||||
|
response = self.client.get(reverse("get_portfolio_members_json"))
|
||||||
|
self.assertContains(response, '"action_label": "Manage"')
|
||||||
|
self.assertContains(response, '"svg_icon": "settings"')
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
@override_flag("organization_feature", active=True)
|
@override_flag("organization_feature", active=True)
|
||||||
|
@ -799,9 +812,46 @@ class TestPortfolio(WebTest):
|
||||||
response = self.client.get(reverse("members"), follow=True)
|
response = self.client.get(reverse("members"), follow=True)
|
||||||
# Make sure the page loaded
|
# Make sure the page loaded
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
# Check that the view-only settings appear in the DOM
|
|
||||||
self.assertContains(response, '<use xlink:href="/public/img/sprite.svg#visibility"></use>')
|
# Verify that view-only settings are sent in the dynamic HTML
|
||||||
self.assertContains(response, "View")
|
response = self.client.get(reverse("get_portfolio_members_json"))
|
||||||
|
self.assertContains(response, '"action_label": "View"')
|
||||||
|
self.assertContains(response, '"svg_icon": "visibility"')
|
||||||
|
|
||||||
|
|
||||||
|
@override_flag("organization_feature", active=True)
|
||||||
|
@override_flag("organization_members", active=True)
|
||||||
|
def test_members_admin_tag(self):
|
||||||
|
"""Test that user with proper permission is able to manage members"""
|
||||||
|
user = self.user
|
||||||
|
self.app.set_user(user.username)
|
||||||
|
|
||||||
|
# give user permissions to view AND manage members
|
||||||
|
UserPortfolioPermission.objects.get_or_create(
|
||||||
|
user=self.user,
|
||||||
|
portfolio=self.portfolio,
|
||||||
|
roles=[UserPortfolioRoleChoices.ORGANIZATION_ADMIN],
|
||||||
|
additional_permissions=[
|
||||||
|
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
||||||
|
UserPortfolioPermissionChoices.VIEW_MEMBERS,
|
||||||
|
UserPortfolioPermissionChoices.EDIT_MEMBERS,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Give user permissions to modify user objects in the DB
|
||||||
|
group, _ = UserGroup.objects.get_or_create(name="full_access_group")
|
||||||
|
# Add the user to the group
|
||||||
|
user.groups.set([group])
|
||||||
|
|
||||||
|
# Verify that the user can access the members page
|
||||||
|
# This will redirect the user to the members page.
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
response = self.client.get(reverse("members"), follow=True)
|
||||||
|
# Make sure the page loaded
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
# Check that the manage settings appear in the DOM
|
||||||
|
self.assertContains(response, '<th scope="row" role="rowheader" data-label="member email">')
|
||||||
|
|
||||||
|
|
||||||
@less_console_noise_decorator
|
@less_console_noise_decorator
|
||||||
@override_flag("organization_feature", active=True)
|
@override_flag("organization_feature", active=True)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue