57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
import uuid
|
|
|
|
from django.test import TestCase
|
|
|
|
from apps.users.models import User, UserRole
|
|
|
|
from .helpers import make_user
|
|
|
|
|
|
class UserRoleChoicesTest(TestCase):
|
|
def test_choices_count(self) -> None:
|
|
self.assertEqual(len(UserRole.choices), 4)
|
|
|
|
def test_choice_values(self) -> None:
|
|
values = {c[0] for c in UserRole.choices}
|
|
self.assertEqual(
|
|
values, {"admin", "experimenter", "approver", "viewer"}
|
|
)
|
|
|
|
|
|
class UserModelTest(TestCase):
|
|
def test_default_role_is_viewer(self) -> None:
|
|
user: User = make_user()
|
|
self.assertEqual(user.role, UserRole.VIEWER)
|
|
|
|
def test_role_properties(self) -> None:
|
|
admin: User = make_user(
|
|
username="a", email="a@x.com", role=UserRole.ADMIN
|
|
)
|
|
self.assertTrue(admin.is_admin_role)
|
|
self.assertFalse(admin.is_experimenter)
|
|
self.assertFalse(admin.is_approver)
|
|
self.assertFalse(admin.is_viewer)
|
|
|
|
exp: User = make_user(
|
|
username="e", email="e@x.com", role=UserRole.EXPERIMENTER
|
|
)
|
|
self.assertTrue(exp.is_experimenter)
|
|
|
|
appr: User = make_user(
|
|
username="ap", email="ap@x.com", role=UserRole.APPROVER
|
|
)
|
|
self.assertTrue(appr.is_approver)
|
|
|
|
viewer: User = make_user(
|
|
username="v", email="v@x.com", role=UserRole.VIEWER
|
|
)
|
|
self.assertTrue(viewer.is_viewer)
|
|
|
|
def test_uuid_primary_key(self) -> None:
|
|
user: User = make_user()
|
|
self.assertIsInstance(user.pk, uuid.UUID)
|
|
|
|
def test_str_representation(self) -> None:
|
|
user: User = make_user(username="hello")
|
|
self.assertEqual(str(user), "hello")
|