aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/auth/conftest.py18
-rw-r--r--tests/unit/auth/test_groups.py33
2 files changed, 39 insertions, 12 deletions
diff --git a/tests/unit/auth/conftest.py b/tests/unit/auth/conftest.py
index 3d887be..b35ae4a 100644
--- a/tests/unit/auth/conftest.py
+++ b/tests/unit/auth/conftest.py
@@ -54,6 +54,7 @@ def migrations_up_to(migration, migrations_dir):
@pytest.fixture(scope="function")
def test_users(conn_after_auth_migrations):
query = "INSERT INTO users(user_id, email, name) VALUES (?, ?, ?)"
+ query_user_roles = "INSERT INTO user_roles(user_id, role_id) VALUES (?, ?)"
test_users = (
("ecb52977-3004-469e-9428-2a1856725c7f", "group@lead.er",
"Group Leader"),
@@ -63,7 +64,24 @@ def test_users(conn_after_auth_migrations):
"Group Member 02"),
("9a0c7ce5-2f40-4e78-979e-bf3527a59579", "unaff@iliated.user",
"Unaffiliated User"))
+ test_user_roles = (
+ ("ecb52977-3004-469e-9428-2a1856725c7f",
+ "a0e67630-d502-4b9f-b23f-6805d0f30e30"),)
with closing(conn_after_auth_migrations.cursor()) as cursor:
cursor.executemany(query, test_users)
+ cursor.executemany(query_user_roles, test_user_roles)
+ conn_after_auth_migrations.commit()
yield conn_after_auth_migrations
+
+ with closing(conn_after_auth_migrations.cursor()) as cursor:
+ cursor.executemany(
+ "DELETE FROM user_roles WHERE user_id=?",
+ (("ecb52977-3004-469e-9428-2a1856725c7f",),))
+ cursor.executemany(
+ "DELETE FROM users WHERE user_id=?",
+ (("ecb52977-3004-469e-9428-2a1856725c7f",),
+ ("21351b66-8aad-475b-84ac-53ce528451e3",),
+ ("ae9c6245-0966-41a5-9a5e-20885a96bea7",),
+ ("9a0c7ce5-2f40-4e78-979e-bf3527a59579",)))
+ conn_after_auth_migrations.commit()
diff --git a/tests/unit/auth/test_groups.py b/tests/unit/auth/test_groups.py
index fa7f334..18abbc6 100644
--- a/tests/unit/auth/test_groups.py
+++ b/tests/unit/auth/test_groups.py
@@ -1,25 +1,34 @@
"""Test functions dealing with group management."""
from uuid import UUID
+import flask
import pytest
+from gn3.auth import db
from gn3.auth.authorisation.groups import create_group
+create_group_failure = {
+ "status": "error",
+ "message": "Unauthorised: Failed to create group."
+}
+
+group_leader_id = lambda : UUID("d32611e3-07fc-4564-b56c-786c6db6de2b")
+
@pytest.mark.unit_test
@pytest.mark.parametrize(
"user_id,expected", (
("ecb52977-3004-469e-9428-2a1856725c7f", {
"status": "success",
- "message": "Successfully created group!",
- "group_id": UUID("d32611e3-07fc-4564-b56c-786c6db6de2b")
+ "message": "Successfully created group.",
+ "results": UUID("d32611e3-07fc-4564-b56c-786c6db6de2b")
}),
- ("21351b66-8aad-475b-84ac-53ce528451e3", {
- "status": "error", "message": "unauthorised"}),
- ("ae9c6245-0966-41a5-9a5e-20885a96bea7", {
- "status": "error", "message": "unauthorised"}),
- ("9a0c7ce5-2f40-4e78-979e-bf3527a59579", {
- "status": "error", "message": "unauthorised"}),
- ("e614247d-84d2-491d-a048-f80b578216cb", {
- "status": "error", "message": "unauthorised"})))
-def test_create_group(test_users, user_id, expected):
- assert create_group("a_test_group") == expected
+ ("21351b66-8aad-475b-84ac-53ce528451e3", create_group_failure),
+ ("ae9c6245-0966-41a5-9a5e-20885a96bea7", create_group_failure),
+ ("9a0c7ce5-2f40-4e78-979e-bf3527a59579", create_group_failure),
+ ("e614247d-84d2-491d-a048-f80b578216cb", create_group_failure)))
+def test_create_group(test_app, auth_testdb_path, mocker, test_users, user_id, expected):
+ mocker.patch("gn3.auth.authorisation.groups.uuid.uuid4", group_leader_id)
+ with test_app.test_request_context() as flask_context:
+ flask_context.g.user_id = UUID(user_id)
+ with db.connection(auth_testdb_path) as conn:
+ assert create_group(conn, "a_test_group") == expected