Add and list environment members
This commit is contained in:
parent
e5a0d69844
commit
3edbfa3129
@ -1,5 +1,6 @@
|
||||
from atst.database import db
|
||||
from atst.models.environment import Environment
|
||||
from atst.models.environment_role import EnvironmentRole, CSPRole
|
||||
|
||||
|
||||
class Environments(object):
|
||||
@ -16,3 +17,13 @@ class Environments(object):
|
||||
environment = Environment(project=project, name=name)
|
||||
db.session.add(environment)
|
||||
db.session.commit()
|
||||
|
||||
@classmethod
|
||||
def add_member(cls, user, environment, member):
|
||||
environment_user = EnvironmentRole(
|
||||
user=member, environment=environment, role=CSPRole.NONSENSE_ROLE.value
|
||||
)
|
||||
db.session.add(environment_user)
|
||||
db.session.commit()
|
||||
|
||||
return environment
|
||||
|
@ -14,3 +14,7 @@ class Environment(Base, TimestampsMixin):
|
||||
|
||||
project_id = Column(ForeignKey("projects.id"))
|
||||
project = relationship("Project")
|
||||
|
||||
@property
|
||||
def users(self):
|
||||
return [r.user for r in self.roles]
|
||||
|
16
tests/models/test_environments.py
Normal file
16
tests/models/test_environments.py
Normal file
@ -0,0 +1,16 @@
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.workspaces import Workspaces
|
||||
from atst.domain.projects import Projects
|
||||
from tests.factories import RequestFactory, UserFactory
|
||||
|
||||
|
||||
def test_add_user_to_environment():
|
||||
owner = UserFactory.create()
|
||||
developer = UserFactory.from_atat_role("developer")
|
||||
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
project = Projects.create(workspace, "my test project", "It's mine.", ["dev", "staging", "prod"])
|
||||
dev_environment = project.environments[0]
|
||||
|
||||
dev_environment = Environments.add_member(owner, dev_environment, developer)
|
||||
assert developer in dev_environment.users
|
Loading…
x
Reference in New Issue
Block a user