Merge pull request #1192 from dod-ccpo/app-member-status-labels

Status labels on app members table
This commit is contained in:
leigh-mil
2019-11-22 08:23:26 -05:00
committed by GitHub
10 changed files with 100 additions and 21 deletions

View File

@@ -233,6 +233,16 @@ class ApplicationRoleFactory(Base):
status = ApplicationRoleStatus.PENDING
permission_sets = factory.LazyFunction(base_application_permission_sets)
@classmethod
def _create(cls, model_class, *args, **kwargs):
with_invite = kwargs.pop("invite", True)
app_role = super()._create(model_class, *args, **kwargs)
if with_invite:
ApplicationInvitationFactory.create(role=app_role)
return app_role
class EnvironmentRoleFactory(Base):
class Meta:
@@ -259,7 +269,7 @@ class ApplicationInvitationFactory(Base):
email = factory.Faker("email")
status = InvitationStatus.PENDING
expiration_time = PortfolioInvitations.current_expiration_time()
role = factory.SubFactory(ApplicationRoleFactory)
role = factory.SubFactory(ApplicationRoleFactory, invite=False)
class AttachmentFactory(Base):

View File

@@ -58,3 +58,21 @@ def test_environment_roles():
)
assert not EnvironmentRoles.get_by_user_and_environment(user.id, environment2.id)
def test_display_status():
yesterday = datetime.date.today() - datetime.timedelta(days=1)
expired_invite = ApplicationInvitationFactory.create(expiration_time=yesterday)
assert expired_invite.role.display_status == "invite_expired"
app_role_pending = ApplicationRoleFactory.create()
invite = ApplicationInvitationFactory.create(
role=app_role_pending, user=app_role_pending.user
)
assert app_role_pending.display_status == "invite_pending"
app_role_active = ApplicationRoleFactory.create(status=ApplicationRoleStatus.ACTIVE)
assert app_role_active.display_status == None
env_role_pending = EnvironmentRoleFactory.create(application_role=app_role_active)
assert env_role_pending.application_role.display_status == "changes_pending"

View File

@@ -10,10 +10,11 @@ from tests.factories import *
from atst.domain.applications import Applications
from atst.domain.application_roles import ApplicationRoles
from atst.domain.environment_roles import EnvironmentRoles
from atst.domain.invitations import ApplicationInvitations
from atst.domain.common import Paginator
from atst.domain.permission_sets import PermissionSets
from atst.models.application_role import Status as ApplicationRoleStatus
from atst.models.environment_role import CSPRole
from atst.models.environment_role import CSPRole, EnvironmentRole
from atst.models.permissions import Permissions
from atst.forms.application import EditEnvironmentForm
from atst.forms.application_member import UpdateMemberForm
@@ -114,7 +115,6 @@ def test_edit_application_environments_obj(app, client, user_session):
application_role=app_role1, environment=env, role=CSPRole.BASIC_ACCESS.value
)
app_role2 = ApplicationRoleFactory.create(application=application, user=None)
invite = ApplicationInvitationFactory.create(role=app_role2)
env_role2 = EnvironmentRoleFactory.create(
application_role=app_role2, environment=env, role=CSPRole.NETWORK_ADMIN.value
)
@@ -165,7 +165,7 @@ def test_get_members_data(app, client, user_session):
"name": "testing",
"members": [{"user": user, "role_name": CSPRole.BASIC_ACCESS.value}],
}
]
],
)
environment = application.environments[0]
app_role = ApplicationRoles.get(user_id=user.id, application_id=application.id)