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.database import db
|
||||||
from atst.models.environment import Environment
|
from atst.models.environment import Environment
|
||||||
|
from atst.models.environment_role import EnvironmentRole, CSPRole
|
||||||
|
|
||||||
|
|
||||||
class Environments(object):
|
class Environments(object):
|
||||||
@ -16,3 +17,13 @@ class Environments(object):
|
|||||||
environment = Environment(project=project, name=name)
|
environment = Environment(project=project, name=name)
|
||||||
db.session.add(environment)
|
db.session.add(environment)
|
||||||
db.session.commit()
|
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_id = Column(ForeignKey("projects.id"))
|
||||||
project = relationship("Project")
|
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