aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/tests
diff options
context:
space:
mode:
authorGravatar Boris Muratov <[email protected]>2021-03-07 01:39:12 +0200
committerGravatar Boris Muratov <[email protected]>2021-03-07 01:39:12 +0200
commit3468d12b0c893bfa951e7baa85ada6a8716e5aef (patch)
tree24e9242041ce3ce489bd46391c9c804225486d3d /pydis_site/apps/api/tests
parentAmend top_channel_activity return type (diff)
Added test for metricity-review-data
Diffstat (limited to 'pydis_site/apps/api/tests')
-rw-r--r--pydis_site/apps/api/tests/test_users.py28
1 files changed, 25 insertions, 3 deletions
diff --git a/pydis_site/apps/api/tests/test_users.py b/pydis_site/apps/api/tests/test_users.py
index 69bbfefc..5851ac11 100644
--- a/pydis_site/apps/api/tests/test_users.py
+++ b/pydis_site/apps/api/tests/test_users.py
@@ -410,7 +410,7 @@ class UserMetricityTests(APISubdomainTestCase):
joined_at = "foo"
total_messages = 1
total_blocks = 1
- self.mock_metricity_user(joined_at, total_messages, total_blocks)
+ self.mock_metricity_user(joined_at, total_messages, total_blocks, [])
# When
url = reverse('bot:user-metricity-data', args=[0], host='api')
@@ -442,7 +442,7 @@ class UserMetricityTests(APISubdomainTestCase):
{'exception': ObjectDoesNotExist, 'voice_banned': False},
]
- self.mock_metricity_user("foo", 1, 1)
+ self.mock_metricity_user("foo", 1, 1, [["bar", 1]])
for case in cases:
with self.subTest(exception=case['exception'], voice_banned=case['voice_banned']):
@@ -455,7 +455,27 @@ class UserMetricityTests(APISubdomainTestCase):
self.assertEqual(response.status_code, 200)
self.assertEqual(response.json()["voice_banned"], case["voice_banned"])
- def mock_metricity_user(self, joined_at, total_messages, total_blocks):
+ def test_metricity_review_data(self):
+ # Given
+ joined_at = "foo"
+ total_messages = 10
+ total_blocks = 1
+ channel_activity = [["bar", 4], ["buzz", 6]]
+ self.mock_metricity_user(joined_at, total_messages, total_blocks, channel_activity)
+
+ # When
+ url = reverse('bot:user-metricity-review-data', args=[0], host='api')
+ response = self.client.get(url)
+
+ # Then
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(response.json(), {
+ "joined_at": joined_at,
+ "top_channel_activity": channel_activity,
+ "total_messages": total_messages
+ })
+
+ def mock_metricity_user(self, joined_at, total_messages, total_blocks, top_channel_activity):
patcher = patch("pydis_site.apps.api.viewsets.bot.user.Metricity")
self.metricity = patcher.start()
self.addCleanup(patcher.stop)
@@ -463,6 +483,7 @@ class UserMetricityTests(APISubdomainTestCase):
self.metricity.user.return_value = dict(joined_at=joined_at)
self.metricity.total_messages.return_value = total_messages
self.metricity.total_message_blocks.return_value = total_blocks
+ self.metricity.top_channel_activity.return_value = top_channel_activity
def mock_no_metricity_user(self):
patcher = patch("pydis_site.apps.api.viewsets.bot.user.Metricity")
@@ -472,3 +493,4 @@ class UserMetricityTests(APISubdomainTestCase):
self.metricity.user.side_effect = NotFound()
self.metricity.total_messages.side_effect = NotFound()
self.metricity.total_message_blocks.side_effect = NotFound()
+ self.metricity.top_channel_activity.side_effect = NotFound()