aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/tests
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 /pydis_site/apps/api/tests
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 'pydis_site/apps/api/tests')
-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"])