|
@@ -1,7 +1,7 @@
|
|
from django.urls import reverse
|
|
from django.urls import reverse
|
|
|
|
|
|
|
|
+from misago.core.utils import serialize_datetime
|
|
from misago.threads import testutils
|
|
from misago.threads import testutils
|
|
-from misago.threads.serializers import PostLikeSerializer
|
|
|
|
|
|
|
|
from .test_threads_api import ThreadsApiTestCase
|
|
from .test_threads_api import ThreadsApiTestCase
|
|
|
|
|
|
@@ -25,14 +25,20 @@ class ThreadPostLikesApiTestCase(ThreadsApiTestCase):
|
|
self.override_acl({'can_see_posts_likes': 0})
|
|
self.override_acl({'can_see_posts_likes': 0})
|
|
|
|
|
|
response = self.client.get(self.api_link)
|
|
response = self.client.get(self.api_link)
|
|
- self.assertContains(response, "You can't see who liked this post.", status_code=403)
|
|
|
|
|
|
+ self.assertEqual(response.status_code, 403)
|
|
|
|
+ self.assertEqual(response.json(), {
|
|
|
|
+ 'detail': "You can't see who liked this post.",
|
|
|
|
+ })
|
|
|
|
|
|
def test_no_permission_to_list(self):
|
|
def test_no_permission_to_list(self):
|
|
"""api errors if user has no permission to see likes, but can see likes count"""
|
|
"""api errors if user has no permission to see likes, but can see likes count"""
|
|
self.override_acl({'can_see_posts_likes': 1})
|
|
self.override_acl({'can_see_posts_likes': 1})
|
|
|
|
|
|
response = self.client.get(self.api_link)
|
|
response = self.client.get(self.api_link)
|
|
- self.assertContains(response, "You can't see who liked this post.", status_code=403)
|
|
|
|
|
|
+ self.assertEqual(response.status_code, 403)
|
|
|
|
+ self.assertEqual(response.json(), {
|
|
|
|
+ 'detail': "You can't see who liked this post.",
|
|
|
|
+ })
|
|
|
|
|
|
def test_no_likes(self):
|
|
def test_no_likes(self):
|
|
"""api returns empty list if post has no likes"""
|
|
"""api returns empty list if post has no likes"""
|
|
@@ -49,22 +55,22 @@ class ThreadPostLikesApiTestCase(ThreadsApiTestCase):
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(
|
|
self.assertEqual(
|
|
response.json(), [
|
|
response.json(), [
|
|
- PostLikeSerializer({
|
|
|
|
|
|
+ {
|
|
'id': other_like.id,
|
|
'id': other_like.id,
|
|
- 'liked_on': other_like.liked_on,
|
|
|
|
- 'liker_id': other_like.liker_id,
|
|
|
|
- 'liker_name': other_like.liker_name,
|
|
|
|
- 'liker_slug': other_like.liker_slug,
|
|
|
|
- 'liker__avatars': self.user.avatars,
|
|
|
|
- }).data,
|
|
|
|
- PostLikeSerializer({
|
|
|
|
|
|
+ 'liked_on': serialize_datetime(other_like.liked_on),
|
|
|
|
+ 'liker_id': self.user.id,
|
|
|
|
+ 'username': self.user.username,
|
|
|
|
+ 'avatars': self.user.avatars,
|
|
|
|
+ 'url': self.user.get_absolute_url(),
|
|
|
|
+ },
|
|
|
|
+ {
|
|
'id': like.id,
|
|
'id': like.id,
|
|
- 'liked_on': like.liked_on,
|
|
|
|
- 'liker_id': like.liker_id,
|
|
|
|
- 'liker_name': like.liker_name,
|
|
|
|
- 'liker_slug': like.liker_slug,
|
|
|
|
- 'liker__avatars': self.user.avatars,
|
|
|
|
- }).data,
|
|
|
|
|
|
+ 'liked_on': serialize_datetime(like.liked_on),
|
|
|
|
+ 'liker_id': self.user.id,
|
|
|
|
+ 'username': self.user.username,
|
|
|
|
+ 'avatars': self.user.avatars,
|
|
|
|
+ 'url': self.user.get_absolute_url(),
|
|
|
|
+ },
|
|
]
|
|
]
|
|
)
|
|
)
|
|
|
|
|
|
@@ -79,21 +85,21 @@ class ThreadPostLikesApiTestCase(ThreadsApiTestCase):
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(
|
|
self.assertEqual(
|
|
response.json(), [
|
|
response.json(), [
|
|
- PostLikeSerializer({
|
|
|
|
|
|
+ {
|
|
'id': other_like.id,
|
|
'id': other_like.id,
|
|
- 'liked_on': other_like.liked_on,
|
|
|
|
- 'liker_id': other_like.liker_id,
|
|
|
|
- 'liker_name': other_like.liker_name,
|
|
|
|
- 'liker_slug': other_like.liker_slug,
|
|
|
|
- 'liker__avatars': None,
|
|
|
|
- }).data,
|
|
|
|
- PostLikeSerializer({
|
|
|
|
|
|
+ 'liked_on': serialize_datetime(other_like.liked_on),
|
|
|
|
+ 'liker_id': None,
|
|
|
|
+ 'username': self.user.username,
|
|
|
|
+ 'avatars': None,
|
|
|
|
+ 'url': None,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
'id': like.id,
|
|
'id': like.id,
|
|
- 'liked_on': like.liked_on,
|
|
|
|
- 'liker_id': like.liker_id,
|
|
|
|
- 'liker_name': like.liker_name,
|
|
|
|
- 'liker_slug': like.liker_slug,
|
|
|
|
- 'liker__avatars': None,
|
|
|
|
- }).data,
|
|
|
|
|
|
+ 'liked_on': serialize_datetime(like.liked_on),
|
|
|
|
+ 'liker_id': None,
|
|
|
|
+ 'username': self.user.username,
|
|
|
|
+ 'avatars': None,
|
|
|
|
+ 'url': None,
|
|
|
|
+ },
|
|
]
|
|
]
|
|
)
|
|
)
|