# coding=utf-8 import unittest import pytest from tracim_backend.exceptions import RoleDoesNotExist from tracim_backend.models.roles import WorkspaceRoles class TestWorkspacesRoles(unittest.TestCase): """ Test for WorkspaceRoles Enum Object """ def test_workspace_roles__ok__all_list(self): roles = list(WorkspaceRoles) assert len(roles) == 5 for role in roles: assert role assert role.slug assert isinstance(role.slug, str) assert role.level or role.level == 0 assert isinstance(role.level, int) assert role.label assert isinstance(role.slug, str) assert WorkspaceRoles['READER'] assert WorkspaceRoles['NOT_APPLICABLE'] assert WorkspaceRoles['CONTRIBUTOR'] assert WorkspaceRoles['WORKSPACE_MANAGER'] assert WorkspaceRoles['CONTENT_MANAGER'] def test__workspace_roles__ok__check_model(self): role = WorkspaceRoles.WORKSPACE_MANAGER assert role assert role.slug assert isinstance(role.slug, str) assert role.level assert isinstance(role.level, int) assert role.label assert isinstance(role.slug, str) def test_workspace_roles__ok__get_all_valid_roles(self): roles = WorkspaceRoles.get_all_valid_role() assert len(roles) == 4 for role in roles: assert role assert role.slug assert isinstance(role.slug, str) assert role.level or role.level == 0 assert isinstance(role.level, int) assert role.level > 0 assert role.label assert isinstance(role.slug, str) def test_workspace_roles__ok__get_role__from_level__ok__nominal_case(self): role = WorkspaceRoles.get_role_from_level(0) assert role assert role.slug assert isinstance(role.slug, str) assert role.level == 0 assert isinstance(role.level, int) assert role.label assert isinstance(role.slug, str) def test_workspace_roles__ok__get_role__from_slug__ok__nominal_case(self): role = WorkspaceRoles.get_role_from_slug('reader') assert role assert role.slug assert isinstance(role.slug, str) assert role.level > 0 assert isinstance(role.level, int) assert role.label assert isinstance(role.slug, str) def test_workspace_roles__ok__get_role__from_level__err__role_does_not_exist(self): # nopep8 with pytest.raises(RoleDoesNotExist): WorkspaceRoles.get_role_from_level(-1000) def test_workspace_roles__ok__get_role__from_slug__err__role_does_not_exist(self): # nopep8 with pytest.raises(RoleDoesNotExist): WorkspaceRoles.get_role_from_slug('this slug does not exist')