Update tests
This commit is contained in:
parent
1759732d38
commit
526bcb1661
@ -9,22 +9,25 @@ from atst.utils.localization import translate
|
|||||||
|
|
||||||
|
|
||||||
class PermissionsForm(FlaskForm):
|
class PermissionsForm(FlaskForm):
|
||||||
perms_env_mgmt = SelectField(
|
|
||||||
translate("portfolios.applications.members.new.manage_envs"),
|
|
||||||
choices=[
|
|
||||||
("", "View only"),
|
|
||||||
(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS, "Edit access"),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
perms_team_mgmt = SelectField(
|
perms_team_mgmt = SelectField(
|
||||||
translate("portfolios.applications.members.new.manage_team"),
|
translate("portfolios.applications.members.new.manage_team"),
|
||||||
choices=[
|
choices=[
|
||||||
("", "View only"),
|
(PermissionSets.VIEW_APPLICATION, "View only"),
|
||||||
(PermissionSets.EDIT_APPLICATION_TEAM, "Edit access"),
|
(PermissionSets.EDIT_APPLICATION_TEAM, "Edit access"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
perms_env_mgmt = SelectField(
|
||||||
|
translate("portfolios.applications.members.new.manage_envs"),
|
||||||
|
choices=[
|
||||||
|
(PermissionSets.VIEW_APPLICATION, "View only"),
|
||||||
|
(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS, "Edit access"),
|
||||||
|
],
|
||||||
|
)
|
||||||
perms_del_env = SelectField(
|
perms_del_env = SelectField(
|
||||||
choices=[("", "No"), (PermissionSets.DELETE_APPLICATION_ENVIRONMENTS, "Yes")]
|
choices=[
|
||||||
|
("View only", "No"),
|
||||||
|
(PermissionSets.DELETE_APPLICATION_ENVIRONMENTS, "Yes"),
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -4,11 +4,11 @@ from flask import render_template, request as http_request, g, url_for, redirect
|
|||||||
from . import applications_bp
|
from . import applications_bp
|
||||||
from atst.domain.applications import Applications
|
from atst.domain.applications import Applications
|
||||||
from atst.domain.application_roles import ApplicationRoles
|
from atst.domain.application_roles import ApplicationRoles
|
||||||
|
from atst.domain.authz.decorator import user_can_access_decorator as user_can
|
||||||
from atst.domain.environments import Environments
|
from atst.domain.environments import Environments
|
||||||
from atst.domain.environment_roles import EnvironmentRoles
|
from atst.domain.environment_roles import EnvironmentRoles
|
||||||
from atst.domain.authz.decorator import user_can_access_decorator as user_can
|
|
||||||
from atst.domain.permission_sets import PermissionSets
|
|
||||||
from atst.domain.exceptions import AlreadyExistsError
|
from atst.domain.exceptions import AlreadyExistsError
|
||||||
|
from atst.domain.permission_sets import PermissionSets
|
||||||
from atst.forms.application_member import NewForm as NewMemberForm
|
from atst.forms.application_member import NewForm as NewMemberForm
|
||||||
from atst.forms.team import TeamForm
|
from atst.forms.team import TeamForm
|
||||||
from atst.models import Permissions
|
from atst.models import Permissions
|
||||||
@ -33,7 +33,6 @@ def team(application_id):
|
|||||||
team_data = []
|
team_data = []
|
||||||
for member in application.members:
|
for member in application.members:
|
||||||
user_id = member.user.id
|
user_id = member.user.id
|
||||||
# TODO: if no members, we get a server error
|
|
||||||
user_name = member.user.full_name
|
user_name = member.user.full_name
|
||||||
environment_users[user_id] = {
|
environment_users[user_id] = {
|
||||||
"permissions": {
|
"permissions": {
|
||||||
@ -82,12 +81,11 @@ def team(application_id):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
team_form = TeamForm(data={"members": team_data})
|
|
||||||
|
|
||||||
env_roles = [
|
env_roles = [
|
||||||
{"environment_id": e.id, "environment_name": e.name}
|
{"environment_id": e.id, "environment_name": e.name}
|
||||||
for e in application.environments
|
for e in application.environments
|
||||||
]
|
]
|
||||||
|
team_form = TeamForm(data={"members": team_data})
|
||||||
new_member_form = NewMemberForm(data={"environment_roles": env_roles})
|
new_member_form = NewMemberForm(data={"environment_roles": env_roles})
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
{% set environment_roles_form = member_form.environment_roles %}
|
{% set environment_roles_form = member_form.environment_roles %}
|
||||||
{% set permissions_form = member_form.permission_sets %}
|
{% set permissions_form = member_form.permission_sets %}
|
||||||
|
|
||||||
<form method='POST' id="team" action='{{ url_for("applications.team", application_id=application.id) }}' autocomplete="off" enctype="multipart/form-data">
|
<form method='POST' id="team" action='{{ url_for("applications.update_team", application_id=application.id) }}' autocomplete="off" enctype="multipart/form-data">
|
||||||
{{ team_form.csrf_token }}
|
{{ team_form.csrf_token }}
|
||||||
<toggler inline-template>
|
<toggler inline-template>
|
||||||
<li class="accordion-table__item">
|
<li class="accordion-table__item">
|
||||||
|
@ -33,3 +33,30 @@ def test_enabled_application_role():
|
|||||||
ApplicationRoles.enable(app_role)
|
ApplicationRoles.enable(app_role)
|
||||||
|
|
||||||
assert app_role.status == ApplicationRoleStatus.ACTIVE
|
assert app_role.status == ApplicationRoleStatus.ACTIVE
|
||||||
|
|
||||||
|
|
||||||
|
def test_get():
|
||||||
|
user = UserFactory.create()
|
||||||
|
application = ApplicationFactory.create()
|
||||||
|
app_role = ApplicationRoleFactory.create(user=user, application=application)
|
||||||
|
|
||||||
|
assert ApplicationRoles.get(user.id, application.id)
|
||||||
|
assert app_role.application == application
|
||||||
|
assert app_role.user == user
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_permission_sets():
|
||||||
|
user = UserFactory.create()
|
||||||
|
application = ApplicationFactory.create()
|
||||||
|
app_role = ApplicationRoleFactory.create(user=user, application=application)
|
||||||
|
|
||||||
|
view_app = [PermissionSets.get(PermissionSets.VIEW_APPLICATION)]
|
||||||
|
new_perms_names = [
|
||||||
|
PermissionSets.EDIT_APPLICATION_TEAM,
|
||||||
|
PermissionSets.DELETE_APPLICATION_ENVIRONMENTS,
|
||||||
|
]
|
||||||
|
new_perms = PermissionSets.get_many(new_perms_names)
|
||||||
|
# view application permission is included by default
|
||||||
|
assert app_role.permission_sets == view_app
|
||||||
|
assert ApplicationRoles.update_permission_sets(app_role, new_perms_names)
|
||||||
|
assert set(app_role.permission_sets) == set(new_perms + view_app)
|
||||||
|
@ -7,20 +7,25 @@ from atst.forms.team import *
|
|||||||
|
|
||||||
def test_permissions_form_permission_sets():
|
def test_permissions_form_permission_sets():
|
||||||
form_data = {
|
form_data = {
|
||||||
"perms_env_mgmt": "",
|
|
||||||
"perms_team_mgmt": PermissionSets.EDIT_APPLICATION_TEAM,
|
"perms_team_mgmt": PermissionSets.EDIT_APPLICATION_TEAM,
|
||||||
"perms_del_env": "",
|
"perms_env_mgmt": PermissionSets.VIEW_APPLICATION,
|
||||||
|
"perms_del_env": "View only",
|
||||||
}
|
}
|
||||||
form = PermissionsForm(data=form_data)
|
form = PermissionsForm(data=form_data)
|
||||||
|
|
||||||
assert form.validate()
|
assert form.validate()
|
||||||
assert form.data == [PermissionSets.EDIT_APPLICATION_TEAM]
|
assert form.data == [
|
||||||
|
PermissionSets.EDIT_APPLICATION_TEAM,
|
||||||
|
PermissionSets.VIEW_APPLICATION,
|
||||||
|
"View only",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def test_permissions_form_invalid():
|
def test_permissions_form_invalid():
|
||||||
form_data = {
|
form_data = {
|
||||||
"perms_env_mgmt": "not a real choice",
|
|
||||||
"perms_team_mgmt": PermissionSets.EDIT_APPLICATION_TEAM,
|
"perms_team_mgmt": PermissionSets.EDIT_APPLICATION_TEAM,
|
||||||
"perms_del_env": "",
|
"perms_env_mgmt": "not a real choice",
|
||||||
|
"perms_del_env": "View only",
|
||||||
}
|
}
|
||||||
form = PermissionsForm(data=form_data)
|
form = PermissionsForm(data=form_data)
|
||||||
assert not form.validate()
|
assert not form.validate()
|
||||||
|
@ -10,7 +10,6 @@ def test_application_team(client, user_session):
|
|||||||
user_session(portfolio.owner)
|
user_session(portfolio.owner)
|
||||||
|
|
||||||
response = client.get(url_for("applications.team", application_id=application.id))
|
response = client.get(url_for("applications.team", application_id=application.id))
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user