Update / create new tests for application creation

This commit is contained in:
graham-dds
2019-09-23 14:30:19 -04:00
parent 66f606d951
commit a96c2b3cdd
3 changed files with 185 additions and 20 deletions

View File

@@ -44,7 +44,7 @@ def test_user_with_permission_has_add_application_link(client, user_session):
url_for("applications.portfolio_applications", portfolio_id=portfolio.id)
)
assert (
url_for("applications.create", portfolio_id=portfolio.id)
url_for("applications.create_new_application_step_1", portfolio_id=portfolio.id)
in response.data.decode()
)
@@ -58,7 +58,7 @@ def test_user_without_permission_has_no_add_application_link(client, user_sessio
url_for("applications.portfolio_applications", portfolio_id=portfolio.id)
)
assert (
url_for("applications.create", portfolio_id=portfolio.id)
url_for("applications.create_new_application_step_1", portfolio_id=portfolio.id)
not in response.data.decode()
)

View File

@@ -1,21 +1,96 @@
from flask import url_for
from tests.factories import PortfolioFactory
from tests.factories import PortfolioFactory, ApplicationFactory
from atst.domain.applications import Applications
def test_creating_application(client, user_session):
def test_get_name_and_description_form(client, user_session):
portfolio = PortfolioFactory.create()
user_session(portfolio.owner)
response = client.get(
url_for("applications.view_new_application_step_1", portfolio_id=portfolio.id)
)
assert response.status_code == 200
def test_get_name_and_description_form_for_update(client, user_session):
name = "My Test Application"
description = "This is the description of the test application."
application = ApplicationFactory.create(name=name, description=description)
user_session(application.portfolio.owner)
response = client.get(
url_for(
"applications.view_new_application_step_1",
portfolio_id=application.portfolio.id,
application_id=application.id,
)
)
assert response.status_code == 200
assert name in response.data.decode()
assert description in response.data.decode()
def test_post_name_and_description(client, user_session):
portfolio = PortfolioFactory.create()
user_session(portfolio.owner)
response = client.post(
url_for("applications.create", portfolio_id=portfolio.id),
data={
"name": "Test Application",
"description": "This is only a test",
"environment_names-0": "dev",
"environment_names-1": "staging",
"environment_names-2": "prod",
},
url_for(
"applications.create_new_application_step_1", portfolio_id=portfolio.id
),
data={"name": "Test Application", "description": "This is only a test"},
)
assert response.status_code == 302
assert len(portfolio.applications) == 1
assert len(portfolio.applications[0].environments) == 3
assert portfolio.applications[0].name == "Test Application"
assert portfolio.applications[0].description == "This is only a test"
def test_post_name_and_description_for_update(client, session, user_session):
application = ApplicationFactory.create()
user_session(application.portfolio.owner)
response = client.post(
url_for(
"applications.update_new_application_step_1",
portfolio_id=application.portfolio.id,
application_id=application.id,
),
data={"name": "Test Application", "description": "This is only a test"},
)
assert response.status_code == 302
session.refresh(application)
assert application.name == "Test Application"
assert application.description == "This is only a test"
def test_get_environments(client, user_session):
application = ApplicationFactory.create()
user_session(application.portfolio.owner)
response = client.get(
url_for(
"applications.view_new_application_step_2",
portfolio_id=application.portfolio.id,
application_id=application.id,
)
)
assert response.status_code == 200
def test_post_environments(client, session, user_session):
application = ApplicationFactory.create(environments=[])
user_session(application.portfolio.owner)
response = client.post(
url_for(
"applications.update_new_application_step_2",
portfolio_id=application.portfolio.id,
application_id=application.id,
),
data={
"environment_names-0": "development",
"environment_names-1": "staging",
"environment_names-2": "production",
},
)
assert response.status_code == 302
session.refresh(application)
assert len(application.environments) == 3