From 82e048387e9df374329eb3b02393b573691d331c Mon Sep 17 00:00:00 2001 From: dandds Date: Wed, 5 Jun 2019 09:34:55 -0400 Subject: [PATCH] Filter out deleted application environment roles --- atst/models/application_role.py | 5 +++++ atst/models/environment_role.py | 2 +- tests/models/test_application_role.py | 12 ++++++++---- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/atst/models/application_role.py b/atst/models/application_role.py index 9bd99699..9bcb0f6e 100644 --- a/atst/models/application_role.py +++ b/atst/models/application_role.py @@ -51,6 +51,11 @@ class ApplicationRole( "PermissionSet", secondary=application_roles_permission_sets ) + environment_roles = relationship( + "EnvironmentRole", + primaryjoin="and_(EnvironmentRole.application_role_id==ApplicationRole.id, EnvironmentRole.deleted==False)", + ) + @property def user_name(self): if self.user: diff --git a/atst/models/environment_role.py b/atst/models/environment_role.py index eaa7052b..371072f3 100644 --- a/atst/models/environment_role.py +++ b/atst/models/environment_role.py @@ -29,7 +29,7 @@ class EnvironmentRole( application_role_id = Column( UUID(as_uuid=True), ForeignKey("application_roles.id"), nullable=False ) - application_role = relationship("ApplicationRole", backref="environment_roles") + application_role = relationship("ApplicationRole") def __repr__(self): return "".format( diff --git a/tests/models/test_application_role.py b/tests/models/test_application_role.py index 35bb81c2..618d983e 100644 --- a/tests/models/test_application_role.py +++ b/tests/models/test_application_role.py @@ -42,11 +42,15 @@ def test_has_application_role_history(session): def test_environment_roles(): application = ApplicationFactory.create() - environment = EnvironmentFactory.create(application=application) + environment1 = EnvironmentFactory.create(application=application) + environment2 = EnvironmentFactory.create(application=application) user = UserFactory.create() application_role = ApplicationRoleFactory.create(application=application, user=user) - environment_role = EnvironmentRoleFactory.create( - environment=environment, application_role=application_role + environment_role1 = EnvironmentRoleFactory.create( + environment=environment1, application_role=application_role + ) + EnvironmentRoleFactory.create( + environment=environment2, application_role=application_role, deleted=True ) - assert application_role.environment_roles == [environment_role] + assert application_role.environment_roles == [environment_role1]