atst/tests/routes/test_ccpo.py

65 lines
1.8 KiB
Python

from flask import url_for
from atst.domain.users import Users
from atst.utils.localization import translate
from tests.factories import UserFactory
def test_ccpo_users(user_session, client):
ccpo = UserFactory.create_ccpo()
user_session(ccpo)
response = client.get(url_for("ccpo.users"))
assert ccpo.email in response.data.decode()
def test_submit_new_user(user_session, client):
ccpo = UserFactory.create_ccpo()
new_user = UserFactory.create()
random_dod_id = "1234567890"
user_session(ccpo)
# give new_user CCPO permissions
response = client.post(
url_for("ccpo.submit_new_user"), data={"dod_id": new_user.dod_id}
)
assert new_user.email in response.data.decode()
# give person without ATAT account CCPO permissions
response = client.post(
url_for("ccpo.submit_new_user"), data={"dod_id": random_dod_id}
)
assert url_for("ccpo.users") in response.location
def test_confirm_new_user(user_session, client):
ccpo = UserFactory.create_ccpo()
new_user = UserFactory.create()
random_dod_id = "1234567890"
user_session(ccpo)
# give new_user CCPO permissions
response = client.post(
url_for("ccpo.confirm_new_user"),
data={"dod_id": new_user.dod_id},
follow_redirects=True,
)
assert new_user.dod_id in response.data.decode()
# give person without ATAT account CCPO permissions
response = client.post(
url_for("ccpo.confirm_new_user"),
data={"dod_id": random_dod_id},
follow_redirects=True,
)
assert random_dod_id not in response.data.decode()
def test_remove_access(user_session, client):
ccpo = UserFactory.create_ccpo()
user = UserFactory.create_ccpo()
user_session(ccpo)
response = client.post(url_for("ccpo.remove_access", user_id=user.id))
assert user not in Users.get_ccpo_users()