formatting for code readability

This commit is contained in:
David Kennedy 2024-10-17 15:55:58 -04:00
parent 3d86bef4f2
commit 9724477ab3
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
3 changed files with 24 additions and 36 deletions

View file

@ -36,7 +36,7 @@ class UserPortfolioPermissionChoices(models.TextChoices):
@classmethod
def get_user_portfolio_permission_label(cls, user_portfolio_permission):
return cls(user_portfolio_permission).label if user_portfolio_permission else None
@classmethod
def to_dict(cls):
return {key: value.value for key, value in cls.__members__.items()}

View file

@ -137,12 +137,14 @@ class GetPortfolioMembersJsonTest(MockEppLib, WebTest):
# Convert each member's roles list to a frozenset
actual_roles = {role for member in data["members"] for role in member["roles"]}
self.assertEqual(expected_roles, actual_roles)
expected_additional_permissions = {
UserPortfolioPermissionChoices.VIEW_MEMBERS,
UserPortfolioPermissionChoices.EDIT_MEMBERS,
}
actual_additional_permissions = {permission for member in data["members"] for permission in member["permissions"]}
actual_additional_permissions = {
permission for member in data["members"] for permission in member["permissions"]
}
self.assertTrue(expected_additional_permissions.issubset(actual_additional_permissions))
def test_get_portfolio_invited_json_authenticated(self):
@ -172,9 +174,7 @@ class GetPortfolioMembersJsonTest(MockEppLib, WebTest):
self.assertEqual(len(data["members"]), 1)
# Check member fields
expected_emails = {
self.email6
}
expected_emails = {self.email6}
actual_emails = {member["email"] for member in data["members"]}
self.assertEqual(expected_emails, actual_emails)
@ -184,12 +184,14 @@ class GetPortfolioMembersJsonTest(MockEppLib, WebTest):
# Convert each member's roles list to a frozenset
actual_roles = {role for member in data["members"] for role in member["roles"]}
self.assertEqual(expected_roles, actual_roles)
expected_additional_permissions = {
UserPortfolioPermissionChoices.VIEW_MEMBERS,
UserPortfolioPermissionChoices.EDIT_MEMBERS,
}
actual_additional_permissions = {permission for member in data["members"] for permission in member["permissions"]}
actual_additional_permissions = {
permission for member in data["members"] for permission in member["permissions"]
}
self.assertTrue(expected_additional_permissions.issubset(actual_additional_permissions))
def test_get_portfolio_members_json_with_domains(self):
@ -241,11 +243,7 @@ class GetPortfolioMembersJsonTest(MockEppLib, WebTest):
data = response.json
# Check if the domain appears in the response JSON
domain_names = [
domain_name
for member in data["members"]
for domain_name in member.get("domain_names", [])
]
domain_names = [domain_name for member in data["members"] for domain_name in member.get("domain_names", [])]
self.assertIn("somedomain1.com", domain_names)
def test_get_portfolio_invited_json_with_domains(self):
@ -281,11 +279,7 @@ class GetPortfolioMembersJsonTest(MockEppLib, WebTest):
data = response.json
# Check if the domain appears in the response JSON
domain_names = [
domain_name
for member in data["members"]
for domain_name in member.get("domain_names", [])
]
domain_names = [domain_name for member in data["members"] for domain_name in member.get("domain_names", [])]
self.assertIn("somedomain1.com", domain_names)
def test_pagination(self):

View file

@ -10,7 +10,6 @@ from django.db.models.functions import Cast
from registrar.models.domain_invitation import DomainInvitation
from registrar.models.portfolio_invitation import PortfolioInvitation
from registrar.models.user_domain_role import UserDomainRole
from registrar.models.user_portfolio_permission import UserPortfolioPermission
from registrar.models.utility.portfolio_helper import UserPortfolioPermissionChoices, UserPortfolioRoleChoices
@ -88,10 +87,10 @@ def initial_permissions_search(portfolio):
Value(":"),
F("user__permissions__domain__name"),
# specify the output_field to ensure union has same column types
output_field=CharField()
output_field=CharField(),
),
distinct=True,
filter=Q(user__permissions__domain__isnull=False)
filter=Q(user__permissions__domain__isnull=False),
),
source=Value("permission", output_field=CharField()),
)
@ -114,16 +113,8 @@ def initial_permissions_search(portfolio):
def initial_invitations_search(portfolio):
"""Perform initial invitations search and get related DomainInvitation data based on the email."""
# Get DomainInvitation query for matching email
domain_invitations = DomainInvitation.objects.filter(
email=OuterRef('email'),
domain__isnull=False
).annotate(
domain_info=Concat(
F('domain__id'),
Value(':'),
F('domain__name'),
output_field=CharField()
)
domain_invitations = DomainInvitation.objects.filter(email=OuterRef("email"), domain__isnull=False).annotate(
domain_info=Concat(F("domain__id"), Value(":"), F("domain__name"), output_field=CharField())
)
invitations = PortfolioInvitation.objects.filter(portfolio=portfolio)
invitations = invitations.annotate(
@ -135,10 +126,10 @@ def initial_invitations_search(portfolio):
# ArrayAgg for multiple domain_invitations matched by email, filtered to exclude nulls
domain_info=Coalesce( # Use Coalesce to return an empty list if no domain invitations exist
ArrayAgg(
Subquery(domain_invitations.values('domain_info')),
Subquery(domain_invitations.values("domain_info")),
distinct=True,
),
Value([], output_field=ArrayField(CharField())) # Ensure we return an empty list
Value([], output_field=ArrayField(CharField())), # Ensure we return an empty list
),
source=Value("invitation", output_field=CharField()),
).values(
@ -201,13 +192,16 @@ def serialize_members(request, portfolio, item, user):
"email": item.get("email_display", ""),
"member_display": item.get("member_display", ""),
"roles": (item.get("roles") or []),
"permissions": UserPortfolioPermission.get_portfolio_permissions(item.get("roles"), item.get("additional_permissions")),
"permissions": UserPortfolioPermission.get_portfolio_permissions(
item.get("roles"), item.get("additional_permissions")
),
"domain_names": [
domain_info.split(":")[1] for domain_info in (item.get("domain_info") or [])
domain_info.split(":")[1]
for domain_info in (item.get("domain_info") or [])
if domain_info is not None # Prevent splitting None
],
"domain_urls": [
reverse("domain", kwargs={"pk": domain_info.split(":")[0]})
reverse("domain", kwargs={"pk": domain_info.split(":")[0]})
for domain_info in (item.get("domain_info") or [])
if domain_info is not None # Prevent splitting None
],