test_patching_user_acl_in_tests.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from django.contrib.auth import get_user_model
  2. from django.test import TestCase
  3. from misago.acl import useracl
  4. from misago.acl.test import patch_user_acl
  5. User = get_user_model()
  6. cache_versions = {"acl": "abcdefgh"}
  7. class PatchingUserACLInTestsTests(TestCase):
  8. @patch_user_acl
  9. def test_decorator_adds_patching_function_to_test(self, patch_user_acl):
  10. assert patch_user_acl
  11. @patch_user_acl
  12. def test_patching_function_changes_user_permission_value(self, patch_user_acl):
  13. user = User.objects.create_user("User", "user@example.com")
  14. patch_user_acl(user, {"can_rename_users": 123})
  15. user_acl = useracl.get_user_acl(user, cache_versions)
  16. assert user_acl["can_rename_users"] == 123
  17. @patch_user_acl
  18. def test_patching_function_adds_user_permission(self, patch_user_acl):
  19. user = User.objects.create_user("User", "user@example.com")
  20. patch_user_acl(user, {"new_user_permission": 123})
  21. user_acl = useracl.get_user_acl(user, cache_versions)
  22. assert user_acl["new_user_permission"] == 123
  23. def test_acl_patches_are_removed_after_test(self):
  24. user = User.objects.create_user("User", "user@example.com")
  25. @patch_user_acl
  26. def test_function(patch_user_acl):
  27. patch_user_acl(user, {"is_patched": True})
  28. user_acl = useracl.get_user_acl(user, cache_versions)
  29. assert user_acl["is_patched"]
  30. user_acl = useracl.get_user_acl(user, cache_versions)
  31. assert "is_patched" not in user_acl