diff options
author | 2020-10-06 21:26:04 +0530 | |
---|---|---|
committer | 2020-10-06 21:26:04 +0530 | |
commit | 3c63323deea17a98a5c4ad899d868c9171edbacb (patch) | |
tree | 5222dbbe729f8812ca22ca0a637aac1134f737ee /pydis_site/apps | |
parent | overhaul create method to ignore conflicts and raise error when duplicates pr... (diff) |
refactor tests to use updated changes and add tests for UserListPagination
Diffstat (limited to 'pydis_site/apps')
-rw-r--r-- | pydis_site/apps/api/tests/test_users.py | 66 |
1 files changed, 64 insertions, 2 deletions
diff --git a/pydis_site/apps/api/tests/test_users.py b/pydis_site/apps/api/tests/test_users.py index affc2c48..fb22c627 100644 --- a/pydis_site/apps/api/tests/test_users.py +++ b/pydis_site/apps/api/tests/test_users.py @@ -123,7 +123,7 @@ class CreationTests(APISubdomainTestCase): self.assertEqual(response.status_code, 400) def test_returns_400_for_user_recreation(self): - """Return 400 if User is already present in database.""" + """Return 201 if User is already present in database as it skips User creation.""" url = reverse('bot:user-list', host='api') data = [{ 'id': 11, @@ -132,6 +132,26 @@ class CreationTests(APISubdomainTestCase): 'in_guild': True }] response = self.client.post(url, data=data) + self.assertEqual(response.status_code, 201) + + def test_returns_400_for_duplicate_request_users(self): + """Return 400 if 2 Users with same ID is passed in the request data.""" + url = reverse('bot:user-list', host='api') + data = [ + { + 'id': 11, + 'name': 'You saw nothing.', + 'discriminator': 112, + 'in_guild': True + }, + { + 'id': 11, + 'name': 'You saw nothing part 2.', + 'discriminator': 1122, + 'in_guild': False + } + ] + response = self.client.post(url, data=data) self.assertEqual(response.status_code, 400) @@ -213,7 +233,7 @@ class MultiPatchTests(APISubdomainTestCase): } ] response = self.client.patch(url, data=data) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, 404) def test_returns_400_for_bad_data(self): url = reverse("bot:user-bulk-patch", host="api") @@ -286,3 +306,45 @@ class UserModelTests(APISubdomainTestCase): def test_correct_username_formatting(self): """Tests the username property with both name and discriminator formatted together.""" self.assertEqual(self.user_with_roles.username, "Test User with two roles#0001") + + +class UserPaginatorTests(APISubdomainTestCase): + @classmethod + def setUpTestData(cls): + users = [] + for i in range(1, 10_001): + users.append(User( + id=i, + name=f"user{i}", + discriminator=1111, + in_guild=True + )) + cls.users = User.objects.bulk_create(users) + + def test_returns_single_page_response(self): + url = reverse("bot:user-list", host="api") + response = self.client.get(url).json() + self.assertIsNone(response["next_page_no"]) + self.assertIsNone(response["previous_page_no"]) + + def test_returns_next_page_number(self): + User.objects.create( + id=10_001, + name="user10001", + discriminator=1111, + in_guild=True + ) + url = reverse("bot:user-list", host="api") + response = self.client.get(url).json() + self.assertEqual(2, response["next_page_no"]) + + def test_returns_previous_page_number(self): + User.objects.create( + id=10_001, + name="user10001", + discriminator=1111, + in_guild=True + ) + url = reverse("bot:user-list", host="api") + response = self.client.get(url, {"page": 2}).json() + self.assertEqual(1, response["previous_page_no"]) |