mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 08:09:37 +00:00
167 lines
4.7 KiB
Python
167 lines
4.7 KiB
Python
import pytest
|
|
|
|
from tests.seeder import Seeder
|
|
from tests.utils import UtilActions
|
|
|
|
|
|
@pytest.mark.parametrize("db_error", [True, False])
|
|
def test_create(client, app, utils: UtilActions, seeder: Seeder, mocker, db_error):
|
|
(
|
|
verifier_user_id,
|
|
verifier_admin_unit_id,
|
|
unverified_user_id,
|
|
unverified_admin_unit_id,
|
|
) = seeder.setup_admin_unit_missing_verification_scenario()
|
|
|
|
url = utils.get_url(
|
|
"manage_admin_unit_verification_requests_outgoing_create",
|
|
id=unverified_admin_unit_id,
|
|
target_id=verifier_admin_unit_id,
|
|
)
|
|
response = utils.get_ok(url)
|
|
|
|
if db_error:
|
|
utils.mock_db_commit(mocker)
|
|
|
|
mail_mock = utils.mock_send_mails_async(mocker)
|
|
response = utils.post_form(
|
|
url,
|
|
response,
|
|
{},
|
|
)
|
|
|
|
if db_error:
|
|
utils.assert_response_db_error(response)
|
|
return
|
|
|
|
utils.assert_response_redirect(
|
|
response,
|
|
"manage_admin_unit_verification_requests_outgoing",
|
|
id=unverified_admin_unit_id,
|
|
)
|
|
utils.assert_send_mail_called(mail_mock, "test@test.de")
|
|
|
|
with app.app_context():
|
|
from project.models import (
|
|
AdminUnitVerificationRequest,
|
|
AdminUnitVerificationRequestReviewStatus,
|
|
)
|
|
|
|
verification_request = (
|
|
AdminUnitVerificationRequest.query.filter(
|
|
AdminUnitVerificationRequest.source_admin_unit_id
|
|
== unverified_admin_unit_id
|
|
)
|
|
.filter(
|
|
AdminUnitVerificationRequest.target_admin_unit_id
|
|
== verifier_admin_unit_id
|
|
)
|
|
.first()
|
|
)
|
|
assert verification_request is not None
|
|
assert (
|
|
verification_request.review_status
|
|
== AdminUnitVerificationRequestReviewStatus.inbox
|
|
)
|
|
|
|
|
|
def test_admin_unit_verification_requests_incoming(
|
|
client, utils: UtilActions, seeder: Seeder
|
|
):
|
|
user_id, admin_unit_id = seeder.setup_base()
|
|
seeder.create_incoming_admin_unit_verification_request(admin_unit_id)
|
|
|
|
utils.get_endpoint_ok(
|
|
"manage_admin_unit_verification_requests_incoming", id=admin_unit_id
|
|
)
|
|
|
|
|
|
def test_verification_requests_outgoing(client, seeder: Seeder, utils: UtilActions):
|
|
(
|
|
verifier_user_id,
|
|
verifier_admin_unit_id,
|
|
unverified_user_id,
|
|
unverified_admin_unit_id,
|
|
) = seeder.setup_admin_unit_missing_verification_scenario()
|
|
|
|
response = utils.get_endpoint(
|
|
"manage_admin_unit_verification_requests_outgoing", id=unverified_admin_unit_id
|
|
)
|
|
utils.assert_response_redirect(
|
|
response,
|
|
"manage_admin_unit_verification_requests_outgoing_create_select",
|
|
id=unverified_admin_unit_id,
|
|
)
|
|
|
|
response = utils.get_endpoint_ok(
|
|
"manage_admin_unit_verification_requests_outgoing_create_select",
|
|
id=unverified_admin_unit_id,
|
|
)
|
|
utils.assert_response_contains(response, "Stadtmarketing")
|
|
utils.assert_response_contains(response, "Please give us a call")
|
|
|
|
seeder.create_admin_unit_verification_request(
|
|
unverified_admin_unit_id, verifier_admin_unit_id
|
|
)
|
|
response = utils.get_endpoint_ok(
|
|
"manage_admin_unit_verification_requests_outgoing",
|
|
id=unverified_admin_unit_id,
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize("db_error", [True, False])
|
|
@pytest.mark.parametrize("non_match", [True, False])
|
|
def test_delete(
|
|
client, seeder: Seeder, utils: UtilActions, app, db, mocker, db_error, non_match
|
|
):
|
|
(
|
|
verifier_user_id,
|
|
verifier_admin_unit_id,
|
|
unverified_user_id,
|
|
unverified_admin_unit_id,
|
|
) = seeder.setup_admin_unit_missing_verification_scenario()
|
|
request_id = seeder.create_admin_unit_verification_request(
|
|
unverified_admin_unit_id, verifier_admin_unit_id
|
|
)
|
|
|
|
url = utils.get_url("admin_unit_verification_request_delete", id=request_id)
|
|
response = utils.get_ok(url)
|
|
|
|
if db_error:
|
|
utils.mock_db_commit(mocker)
|
|
|
|
form_name = "Stadtmarketing"
|
|
|
|
if non_match:
|
|
form_name = "Falscher Name"
|
|
|
|
response = utils.post_form(
|
|
url,
|
|
response,
|
|
{
|
|
"name": form_name,
|
|
},
|
|
)
|
|
|
|
if non_match:
|
|
utils.assert_response_error_message(
|
|
response, "Der eingegebene Name entspricht nicht dem Namen der Organisation"
|
|
)
|
|
return
|
|
|
|
if db_error:
|
|
utils.assert_response_db_error(response)
|
|
return
|
|
|
|
utils.assert_response_redirect(
|
|
response,
|
|
"manage_admin_unit_verification_requests_outgoing",
|
|
id=unverified_admin_unit_id,
|
|
)
|
|
|
|
with app.app_context():
|
|
from project.models import AdminUnitVerificationRequest
|
|
|
|
request = db.session.get(AdminUnitVerificationRequest, request_id)
|
|
assert request is None
|