Просмотр исходного кода

Add explicit json comparisions to postlikes api tests

Rafał Pitoń 7 лет назад
Родитель
Сommit
f392ea2138
1 измененных файлов с 37 добавлено и 31 удалено
  1. 37 31
      misago/threads/tests/test_thread_postlikes_api.py

+ 37 - 31
misago/threads/tests/test_thread_postlikes_api.py

@@ -1,7 +1,7 @@
 from django.urls import reverse
 
+from misago.core.utils import serialize_datetime
 from misago.threads import testutils
-from misago.threads.serializers import PostLikeSerializer
 
 from .test_threads_api import ThreadsApiTestCase
 
@@ -25,14 +25,20 @@ class ThreadPostLikesApiTestCase(ThreadsApiTestCase):
         self.override_acl({'can_see_posts_likes': 0})
 
         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):
         """api errors if user has no permission to see likes, but can see likes count"""
         self.override_acl({'can_see_posts_likes': 1})
 
         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):
         """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.json(), [
-                PostLikeSerializer({
+                {
                     '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,
-                    '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.json(), [
-                PostLikeSerializer({
+                {
                     '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,
-                    '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,
+                },
             ]
         )