test_signatures.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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.users import signatures
  6. User = get_user_model()
  7. cache_versions = {"acl": "abcdefg"}
  8. class MockRequest(object):
  9. scheme = 'http'
  10. def get_host(self):
  11. return '127.0.0.1:8000'
  12. class UserSignatureTests(TestCase):
  13. def test_user_signature_and_valid_checksum_is_set(self):
  14. user = User.objects.create_user('Bob', 'bob@bob.com')
  15. user.signature = "Test"
  16. user.signature_parsed = "Test"
  17. user.signature_checksum = "Test"
  18. user.save()
  19. request = Mock(scheme="http", get_host=Mock(return_value="127.0.0.1:800"))
  20. user_acl = get_user_acl(user, cache_versions)
  21. signatures.set_user_signature(request, user, user_acl, "Changed")
  22. assert user.signature == "Changed"
  23. assert user.signature_parsed == "<p>Changed</p>"
  24. assert user.signature_checksum
  25. assert signatures.is_user_signature_valid(user)
  26. def test_user_signature_is_cleared(self):
  27. user = User.objects.create_user('Bob', 'bob@bob.com')
  28. user.signature = "Test"
  29. user.signature_parsed = "Test"
  30. user.signature_checksum = "Test"
  31. user.save()
  32. request = Mock(scheme="http", get_host=Mock(return_value="127.0.0.1:800"))
  33. user_acl = get_user_acl(user, cache_versions)
  34. signatures.set_user_signature(request, user, user_acl, "")
  35. assert not user.signature
  36. assert not user.signature_parsed
  37. assert not user.signature_checksum
  38. def test_signature_validity_check_fails_for_incorrect_signature_checksum(self):
  39. user = User.objects.create_user('Bob', 'bob@bob.com')
  40. user.signature = "Test"
  41. user.signature_parsed = "Test"
  42. user.signature_checksum = "Test"
  43. user.save()
  44. assert not signatures.is_user_signature_valid(user)