Add migration for enforcing uniqueness of an application name within a portfolio and update create/update Applicaiton domain methods.

This commit is contained in:
leigh-mil
2019-12-13 14:49:39 -05:00
parent 483b00a947
commit 22dd5d7b85
7 changed files with 87 additions and 18 deletions

View File

@@ -5,7 +5,7 @@ from atst.models import CSPRole, ApplicationRoleStatus
from atst.domain.application_roles import ApplicationRoles
from atst.domain.applications import Applications
from atst.domain.environment_roles import EnvironmentRoles
from atst.domain.exceptions import NotFoundError
from atst.domain.exceptions import AlreadyExistsError, NotFoundError
from atst.domain.permission_sets import PermissionSets
from tests.factories import (
@@ -177,3 +177,22 @@ def test_invite_to_nonexistent_environment():
{"environment_id": uuid4(), "role": CSPRole.BASIC_ACCESS.value},
],
)
def test_create_does_not_duplicate_names_within_portfolio():
portfolio = PortfolioFactory.create()
name = "An Awesome Application"
assert Applications.create(portfolio.owner, portfolio, name, "")
with pytest.raises(AlreadyExistsError):
Applications.create(portfolio.owner, portfolio, name, "")
def test_update_does_not_duplicate_names_within_portfolio():
portfolio = PortfolioFactory.create()
name = "An Awesome Application"
application = ApplicationFactory.create(portfolio=portfolio, name=name)
dupe_application = ApplicationFactory.create(portfolio=portfolio)
with pytest.raises(AlreadyExistsError):
Applications.update(dupe_application, {"name": name})