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