test_signatures.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from unittest.mock import Mock
  2. from django.contrib.auth import get_user_model
  3. from django.test import TestCase
  4. from misago.acl.useracl import get_user_acl
  5. from misago.conftest import get_cache_versions
  6. from misago.users import signatures
  7. User = get_user_model()
  8. cache_versions = get_cache_versions()
  9. class MockRequest(object):
  10. scheme = "http"
  11. def get_host(self):
  12. return "127.0.0.1:8000"
  13. class UserSignatureTests(TestCase):
  14. def test_user_signature_and_valid_checksum_is_set(self):
  15. user = User.objects.create_user("Bob", "bob@bob.com")
  16. user.signature = "Test"
  17. user.signature_parsed = "Test"
  18. user.signature_checksum = "Test"
  19. user.save()
  20. request = Mock(scheme="http", get_host=Mock(return_value="127.0.0.1:800"))
  21. user_acl = get_user_acl(user, cache_versions)
  22. signatures.set_user_signature(request, user, user_acl, "Changed")
  23. assert user.signature == "Changed"
  24. assert user.signature_parsed == "<p>Changed</p>"
  25. assert user.signature_checksum
  26. assert signatures.is_user_signature_valid(user)
  27. def test_user_signature_is_cleared(self):
  28. user = User.objects.create_user("Bob", "bob@bob.com")
  29. user.signature = "Test"
  30. user.signature_parsed = "Test"
  31. user.signature_checksum = "Test"
  32. user.save()
  33. request = Mock(scheme="http", get_host=Mock(return_value="127.0.0.1:800"))
  34. user_acl = get_user_acl(user, cache_versions)
  35. signatures.set_user_signature(request, user, user_acl, "")
  36. assert not user.signature
  37. assert not user.signature_parsed
  38. assert not user.signature_checksum
  39. def test_signature_validity_check_fails_for_incorrect_signature_checksum(self):
  40. user = User.objects.create_user("Bob", "bob@bob.com")
  41. user.signature = "Test"
  42. user.signature_parsed = "Test"
  43. user.signature_checksum = "Test"
  44. user.save()
  45. assert not signatures.is_user_signature_valid(user)