test_delete_user_likes.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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('bob%s' % seed, 'user%s@test.com' % seed, 'Pass.123')
  12. class DeleteUserLikesTests(AuthenticatedUserTestCase):
  13. def setUp(self):
  14. super(DeleteUserLikesTests, self).setUp()
  15. self.factory = RequestFactory()
  16. def get_request(self, user=None):
  17. request = self.factory.get('/customer/details')
  18. request.user = user or self.user
  19. request.user_ip = '127.0.0.1'
  20. return request
  21. def test_anonymize_user_likes(self):
  22. """post's last like is anonymized by user.anonymize_content"""
  23. category = Category.objects.get(slug='first-category')
  24. thread = testutils.post_thread(category)
  25. post = testutils.reply_thread(thread)
  26. post.acl = {'can_like': True}
  27. user = get_mock_user()
  28. patch_is_liked(self.get_request(self.user), post, 1)
  29. patch_is_liked(self.get_request(user), post, 1)
  30. user.delete_content()
  31. last_likes = Post.objects.get(pk=post.pk).last_likes
  32. self.assertEqual(last_likes, [
  33. {
  34. 'id': self.user.id,
  35. 'username': self.user.username,
  36. },
  37. ])