Update relationship between Environment and EnvironmentRole so only environment roles that are not deleted are included
This commit is contained in:
parent
17149efa09
commit
e5f83d2456
@ -32,6 +32,12 @@ class Environment(
|
|||||||
|
|
||||||
job_failures = relationship("EnvironmentJobFailure")
|
job_failures = relationship("EnvironmentJobFailure")
|
||||||
|
|
||||||
|
roles = relationship(
|
||||||
|
"EnvironmentRole",
|
||||||
|
back_populates="environment",
|
||||||
|
primaryjoin="and_(EnvironmentRole.environment_id == Environment.id, EnvironmentRole.deleted == False)",
|
||||||
|
)
|
||||||
|
|
||||||
class ProvisioningStatus(Enum):
|
class ProvisioningStatus(Enum):
|
||||||
PENDING = "pending"
|
PENDING = "pending"
|
||||||
COMPLETED = "completed"
|
COMPLETED = "completed"
|
||||||
|
@ -24,7 +24,7 @@ class EnvironmentRole(
|
|||||||
environment_id = Column(
|
environment_id = Column(
|
||||||
UUID(as_uuid=True), ForeignKey("environments.id"), nullable=False
|
UUID(as_uuid=True), ForeignKey("environments.id"), nullable=False
|
||||||
)
|
)
|
||||||
environment = relationship("Environment", backref="roles")
|
environment = relationship("Environment")
|
||||||
|
|
||||||
role = Column(String())
|
role = Column(String())
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ import pytest
|
|||||||
from atst.models import AuditEvent
|
from atst.models import AuditEvent
|
||||||
from atst.models.environment_role import CSPRole
|
from atst.models.environment_role import CSPRole
|
||||||
from atst.domain.applications import Applications
|
from atst.domain.applications import Applications
|
||||||
|
from atst.domain.environment_roles import EnvironmentRoles
|
||||||
|
|
||||||
from tests.factories import *
|
from tests.factories import *
|
||||||
|
|
||||||
@ -70,3 +71,19 @@ def test_audit_event_for_environment_deletion(session):
|
|||||||
def test_environment_provisioning_status(env_data, expected_status):
|
def test_environment_provisioning_status(env_data, expected_status):
|
||||||
environment = EnvironmentFactory.create(**env_data)
|
environment = EnvironmentFactory.create(**env_data)
|
||||||
assert environment.provisioning_status == expected_status
|
assert environment.provisioning_status == expected_status
|
||||||
|
|
||||||
|
|
||||||
|
def test_environment_roles_do_not_include_deleted():
|
||||||
|
member_list = [
|
||||||
|
{"role_name": CSPRole.BASIC_ACCESS.value},
|
||||||
|
{"role_name": CSPRole.BASIC_ACCESS.value},
|
||||||
|
{"role_name": CSPRole.BASIC_ACCESS.value},
|
||||||
|
]
|
||||||
|
env = EnvironmentFactory.create(members=member_list)
|
||||||
|
role_1 = env.roles[0]
|
||||||
|
role_2 = env.roles[1]
|
||||||
|
|
||||||
|
EnvironmentRoles.delete(role_1.application_role_id, env.id)
|
||||||
|
EnvironmentRoles.disable(role_2.id)
|
||||||
|
|
||||||
|
assert len(env.roles) == 2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user