provision portfolio state machine

This commit is contained in:
Philip Kalinsky
2020-01-08 11:01:55 -05:00
committed by tomdds
parent ad82706bd4
commit 69bd2f43a5
22 changed files with 1122 additions and 224 deletions

View File

@@ -1,5 +1,4 @@
import pytest
import random
from uuid import uuid4
from atst.domain.exceptions import NotFoundError, UnauthorizedError
@@ -15,6 +14,7 @@ from atst.domain.environments import Environments
from atst.domain.permission_sets import PermissionSets, PORTFOLIO_PERMISSION_SETS
from atst.models.application_role import Status as ApplicationRoleStatus
from atst.models.portfolio_role import Status as PortfolioRoleStatus
from atst.models import FSMStates
from tests.factories import (
ApplicationFactory,
@@ -22,6 +22,7 @@ from tests.factories import (
UserFactory,
PortfolioRoleFactory,
PortfolioFactory,
PortfolioStateMachineFactory,
get_all_portfolio_permission_sets,
)
@@ -98,7 +99,7 @@ def test_scoped_portfolio_returns_all_applications_for_portfolio_admin(
Applications.create(
portfolio.owner,
portfolio,
"My Application %s" % (random.randrange(1, 1000)),
"My Application",
"My application",
["dev", "staging", "prod"],
)
@@ -121,7 +122,7 @@ def test_scoped_portfolio_returns_all_applications_for_portfolio_owner(
Applications.create(
portfolio.owner,
portfolio,
"My Application %s" % (random.randrange(1, 1000)),
"My Application",
"My application",
["dev", "staging", "prod"],
)
@@ -254,3 +255,17 @@ def test_for_user_does_not_include_deleted_application_roles():
status=ApplicationRoleStatus.ACTIVE, user=user2, application=app, deleted=True
)
assert len(Portfolios.for_user(user2)) == 0
def test_create_state_machine(portfolio):
fsm = Portfolios.create_state_machine(portfolio)
assert fsm
def test_get_portfolios_pending_provisioning(session):
for x in range(5):
portfolio = PortfolioFactory.create()
sm = PortfolioStateMachineFactory.create(portfolio=portfolio)
if x == 2: sm.state = FSMStates.COMPLETED
assert len(Portfolios.get_portfolios_pending_provisioning()) == 4