diff --git a/atst/domain/environments.py b/atst/domain/environments.py index b8da2282..82e96ec0 100644 --- a/atst/domain/environments.py +++ b/atst/domain/environments.py @@ -1,3 +1,4 @@ +from flask import current_app as app from sqlalchemy.orm.exc import NoResultFound from atst.database import db @@ -15,15 +16,14 @@ class Environments(object): @classmethod def create(cls, project, name): environment = Environment(project=project, name=name) - db.session.add(environment) - db.session.commit() + environment.cloud_id = app.csp.cloud.create_application(environment.name) return environment @classmethod def create_many(cls, project, names): environments = [] for name in names: - environment = Environment(project=project, name=name) + environment = Environments.create(project, name) environments.append(environment) db.session.add_all(environments) diff --git a/tests/domain/test_environments.py b/tests/domain/test_environments.py index 9f5e9aab..edd2f1c1 100644 --- a/tests/domain/test_environments.py +++ b/tests/domain/test_environments.py @@ -2,7 +2,14 @@ from atst.domain.environments import Environments from atst.domain.environment_roles import EnvironmentRoles from atst.domain.workspace_roles import WorkspaceRoles -from tests.factories import UserFactory, WorkspaceFactory +from tests.factories import ProjectFactory, UserFactory, WorkspaceFactory + + +def test_create_environments(): + project = ProjectFactory.create() + environments = Environments.create_many(project, ["Staging", "Production"]) + for env in environments: + assert env.cloud_id is not None def test_update_environment_roles():