test_delete_user_likes.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from django.contrib.auth import get_user_model
  2. from django.test import RequestFactory
  3. from misago.categories.models import Category
  4. from misago.users.testutils import AuthenticatedUserTestCase
  5. from misago.threads import testutils
  6. from misago.threads.api.postendpoints.patch_post import patch_is_liked
  7. from misago.threads.models import Post
  8. UserModel = get_user_model()
  9. def get_mock_user():
  10. seed = UserModel.objects.count() + 1
  11. return UserModel.objects.create_user(
  12. "bob%s" % seed, "user%s@test.com" % seed, "Pass.123"
  13. )
  14. class DeleteUserLikesTests(AuthenticatedUserTestCase):
  15. def setUp(self):
  16. super().setUp()
  17. self.factory = RequestFactory()
  18. def get_request(self, user=None):
  19. request = self.factory.get("/customer/details")
  20. request.user = user or self.user
  21. request.user_ip = "127.0.0.1"
  22. return request
  23. def test_anonymize_user_likes(self):
  24. """post's last like is anonymized by user.anonymize_data"""
  25. category = Category.objects.get(slug="first-category")
  26. thread = testutils.post_thread(category)
  27. post = testutils.reply_thread(thread)
  28. post.acl = {"can_like": True}
  29. user = get_mock_user()
  30. patch_is_liked(self.get_request(self.user), post, 1)
  31. patch_is_liked(self.get_request(user), post, 1)
  32. user.delete_content()
  33. last_likes = Post.objects.get(pk=post.pk).last_likes
  34. self.assertEqual(
  35. last_likes, [{"id": self.user.id, "username": self.user.username}]
  36. )