From 0b5c31f65d5ee8150ce2787af5d3cbc6e3932827 Mon Sep 17 00:00:00 2001 From: Andreas Jung Date: Sun, 19 May 2024 11:16:42 -0400 Subject: [PATCH] updated --- fastapi_auth/roles.py | 2 +- fastapi_auth/tests/__init__.py | 0 fastapi_auth/tests/test_permissions.py | 21 ++++++++++++ fastapi_auth/tests/test_roles.py | 44 ++++++++++++++++++++++++++ fastapi_auth/users.py | 1 - 5 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 fastapi_auth/tests/__init__.py create mode 100644 fastapi_auth/tests/test_permissions.py create mode 100644 fastapi_auth/tests/test_roles.py diff --git a/fastapi_auth/roles.py b/fastapi_auth/roles.py index 1013fb8..0363e76 100644 --- a/fastapi_auth/roles.py +++ b/fastapi_auth/roles.py @@ -1,4 +1,4 @@ -from pydantic import BaseModel +from pydantic import BaseModel, Field from typeguard import typechecked diff --git a/fastapi_auth/tests/__init__.py b/fastapi_auth/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/fastapi_auth/tests/test_permissions.py b/fastapi_auth/tests/test_permissions.py new file mode 100644 index 0000000..056b8b3 --- /dev/null +++ b/fastapi_auth/tests/test_permissions.py @@ -0,0 +1,21 @@ +import pytest + +from ..permissions import Permission + +from pydantic import ValidationError + + +def test_permission_creation(): + permission = Permission(name="read", description="Can read data") + assert permission.name == "read" + assert permission.description == "Can read data" + + +def test_permission_without_name(): + with pytest.raises(ValidationError): + permission = Permission(description="Can read data") + + +def test_permission_without_description(): + with pytest.raises(ValidationError): + permission = Permission(name="read") diff --git a/fastapi_auth/tests/test_roles.py b/fastapi_auth/tests/test_roles.py new file mode 100644 index 0000000..680953e --- /dev/null +++ b/fastapi_auth/tests/test_roles.py @@ -0,0 +1,44 @@ +import pytest +from ..roles import Role +from ..permissions import Permission + + +from pydantic import ValidationError + + +def test_role_creation(): + role = Role(name="admin", description="Admin role") + assert role.name == "admin" + assert role.description == "Admin role" + + +def test_role_without_name(): + with pytest.raises(ValidationError): + role = Role(description="Admin role") + + +def test_role_without_description(): + with pytest.raises(ValidationError): + role = Role(name="admin") + + +def test_role_with_permissions(): + permissions = [ + Permission(name="read", description="Can read data"), + Permission(name="write", description="Can write data"), + ] + role = Role(name="admin", description="Admin role", permissions=permissions) + assert role.permissions == permissions + + +def test_role_creation(): + perm1 = Permission(name="read", description="Read permission") + perm2 = Permission(name="write", description="Write permission") + role = Role(name="admin", description="Adminstrator role", permissions=[perm1, perm2]) + assert role.name == "admin" + + assert perm1 in role.permissions + assert perm2 in role.permissions + + perm3 = Permission(name="delete", description="Delete permission") + assert perm3 not in role.permissions diff --git a/fastapi_auth/users.py b/fastapi_auth/users.py index 1a34e17..db473b6 100644 --- a/fastapi_auth/users.py +++ b/fastapi_auth/users.py @@ -1,6 +1,5 @@ from pydantic import BaseModel, Field -from typing import Optional from .roles import Role