aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar RohanJnr <[email protected]>2020-10-06 21:26:04 +0530
committerGravatar RohanJnr <[email protected]>2020-10-06 21:26:04 +0530
commit3c63323deea17a98a5c4ad899d868c9171edbacb (patch)
tree5222dbbe729f8812ca22ca0a637aac1134f737ee
parentoverhaul 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 '')
-rw-r--r--pydis_site/apps/api/tests/test_users.py66
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"])