ApplicationRoles seed and domain
This commit is contained in:
parent
532529eb6e
commit
50a532ddbb
15
atst/domain/application_roles.py
Normal file
15
atst/domain/application_roles.py
Normal file
@ -0,0 +1,15 @@
|
||||
from atst.database import db
|
||||
from atst.models.application_role import ApplicationRole
|
||||
|
||||
|
||||
class ApplicationRoles(object):
|
||||
@classmethod
|
||||
def create(cls, user, application, permission_sets):
|
||||
application_role = ApplicationRole(user=user, application_id=application.id)
|
||||
|
||||
application_role.permission_sets = permission_sets
|
||||
|
||||
db.session.add(application_role)
|
||||
db.session.commit()
|
||||
|
||||
return application_role
|
@ -13,6 +13,7 @@ from atst.domain.users import Users
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
from atst.domain.application_roles import ApplicationRoles
|
||||
from atst.models.invitation import Status as InvitationStatus
|
||||
from atst.domain.exceptions import AlreadyExistsError
|
||||
from tests.factories import (
|
||||
@ -27,6 +28,7 @@ from atst.routes.dev import _DEV_USERS as DEV_USERS
|
||||
from atst.domain.csp.reports import MockReportingProvider
|
||||
from atst.models.application import Application
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
|
||||
|
||||
PORTFOLIO_USERS = [
|
||||
@ -115,14 +117,25 @@ def create_task_order(portfolio, start, end, clin_01=None, clin_03=None):
|
||||
|
||||
|
||||
def add_applications_to_portfolio(portfolio, applications):
|
||||
application_permission_sets = PermissionSets.get_many(
|
||||
[PermissionSets.EDIT_APPLICATION_TEAM]
|
||||
)
|
||||
|
||||
for application in applications:
|
||||
Applications.create(
|
||||
application = Applications.create(
|
||||
portfolio=portfolio,
|
||||
name=application["name"],
|
||||
description=application["description"],
|
||||
environment_names=application["environments"],
|
||||
)
|
||||
|
||||
for user in get_users():
|
||||
ApplicationRoles.create(
|
||||
user=user,
|
||||
application=application,
|
||||
permission_sets=application_permission_sets,
|
||||
)
|
||||
|
||||
|
||||
def create_demo_portfolio(name, data):
|
||||
try:
|
||||
|
18
tests/domain/test_application_roles.py
Normal file
18
tests/domain/test_application_roles.py
Normal file
@ -0,0 +1,18 @@
|
||||
from atst.domain.application_roles import ApplicationRoles
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from tests.factories import UserFactory, ApplicationFactory
|
||||
|
||||
|
||||
def test_create_application_role():
|
||||
application = ApplicationFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
permission_sets = PermissionSets.get_many([PermissionSets.EDIT_APPLICATION_TEAM])
|
||||
|
||||
application_role = ApplicationRoles.create(
|
||||
application=application, user=user, permission_sets=permission_sets
|
||||
)
|
||||
|
||||
assert application_role.permission_sets == permission_sets
|
||||
assert application_role.application == application
|
||||
assert application_role.user == user
|
Loading…
x
Reference in New Issue
Block a user