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

Remove assertContains from user avatar api tests

rafalp 6 лет назад
Родитель
Сommit
e6a3b4b28e
1 измененных файлов с 72 добавлено и 20 удалено
  1. 72 20
      misago/users/tests/test_user_avatar_api.py

+ 72 - 20
misago/users/tests/test_user_avatar_api.py

@@ -78,26 +78,39 @@ class UserAvatarTests(AuthenticatedUserTestCase):
         self.user.save()
 
         response = self.client.get(self.link)
-        self.assertContains(response, "Your avatar is pwnt", status_code=403)
+        self.assertEqual(response.status_code, 403)
+        self.assertEqual(response.json(), {
+            "detail": "Your avatar is locked. You can't change it.",
+            "reason": "<p>Your avatar is pwnt.</p>",
+        })
 
     def test_other_user_avatar(self):
         """requests to api error if user tries to access other user"""
         self.logout_user()
 
         response = self.client.get(self.link)
-        self.assertContains(response, "You have to sign in", status_code=403)
+        self.assertEqual(response.status_code, 403)
+        self.assertEqual(response.json(), {
+            "detail": "You have to sign in to perform this action.",
+        })
 
         self.login_user(
             UserModel.objects.create_user("BobUser", "bob@bob.com", self.USER_PASSWORD)
         )
 
         response = self.client.get(self.link)
-        self.assertContains(response, "can't change other users avatars", status_code=403)
+        self.assertEqual(response.status_code, 403)
+        self.assertEqual(response.json(), {
+            "detail": "You can't change other users avatars.",
+        })
 
     def test_empty_requests(self):
         """empty request errors with code 400"""
         response = self.client.post(self.link)
-        self.assertContains(response, "Unknown avatar type.", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "Unknown avatar type.",
+        })
 
     def test_failed_gravatar_request(self):
         """no gravatar RPC fails"""
@@ -105,7 +118,10 @@ class UserAvatarTests(AuthenticatedUserTestCase):
         self.user.save()
 
         response = self.client.post(self.link, data={'avatar': 'gravatar'})
-        self.assertContains(response, "No Gravatar is associated", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "No Gravatar is associated with your e-mail address.",
+        })
 
     def test_successful_gravatar_request(self):
         """gravatar RPC passes"""
@@ -113,21 +129,30 @@ class UserAvatarTests(AuthenticatedUserTestCase):
         self.user.save()
 
         response = self.client.post(self.link, data={'avatar': 'gravatar'})
-        self.assertContains(response, "Gravatar was downloaded and set")
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(
+            response.json()["detail"], "Gravatar was downloaded and set as new avatar."
+        )
 
         self.assertOldAvatarsAreDeleted(self.user)
 
     def test_generation_request(self):
         """generated avatar is set"""
         response = self.client.post(self.link, data={'avatar': 'generated'})
-        self.assertContains(response, "New avatar based on your account")
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(
+            response.json()["detail"], "New avatar based on your account was set."
+        )
 
         self.assertOldAvatarsAreDeleted(self.user)
 
     def test_avatar_upload_and_crop(self):
         """avatar can be uploaded and cropped"""
         response = self.client.post(self.link, data={'avatar': 'upload'})
-        self.assertContains(response, "No file was sent.", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "No file was sent.",
+        })
 
         with open(TEST_AVATAR_PATH, 'rb') as avatar:
             response = self.client.post(self.link, data={'avatar': 'upload', 'image': avatar})
@@ -160,7 +185,9 @@ class UserAvatarTests(AuthenticatedUserTestCase):
 
         response_json = response.json()
         self.assertEqual(response.status_code, 200)
-        self.assertContains(response, "Uploaded avatar was set.")
+        self.assertEqual(
+            response.json()["detail"], "Uploaded avatar was set."
+        )
 
         self.assertFalse(self.get_current_user().avatar_tmp)
         self.assertOldAvatarsAreDeleted(self.user)
@@ -183,7 +210,10 @@ class UserAvatarTests(AuthenticatedUserTestCase):
             }),
             content_type="application/json",
         )
-        self.assertContains(response, "This avatar type is not allowed.", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "This avatar type is not allowed.",
+        })
 
         response = self.client.post(
             self.link,
@@ -199,7 +229,10 @@ class UserAvatarTests(AuthenticatedUserTestCase):
             }),
             content_type="application/json",
         )
-        self.assertContains(response, "Avatar was re-cropped.")
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(
+            response.json()["detail"], "Avatar was re-cropped."
+        )
         self.assertOldAvatarsAreDeleted(self.user)
 
         # delete user avatars, test if it deletes src and tmp
@@ -217,8 +250,10 @@ class UserAvatarTests(AuthenticatedUserTestCase):
         self.assertEqual(response.status_code, 200)
 
         response = self.client.post(self.link, data={'avatar': 'galleries', 'image': 123})
-
-        self.assertContains(response, "This avatar type is not allowed.", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "This avatar type is not allowed.",
+        })
 
     def test_gallery_image_validation(self):
         """gallery validates image to set"""
@@ -234,7 +269,10 @@ class UserAvatarTests(AuthenticatedUserTestCase):
                 'avatar': 'galleries',
             },
         )
-        self.assertContains(response, "Incorrect image.", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "Incorrect image.",
+        })
 
         # invalid id is handled
         response = self.client.post(
@@ -244,7 +282,10 @@ class UserAvatarTests(AuthenticatedUserTestCase):
                 'image': 'asdsadsadsa',
             },
         )
-        self.assertContains(response, "Incorrect image.", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "Incorrect image.",
+        })
 
         # nonexistant image is handled
         response = self.client.get(self.link)
@@ -261,13 +302,19 @@ class UserAvatarTests(AuthenticatedUserTestCase):
                 'image': test_avatar + 5000,
             },
         )
-        self.assertContains(response, "Incorrect image.", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "Incorrect image.",
+        })
 
         # default gallery image is handled
         AvatarGallery.objects.filter(pk=test_avatar).update(gallery=gallery.DEFAULT_GALLERY)
 
         response = self.client.post(self.link, data={'avatar': 'galleries', 'image': test_avatar})
-        self.assertContains(response, "Incorrect image.", status_code=400)
+        self.assertEqual(response.status_code, 400)
+        self.assertEqual(response.json(), {
+            "detail": "Incorrect image.",
+        })
 
     def test_gallery_set_valid_avatar(self):
         """its possible to set avatar from gallery"""
@@ -287,8 +334,10 @@ class UserAvatarTests(AuthenticatedUserTestCase):
                 'image': test_avatar,
             },
         )
-
-        self.assertContains(response, "Avatar from gallery was set.")
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(
+            response.json()["detail"], "Avatar from gallery was set."
+        )
         self.assertOldAvatarsAreDeleted(self.user)
 
 
@@ -309,7 +358,10 @@ class UserAvatarModerationTests(AuthenticatedUserTestCase):
         })
 
         response = self.client.get(self.link)
-        self.assertContains(response, "can't moderate avatars", status_code=403)
+        self.assertEqual(response.status_code, 403)
+        self.assertEqual(response.json(), {
+            "detail": "You can't moderate avatars.",
+        })
 
     def test_moderate_avatar(self):
         """moderate avatar"""