test_providers.py 2.3 KB

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