From a5945a202208b0d9e10c98a89b89617a6086ec44 Mon Sep 17 00:00:00 2001 From: danbusse <81775558+danbusse@users.noreply.github.com> Date: Mon, 22 Jun 2026 22:14:08 -0600 Subject: [PATCH] test: add UserRole enum tests --- backend/tests/test_user_role.py | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 backend/tests/test_user_role.py diff --git a/backend/tests/test_user_role.py b/backend/tests/test_user_role.py new file mode 100644 index 0000000..b519c07 --- /dev/null +++ b/backend/tests/test_user_role.py @@ -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")