test_providers.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. from django.test import TestCase
  2. from misago.acl.providers import PermissionProviders
  3. from misago.conf import settings
  4. class PermissionProvidersTests(TestCase):
  5. def test_providers_are_not_loaded_on_container_init(self):
  6. providers = PermissionProviders()
  7. assert not providers._initialized
  8. assert not providers._providers
  9. assert not providers._annotators
  10. assert not providers._user_acl_serializers
  11. def test_container_loads_providers(self):
  12. providers = PermissionProviders()
  13. providers.load()
  14. assert providers._providers
  15. assert providers._annotators
  16. assert providers._user_acl_serializers
  17. def test_loading_providers_second_time_raises_runtime_error(self):
  18. providers = PermissionProviders()
  19. providers.load()
  20. with self.assertRaises(RuntimeError):
  21. providers.load()
  22. def test_container_returns_list_of_providers(self):
  23. providers = PermissionProviders()
  24. providers.load()
  25. providers_setting = settings.MISAGO_ACL_EXTENSIONS
  26. self.assertEqual(len(providers.list()), len(providers_setting))
  27. def test_container_returns_dict_of_providers(self):
  28. providers = PermissionProviders()
  29. providers.load()
  30. providers_setting = settings.MISAGO_ACL_EXTENSIONS
  31. self.assertEqual(len(providers.dict()), len(providers_setting))
  32. def test_accessing_providers_list_before_load_raises_assertion_error(self):
  33. providers = PermissionProviders()
  34. with self.assertRaises(AssertionError):
  35. providers.list()
  36. def test_accessing_providers_dict_before_load_raises_assertion_error(self):
  37. providers = PermissionProviders()
  38. with self.assertRaises(AssertionError):
  39. providers.dict()
  40. def test_getter_returns_registered_type_annotator(self):
  41. class TestType(object):
  42. pass
  43. def test_annotator():
  44. pass
  45. providers = PermissionProviders()
  46. providers.acl_annotator(TestType, test_annotator)
  47. providers.load()
  48. assert test_annotator in providers.get_obj_type_annotators(TestType())
  49. def test_container_returns_list_of_user_acl_serializers(self):
  50. providers = PermissionProviders()
  51. providers.load()
  52. assert providers.get_user_acl_serializers()
  53. def test_getter_returns_registered_user_acl_serializer(self):
  54. def test_user_acl_serializer():
  55. pass
  56. providers = PermissionProviders()
  57. providers.user_acl_serializer(test_user_acl_serializer)
  58. providers.load()
  59. assert test_user_acl_serializer in providers.get_user_acl_serializers()