Fix unrelated test failure

This commit is contained in:
zandercymatics 2025-03-12 15:44:57 -06:00
parent 1fdc33cd6b
commit beb4e722b3
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
3 changed files with 19 additions and 15 deletions

View file

@ -460,14 +460,14 @@ class PortfolioNewMemberForm(BasePortfolioMemberForm):
if hasattr(e, "code"): if hasattr(e, "code"):
field = "email" if "email" in self.fields else None field = "email" if "email" in self.fields else None
if e.code == "has_existing_permissions": if e.code == "has_existing_permissions":
existing_permissions, existing_invitations = ( existing_permissions, existing_invitations = get_portfolio_invitation_associations(self.instance)
get_portfolio_invitation_associations(self.instance)
)
same_portfolio_for_permissions = existing_permissions.exclude(portfolio=self.instance.portfolio) same_portfolio_for_permissions = existing_permissions.exclude(portfolio=self.instance.portfolio)
same_portfolio_for_invitations = existing_invitations.exclude(portfolio=self.instance.portfolio) same_portfolio_for_invitations = existing_invitations.exclude(portfolio=self.instance.portfolio)
if same_portfolio_for_permissions.exists() or same_portfolio_for_invitations.exists(): if same_portfolio_for_permissions.exists() or same_portfolio_for_invitations.exists():
self.add_error(field, f"{self.instance.email} is already a member of another .gov organization.") self.add_error(
field, f"{self.instance.email} is already a member of another .gov organization."
)
override_error = True override_error = True
elif e.code == "has_existing_invitations": elif e.code == "has_existing_invitations":
self.add_error( self.add_error(

View file

@ -286,8 +286,8 @@ def validate_user_portfolio_permission(user_portfolio_permission):
# == Validate the multiple_porfolios flag. == # # == Validate the multiple_porfolios flag. == #
if not flag_is_active_for_user(user_portfolio_permission.user, "multiple_portfolios"): if not flag_is_active_for_user(user_portfolio_permission.user, "multiple_portfolios"):
existing_permissions, existing_invitations = ( existing_permissions, existing_invitations = get_user_portfolio_permission_associations(
get_user_portfolio_permission_associations(user_portfolio_permission) user_portfolio_permission
) )
if existing_permissions.exists(): if existing_permissions.exists():
raise ValidationError( raise ValidationError(
@ -303,6 +303,7 @@ def validate_user_portfolio_permission(user_portfolio_permission):
code="has_existing_invitations", code="has_existing_invitations",
) )
def get_user_portfolio_permission_associations(user_portfolio_permission): def get_user_portfolio_permission_associations(user_portfolio_permission):
""" """
Retrieves the associations for a user portfolio invitation. Retrieves the associations for a user portfolio invitation.
@ -320,7 +321,9 @@ def get_user_portfolio_permission_associations(user_portfolio_permission):
existing_permissions = UserPortfolioPermission.objects.exclude(id=user_portfolio_permission.id).filter( existing_permissions = UserPortfolioPermission.objects.exclude(id=user_portfolio_permission.id).filter(
user=user_portfolio_permission.user user=user_portfolio_permission.user
) )
existing_invitations = PortfolioInvitation.objects.filter(email__iexact=user_portfolio_permission.user.email).exclude( existing_invitations = PortfolioInvitation.objects.filter(
email__iexact=user_portfolio_permission.user.email
).exclude(
Q(portfolio=user_portfolio_permission.portfolio) Q(portfolio=user_portfolio_permission.portfolio)
| Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED) | Q(status=PortfolioInvitation.PortfolioInvitationStatus.RETRIEVED)
) )
@ -375,9 +378,7 @@ def validate_portfolio_invitation(portfolio_invitation):
# If user returns None, then we check for global assignment of multiple_portfolios. # If user returns None, then we check for global assignment of multiple_portfolios.
# Otherwise we just check on the user. # Otherwise we just check on the user.
if not flag_is_active_for_user(user, "multiple_portfolios"): if not flag_is_active_for_user(user, "multiple_portfolios"):
existing_permissions, existing_invitations = ( existing_permissions, existing_invitations = get_portfolio_invitation_associations(portfolio_invitation)
get_portfolio_invitation_associations(portfolio_invitation)
)
if existing_permissions.exists(): if existing_permissions.exists():
raise ValidationError( raise ValidationError(
"This user is already assigned to a portfolio. " "This user is already assigned to a portfolio. "
@ -392,6 +393,7 @@ def validate_portfolio_invitation(portfolio_invitation):
code="has_existing_invitations", code="has_existing_invitations",
) )
def get_portfolio_invitation_associations(portfolio_invitation): def get_portfolio_invitation_associations(portfolio_invitation):
""" """
Retrieves the associations for a portfolio invitation. Retrieves the associations for a portfolio invitation.

View file

@ -3930,17 +3930,19 @@ class TestPortfolioInviteNewMemberView(MockEppLib, WebTest):
response = self.client.post( response = self.client.post(
reverse("new-member"), reverse("new-member"),
{ {
"role": UserPortfolioRoleChoices.ORGANIZATION_MEMBER.value, "role": UserPortfolioRoleChoices.ORGANIZATION_ADMIN,
"domain_request_permission_member": UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value,
"email": self.user.email, "email": self.user.email,
}, },
follow=True
) )
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
with open("debug_response.html", "w") as f:
f.write(response.content.decode('utf-8'))
# Verify messages # Verify messages
self.assertContains( self.assertContains(
response, response,
f"{self.user.email} is already a member of another .gov organization.", "User is already a member of this portfolio.",
) )
# Validate Database has not changed # Validate Database has not changed