test: add UserRole enum tests
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
"""
|
||||||
|
Tests for UserRole enum — verifies lowercase member names and values.
|
||||||
|
"""
|
||||||
|
import pytest
|
||||||
|
from app.models.user import UserRole
|
||||||
|
|
||||||
|
|
||||||
|
class TestUserRole:
|
||||||
|
def test_member_names_are_lowercase(self):
|
||||||
|
assert UserRole.pending.name == "pending"
|
||||||
|
assert UserRole.approved.name == "approved"
|
||||||
|
assert UserRole.admin.name == "admin"
|
||||||
|
|
||||||
|
def test_values_are_lowercase(self):
|
||||||
|
assert UserRole.pending.value == "pending"
|
||||||
|
assert UserRole.approved.value == "approved"
|
||||||
|
assert UserRole.admin.value == "admin"
|
||||||
|
|
||||||
|
def test_is_str_enum(self):
|
||||||
|
assert isinstance(UserRole.admin, str)
|
||||||
|
assert UserRole.admin == "admin"
|
||||||
|
|
||||||
|
def test_no_uppercase_members(self):
|
||||||
|
for member in UserRole:
|
||||||
|
assert member.name == member.name.lower(), f"Member {member.name} is not lowercase"
|
||||||
|
assert member.value == member.value.lower(), f"Value {member.value} is not lowercase"
|
||||||
|
|
||||||
|
def test_lookup_by_value(self):
|
||||||
|
assert UserRole("pending") == UserRole.pending
|
||||||
|
assert UserRole("approved") == UserRole.approved
|
||||||
|
assert UserRole("admin") == UserRole.admin
|
||||||
|
|
||||||
|
def test_invalid_value_raises(self):
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
UserRole("ADMIN")
|
||||||
Reference in New Issue
Block a user