From c4039de861486fe2ffd5451ceb74f9fc806604ff Mon Sep 17 00:00:00 2001 From: richard-dds Date: Mon, 30 Jul 2018 15:31:14 -0400 Subject: [PATCH] Add domain tests for all of authz --- tests/domain/test_roles.py | 23 ++++++++++++ tests/domain/test_users.py | 72 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 tests/domain/test_roles.py create mode 100644 tests/domain/test_users.py diff --git a/tests/domain/test_roles.py b/tests/domain/test_roles.py new file mode 100644 index 00000000..1280292f --- /dev/null +++ b/tests/domain/test_roles.py @@ -0,0 +1,23 @@ +import pytest +from atst.domain.roles import Roles +from atst.domain.exceptions import NotFoundError + + +@pytest.fixture() +def roles_repo(db): + return Roles(db) + + +def test_get_all_roles(roles_repo): + roles = roles_repo.get_all() + assert roles + + +def test_get_existing_role(roles_repo): + role = roles_repo.get("developer") + assert role.name == "developer" + + +def test_get_nonexistent_role(roles_repo): + with pytest.raises(NotFoundError): + roles_repo.get("nonexistent") diff --git a/tests/domain/test_users.py b/tests/domain/test_users.py new file mode 100644 index 00000000..921463f8 --- /dev/null +++ b/tests/domain/test_users.py @@ -0,0 +1,72 @@ +import pytest +from uuid import uuid4, UUID + +from atst.domain.users import Users +from atst.domain.exceptions import NotFoundError, AlreadyExistsError + +@pytest.fixture() +def users_repo(db) -> Users: + return Users(db) + + +@pytest.fixture(scope="function") +def user_id(): + return uuid4() + + +def test_create_user(users_repo, user_id): + user = users_repo.create(user_id, "developer") + assert user.id == user_id + + +def test_create_user_with_nonexistent_role(users_repo, user_id): + with pytest.raises(NotFoundError): + users_repo.create(user_id, "nonexistent") + + +def test_create_already_existing_user(users_repo, user_id): + users_repo.create(user_id, "developer") + with pytest.raises(AlreadyExistsError): + users_repo.create(user_id, "developer") + + +def test_get_or_create_nonexistent_user(users_repo, user_id): + user = users_repo.get_or_create(user_id, atat_role_name="developer") + assert user.id == user_id + + +def test_get_or_create_existing_user(users_repo, user_id): + users_repo.get_or_create(user_id, atat_role_name="developer") + user = users_repo.get_or_create(user_id, atat_role_name="developer") + assert user + + +def test_get_user(users_repo, user_id): + users_repo.create(user_id, "developer") + user = users_repo.get(user_id) + assert user.id == user_id + + +def test_get_nonexistent_user(users_repo, user_id): + users_repo.create(user_id, "developer") + with pytest.raises(NotFoundError): + users_repo.get(uuid4()) + + +def test_update_user(users_repo, user_id): + users_repo.create(user_id, "developer") + updated_user = users_repo.update(user_id, "ccpo") + + assert updated_user.atat_role.name == "ccpo" + + +def test_update_nonexistent_user(users_repo, user_id): + users_repo.create(user_id, "developer") + with pytest.raises(NotFoundError): + users_repo.update(uuid4(), "ccpo") + + +def test_update_existing_user_with_nonexistent_role(users_repo, user_id): + users_repo.create(user_id, "developer") + with pytest.raises(NotFoundError): + users_repo.update(user_id, "nonexistent")