""" 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")