74 lines
2.0 KiB
Python
74 lines
2.0 KiB
Python
import pytest
|
|
from uuid import uuid4
|
|
|
|
from atst.domain.users import Users
|
|
from atst.domain.exceptions import NotFoundError, AlreadyExistsError
|
|
|
|
|
|
@pytest.fixture()
|
|
def users_repo(session):
|
|
return Users(session)
|
|
|
|
|
|
@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")
|