diff --git a/atst/domain/users.py b/atst/domain/users.py index d8867b5e..a0f7d43c 100644 --- a/atst/domain/users.py +++ b/atst/domain/users.py @@ -20,11 +20,11 @@ class Users(object): return user @classmethod - def create(self, user_id, atat_role_name): + def create(cls, atat_role_name, **kwargs): atat_role = Roles.get(atat_role_name) try: - user = User(id=user_id, atat_role=atat_role) + user = User(atat_role=atat_role, **kwargs) db.session.add(user) db.session.commit() except IntegrityError: @@ -33,18 +33,18 @@ class Users(object): return user @classmethod - def get_or_create(cls, user_id, *args, **kwargs): + def get_or_create(cls, user_id, **kwargs): try: user = Users.get(user_id) except NotFoundError: - user = Users.create(user_id, *args, **kwargs) + user = Users.create(id=user_id, **kwargs) db.session.add(user) db.session.commit() return user @classmethod - def update(self, user_id, atat_role_name): + def update(cls, user_id, atat_role_name): user = Users.get(user_id) atat_role = Roles.get(atat_role_name) diff --git a/tests/domain/test_users.py b/tests/domain/test_users.py index 2cb3ad21..e9bac734 100644 --- a/tests/domain/test_users.py +++ b/tests/domain/test_users.py @@ -5,64 +5,56 @@ from atst.domain.users import Users from atst.domain.exceptions import NotFoundError, AlreadyExistsError -@pytest.fixture(scope="function") -def user_id(): - return uuid4() + +def test_create_user(): + user = Users.create("developer") + assert user.atat_role.name == "developer" -def test_create_user(user_id): - user = Users.create(user_id, "developer") - assert user.id == user_id - - -def test_create_user_with_nonexistent_role(user_id): +def test_create_user_with_nonexistent_role(): with pytest.raises(NotFoundError): - Users.create(user_id, "nonexistent") + Users.create("nonexistent") -def test_create_already_existing_user(user_id): - Users.create(user_id, "developer") - with pytest.raises(AlreadyExistsError): - Users.create(user_id, "developer") - - -def test_get_or_create_nonexistent_user(user_id): +def test_get_or_create_nonexistent_user(): + user_id = uuid4() user = Users.get_or_create(user_id, atat_role_name="developer") assert user.id == user_id -def test_get_or_create_existing_user(user_id): +def test_get_or_create_existing_user(): + user_id = uuid4() Users.get_or_create(user_id, atat_role_name="developer") user = Users.get_or_create(user_id, atat_role_name="developer") assert user -def test_get_user(user_id): - Users.create(user_id, "developer") - user = Users.get(user_id) - assert user.id == user_id +def test_get_user(): + new_user = Users.create("developer") + user = Users.get(new_user.id) + assert user.id == new_user.id -def test_get_nonexistent_user(user_id): - Users.create(user_id, "developer") +def test_get_nonexistent_user(): + Users.create("developer") with pytest.raises(NotFoundError): Users.get(uuid4()) -def test_update_user(user_id): - Users.create(user_id, "developer") - updated_user = Users.update(user_id, "ccpo") +def test_update_user(): + new_user = Users.create("developer") + updated_user = Users.update(new_user.id, "ccpo") assert updated_user.atat_role.name == "ccpo" -def test_update_nonexistent_user(user_id): - Users.create(user_id, "developer") +def test_update_nonexistent_user(): + Users.create("developer") with pytest.raises(NotFoundError): Users.update(uuid4(), "ccpo") -def test_update_existing_user_with_nonexistent_role(user_id): - Users.create(user_id, "developer") +def test_update_existing_user_with_nonexistent_role(): + new_user = Users.create("developer") with pytest.raises(NotFoundError): - Users.update(user_id, "nonexistent") + Users.update(new_user.id, "nonexistent") diff --git a/tests/domain/test_workspace_users.py b/tests/domain/test_workspace_users.py index d7a2d66d..6f2a9266 100644 --- a/tests/domain/test_workspace_users.py +++ b/tests/domain/test_workspace_users.py @@ -7,7 +7,7 @@ from atst.domain.users import Users def test_can_create_new_workspace_user(): workspace_id = uuid4() - user = Users.create(uuid4(), "developer") + user = Users.create("developer") workspace_user_dicts = [{"id": user.id, "workspace_role": "owner"}] @@ -20,7 +20,7 @@ def test_can_create_new_workspace_user(): def test_can_update_existing_workspace_user(): workspace_id = uuid4() - user = Users.create(uuid4(), "developer") + user = Users.create("developer") WorkspaceUsers.add_many( workspace_id, [{"id": user.id, "workspace_role": "owner"}]