mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
140 lines
3.8 KiB
Python
140 lines
3.8 KiB
Python
import pytest
|
|
|
|
|
|
def test_read(client, seeder, utils):
|
|
user_id, admin_unit_id = seeder.setup_base(True)
|
|
oauth2_client_id = seeder.insert_default_oauth2_client(user_id)
|
|
|
|
url = utils.get_url("oauth2_client", id=oauth2_client_id)
|
|
utils.get_ok(url)
|
|
|
|
|
|
def test_read_notOwner(client, seeder, utils):
|
|
user_id = seeder.create_user(email="other@other.de", admin=True)
|
|
oauth2_client_id = seeder.insert_default_oauth2_client(user_id)
|
|
|
|
seeder.setup_base(True)
|
|
url = utils.get_url("oauth2_client", id=oauth2_client_id)
|
|
utils.get_unauthorized(url)
|
|
|
|
|
|
def test_list(client, seeder, utils):
|
|
user_id, admin_unit_id = seeder.setup_base(True)
|
|
|
|
url = utils.get_url("oauth2_clients")
|
|
utils.get_ok(url)
|
|
|
|
|
|
@pytest.mark.parametrize("db_error", [True, False])
|
|
def test_create_authorization_code(client, app, utils, seeder, mocker, db_error):
|
|
from project.api import scope_list
|
|
|
|
user_id, admin_unit_id = seeder.setup_base(True)
|
|
|
|
url = utils.get_url("oauth2_client_create")
|
|
response = utils.get_ok(url)
|
|
|
|
if db_error:
|
|
utils.mock_db_commit(mocker)
|
|
|
|
response = utils.post_form(
|
|
url,
|
|
response,
|
|
{
|
|
"client_name": "Mein Client",
|
|
"scope": scope_list,
|
|
"redirect_uris": utils.get_url("swagger_oauth2_redirect"),
|
|
},
|
|
)
|
|
|
|
if db_error:
|
|
utils.assert_response_db_error(response)
|
|
return
|
|
|
|
with app.app_context():
|
|
from project.models import OAuth2Client
|
|
|
|
oauth2_client = OAuth2Client.query.filter(
|
|
OAuth2Client.user_id == user_id
|
|
).first()
|
|
assert oauth2_client is not None
|
|
client_id = oauth2_client.id
|
|
|
|
utils.assert_response_redirect(response, "oauth2_client", id=client_id)
|
|
|
|
|
|
@pytest.mark.parametrize("db_error", [True, False])
|
|
def test_update(client, seeder, utils, app, db, mocker, db_error):
|
|
user_id, admin_unit_id = seeder.setup_base(True)
|
|
oauth2_client_id = seeder.insert_default_oauth2_client(user_id)
|
|
|
|
url = utils.get_url("oauth2_client_update", id=oauth2_client_id)
|
|
response = utils.get_ok(url)
|
|
|
|
if db_error:
|
|
utils.mock_db_commit(mocker)
|
|
|
|
response = utils.post_form(
|
|
url,
|
|
response,
|
|
{
|
|
"client_name": "Neuer Name",
|
|
"redirect_uris": "localhost:1337\nlocalhost:1338",
|
|
},
|
|
)
|
|
|
|
if db_error:
|
|
utils.assert_response_db_error(response)
|
|
return
|
|
|
|
utils.assert_response_redirect(response, "oauth2_client", id=oauth2_client_id)
|
|
|
|
with app.app_context():
|
|
from project.models import OAuth2Client
|
|
|
|
oauth2_client = db.session.get(OAuth2Client, oauth2_client_id)
|
|
assert oauth2_client.client_name == "Neuer Name"
|
|
assert oauth2_client.redirect_uris == ["localhost:1337", "localhost:1338"]
|
|
|
|
|
|
@pytest.mark.parametrize("db_error", [True, False])
|
|
@pytest.mark.parametrize("non_match", [True, False])
|
|
def test_delete(client, seeder, utils, app, db, mocker, db_error, non_match):
|
|
user_id, admin_unit_id = seeder.setup_base(True)
|
|
oauth2_client_id = seeder.insert_default_oauth2_client(user_id)
|
|
|
|
url = utils.get_url("oauth2_client_delete", id=oauth2_client_id)
|
|
response = utils.get_ok(url)
|
|
|
|
if db_error:
|
|
utils.mock_db_commit(mocker)
|
|
|
|
form_name = "Mein Client"
|
|
|
|
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)
|
|
return
|
|
|
|
if db_error:
|
|
utils.assert_response_db_error(response)
|
|
return
|
|
|
|
utils.assert_response_redirect(response, "oauth2_clients")
|
|
|
|
with app.app_context():
|
|
from project.models import OAuth2Client
|
|
|
|
oauth2_client = db.session.get(OAuth2Client, oauth2_client_id)
|
|
assert oauth2_client is None
|