Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions tests/test_user_role.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import pytest

from uncertainty_engine_types.user_role import UserRole


@pytest.mark.parametrize(
"role, expected",
[
(UserRole.MEMBER, "member"),
(UserRole.ADMIN, "admin"),
],
)
def test_member_value(
role: UserRole,
expected: str,
) -> None:
"""Test that the value of each UserRole member is correct."""

assert role == expected


@pytest.mark.parametrize(
"role",
[
UserRole.MEMBER,
UserRole.ADMIN,
],
)
def test_is_str_instance(role: UserRole) -> None:
"""Test that each UserRole member is an instance of str."""

assert isinstance(role, str)


@pytest.mark.parametrize(
"value, expected",
[
("member", UserRole.MEMBER),
("admin", UserRole.ADMIN),
],
)
def test_from_value(value: str, expected: UserRole) -> None:
"""Test that a UserRole can be created from its value."""

assert UserRole(value) is expected


@pytest.mark.parametrize(
"bad_value",
[
"su",
"owner",
"",
"ADMIN",
"Member",
],
)
def test_invalid_value_raises(bad_value: str) -> None:
"""Test that creating a UserRole with an invalid value raises a ValueError."""

with pytest.raises(ValueError):
UserRole(bad_value)


def test_all_members() -> None:
"""Test that all UserRole members are correctly defined."""

members = {role.value for role in UserRole}
assert members == {"member", "admin"}
2 changes: 2 additions & 0 deletions uncertainty_engine_types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
from uncertainty_engine_types.token import Token
from uncertainty_engine_types.tool_metadata import ToolMetadata
from uncertainty_engine_types.uncertainty_plot import UncertaintyPlot
from uncertainty_engine_types.user_role import UserRole
from uncertainty_engine_types.vector_store import VectorStoreConfig, VectorStoreProvider
from uncertainty_engine_types.version import __version__

Expand Down Expand Up @@ -102,6 +103,7 @@
"Token",
"UserContext",
"UncertaintyPlot",
"UserRole",
"utils",
"VectorStoreConfig",
"VectorStoreProvider",
Expand Down
8 changes: 8 additions & 0 deletions uncertainty_engine_types/user_role.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from enum import Enum


class UserRole(str, Enum):
"""Defines user roles for access control."""

ADMIN = "admin"
MEMBER = "member"
2 changes: 1 addition & 1 deletion uncertainty_engine_types/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.21.0"
__version__ = "0.22.0"
Loading