Merge pull request #1164 from dod-ccpo/env-members-bugfix

Environment bugfixes
This commit is contained in:
leigh-mil 2019-11-08 13:23:03 -05:00 committed by GitHub
commit 3d92ac4840
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 2 deletions

View File

@ -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"

View File

@ -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())

View File

@ -76,7 +76,7 @@
<li class="accordion-table__item-toggle-content__expanded"> <li class="accordion-table__item-toggle-content__expanded">
<form action="{{ url_for('applications.update_environment', environment_id=env['id']) }}" method="post" v-on:submit="handleSubmit"> <form action="{{ url_for('applications.update_environment', environment_id=env['id']) }}" method="post" v-on:submit="handleSubmit">
{{ edit_form.csrf_token }} {{ edit_form.csrf_token }}
{{ TextInput(edit_form.name, validation='requiredField') }} {{ TextInput(edit_form.name, validation='requiredField', optional=False) }}
{{ {{
SaveButton( SaveButton(
text=("common.save" | translate) text=("common.save" | translate)

View File

@ -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