atst/tests/domain/test_environments.py
2018-10-08 11:40:15 -04:00

83 lines
2.8 KiB
Python

from atst.domain.environments import Environments
from atst.domain.environment_roles import EnvironmentRoles
from tests.factories import UserFactory, WorkspaceFactory
def test_update_environment_roles():
owner = UserFactory.create()
developer = UserFactory.from_atat_role("developer")
workspace = WorkspaceFactory.create(
owner=owner,
members=[{"user": developer, "role_name": "developer"}],
projects=[
{
"name": "project1",
"environments": [
{
"name": "project1 dev",
"members": [{"user": developer, "role_name": "devlops"}],
},
{
"name": "project1 staging",
"members": [{"user": developer, "role_name": "developer"}],
},
{"name": "project1 prod"},
],
}
],
)
dev_env = workspace.projects[0].environments[0]
staging_env = workspace.projects[0].environments[1]
new_ids_and_roles = [
{"id": dev_env.id, "role": "billing_admin"},
{"id": staging_env.id, "role": "developer"},
]
workspace_user = workspace.members[0]
Environments.update_environment_role(owner, new_ids_and_roles, workspace_user)
new_dev_env_role = EnvironmentRoles.get(workspace_user.user.id, dev_env.id)
staging_env_role = EnvironmentRoles.get(workspace_user.user.id, staging_env.id)
assert new_dev_env_role.role == "billing_admin"
assert staging_env_role.role == "developer"
def test_get_scoped_environments(db):
developer = UserFactory.create()
workspace = WorkspaceFactory.create(
members=[{"user": developer, "role_name": "developer"}],
projects=[
{
"name": "project1",
"environments": [
{
"name": "project1 dev",
"members": [{"user": developer, "role_name": "developer"}],
},
{"name": "project1 staging"},
{"name": "project1 prod"},
],
},
{
"name": "project2",
"environments": [
{"name": "project2 dev"},
{
"name": "project2 staging",
"members": [{"user": developer, "role_name": "developer"}],
},
{"name": "project2 prod"},
],
},
],
)
project1_envs = Environments.for_user(developer, workspace.projects[0])
assert [env.name for env in project1_envs] == ["project1 dev"]
project2_envs = Environments.for_user(developer, workspace.projects[1])
assert [env.name for env in project2_envs] == ["project2 staging"]