Update / create new tests for application creation
This commit is contained in:
parent
66f606d951
commit
a96c2b3cdd
@ -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)
|
url_for("applications.portfolio_applications", portfolio_id=portfolio.id)
|
||||||
)
|
)
|
||||||
assert (
|
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()
|
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)
|
url_for("applications.portfolio_applications", portfolio_id=portfolio.id)
|
||||||
)
|
)
|
||||||
assert (
|
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()
|
not in response.data.decode()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,21 +1,96 @@
|
|||||||
from flask import url_for
|
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()
|
portfolio = PortfolioFactory.create()
|
||||||
user_session(portfolio.owner)
|
user_session(portfolio.owner)
|
||||||
response = client.post(
|
response = client.post(
|
||||||
url_for("applications.create", portfolio_id=portfolio.id),
|
url_for(
|
||||||
data={
|
"applications.create_new_application_step_1", portfolio_id=portfolio.id
|
||||||
"name": "Test Application",
|
),
|
||||||
"description": "This is only a test",
|
data={"name": "Test Application", "description": "This is only a test"},
|
||||||
"environment_names-0": "dev",
|
|
||||||
"environment_names-1": "staging",
|
|
||||||
"environment_names-2": "prod",
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert len(portfolio.applications) == 1
|
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
|
||||||
|
@ -222,17 +222,105 @@ def test_applications_access_environment_access(get_url_assert_status):
|
|||||||
get_url_assert_status(ccpo, url, 404)
|
get_url_assert_status(ccpo, url, 404)
|
||||||
|
|
||||||
|
|
||||||
# applications.create
|
# applications.view_new_application_step_1
|
||||||
def test_applications_create_access(post_url_assert_status):
|
def test_applications_get_application_step_1(get_url_assert_status):
|
||||||
ccpo = user_with(PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT)
|
ccpo = user_with(PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT)
|
||||||
owner = user_with()
|
owner = user_with()
|
||||||
rando = user_with()
|
rando = user_with()
|
||||||
portfolio = PortfolioFactory.create(owner=owner)
|
portfolio = PortfolioFactory.create(owner=owner)
|
||||||
|
|
||||||
url = url_for("applications.create", portfolio_id=portfolio.id)
|
url = url_for("applications.view_new_application_step_1", portfolio_id=portfolio.id)
|
||||||
post_url_assert_status(ccpo, url, 200)
|
get_url_assert_status(ccpo, url, 200)
|
||||||
post_url_assert_status(owner, url, 200)
|
get_url_assert_status(owner, url, 200)
|
||||||
post_url_assert_status(rando, url, 404)
|
get_url_assert_status(rando, url, 404)
|
||||||
|
|
||||||
|
|
||||||
|
# applications.view_new_application_step_1
|
||||||
|
def test_applications_get_application_step_1_update(get_url_assert_status):
|
||||||
|
ccpo = user_with(PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT)
|
||||||
|
owner = user_with()
|
||||||
|
rando = user_with()
|
||||||
|
portfolio = PortfolioFactory.create(owner=owner)
|
||||||
|
application = ApplicationFactory.create(portfolio=portfolio)
|
||||||
|
|
||||||
|
url = url_for(
|
||||||
|
"applications.view_new_application_step_1",
|
||||||
|
portfolio_id=portfolio.id,
|
||||||
|
application_id=application.id,
|
||||||
|
)
|
||||||
|
get_url_assert_status(ccpo, url, 200)
|
||||||
|
get_url_assert_status(owner, url, 200)
|
||||||
|
get_url_assert_status(rando, url, 404)
|
||||||
|
|
||||||
|
|
||||||
|
# applications.create_or_update_new_application_step_1
|
||||||
|
def test_applications_post_application_step_1(post_url_assert_status):
|
||||||
|
ccpo = user_with(PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT)
|
||||||
|
owner = user_with()
|
||||||
|
rando = user_with()
|
||||||
|
portfolio = PortfolioFactory.create(owner=owner)
|
||||||
|
application = ApplicationFactory.create(portfolio=portfolio)
|
||||||
|
step_1_form_data = {
|
||||||
|
"name": "Test Application",
|
||||||
|
"description": "This is only a test",
|
||||||
|
}
|
||||||
|
|
||||||
|
url = url_for(
|
||||||
|
"applications.create_new_application_step_1", portfolio_id=portfolio.id
|
||||||
|
)
|
||||||
|
post_url_assert_status(ccpo, url, 302, data=step_1_form_data)
|
||||||
|
post_url_assert_status(owner, url, 302, data=step_1_form_data)
|
||||||
|
post_url_assert_status(rando, url, 404, data=step_1_form_data)
|
||||||
|
|
||||||
|
url = url_for(
|
||||||
|
"applications.update_new_application_step_1",
|
||||||
|
portfolio_id=portfolio.id,
|
||||||
|
application_id=application.id,
|
||||||
|
)
|
||||||
|
post_url_assert_status(ccpo, url, 302, data=step_1_form_data)
|
||||||
|
post_url_assert_status(owner, url, 302, data=step_1_form_data)
|
||||||
|
post_url_assert_status(rando, url, 404, data=step_1_form_data)
|
||||||
|
|
||||||
|
|
||||||
|
# applications.view_new_application_step_2
|
||||||
|
def test_applications_get_application_step_2(get_url_assert_status):
|
||||||
|
ccpo = user_with(PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT)
|
||||||
|
owner = user_with()
|
||||||
|
rando = user_with()
|
||||||
|
portfolio = PortfolioFactory.create(owner=owner)
|
||||||
|
application = ApplicationFactory.create(portfolio=portfolio)
|
||||||
|
|
||||||
|
url = url_for(
|
||||||
|
"applications.view_new_application_step_2",
|
||||||
|
portfolio_id=portfolio.id,
|
||||||
|
application_id=application.id,
|
||||||
|
)
|
||||||
|
get_url_assert_status(ccpo, url, 200)
|
||||||
|
get_url_assert_status(owner, url, 200)
|
||||||
|
get_url_assert_status(rando, url, 404)
|
||||||
|
|
||||||
|
|
||||||
|
# applications.update_new_application_step_2
|
||||||
|
def test_applications_post_application_step_2(post_url_assert_status):
|
||||||
|
ccpo = user_with(PermissionSets.EDIT_PORTFOLIO_APPLICATION_MANAGEMENT)
|
||||||
|
owner = user_with()
|
||||||
|
rando = user_with()
|
||||||
|
portfolio = PortfolioFactory.create(owner=owner)
|
||||||
|
application = ApplicationFactory.create(portfolio=portfolio)
|
||||||
|
step_2_form_data = {
|
||||||
|
"environment_names-0": "development",
|
||||||
|
"environment_names-1": "staging",
|
||||||
|
"environment_names-2": "production",
|
||||||
|
}
|
||||||
|
|
||||||
|
url = url_for(
|
||||||
|
"applications.update_new_application_step_1",
|
||||||
|
portfolio_id=portfolio.id,
|
||||||
|
application_id=application.id,
|
||||||
|
)
|
||||||
|
post_url_assert_status(ccpo, url, 302, data=step_2_form_data)
|
||||||
|
post_url_assert_status(owner, url, 302, data=step_2_form_data)
|
||||||
|
post_url_assert_status(rando, url, 404, data=step_2_form_data)
|
||||||
|
|
||||||
|
|
||||||
# portfolios.invite_member
|
# portfolios.invite_member
|
||||||
@ -319,7 +407,9 @@ def test_applications_new_access(get_url_assert_status):
|
|||||||
rando = user_with()
|
rando = user_with()
|
||||||
portfolio = PortfolioFactory.create(owner=owner)
|
portfolio = PortfolioFactory.create(owner=owner)
|
||||||
|
|
||||||
url = url_for("applications.new", portfolio_id=portfolio.id)
|
url = url_for(
|
||||||
|
"applications.create_new_application_step_1", portfolio_id=portfolio.id
|
||||||
|
)
|
||||||
get_url_assert_status(ccpo, url, 200)
|
get_url_assert_status(ccpo, url, 200)
|
||||||
get_url_assert_status(owner, url, 200)
|
get_url_assert_status(owner, url, 200)
|
||||||
get_url_assert_status(rando, url, 404)
|
get_url_assert_status(rando, url, 404)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user