from misago.users.datadownloads import request_user_data_download from misago.users.test import AuthenticatedUserTestCase class UserDataDownloadsApiTests(AuthenticatedUserTestCase): def setUp(self): super().setUp() self.link = "/api/users/%s/data-downloads/" % self.user.pk def test_get_other_user_exports_anonymous(self): """requests to api fails if user is anonymous""" self.logout_user() response = self.client.get(self.link) self.assertEqual(response.status_code, 403) self.assertEqual( response.json(), {"detail": "You have to sign in to perform this action."} ) def test_get_other_user_exports(self): """requests to api fails if user tries to access other user""" other_user = self.get_superuser() link = "/api/users/%s/data-downloads/" % other_user.pk response = self.client.get(link) self.assertEqual(response.status_code, 403) self.assertEqual( response.json(), {"detail": "You can't see other users data downloads."} ) def test_get_empty_list(self): """api returns empy list""" self.assertFalse(self.user.datadownload_set.exists()) response = self.client.get(self.link) self.assertEqual(response.status_code, 200) self.assertEqual(response.json(), []) def test_populated_list(self): """api returns list""" for _ in range(6): request_user_data_download(self.user) self.assertTrue(self.user.datadownload_set.exists()) response = self.client.get(self.link) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.json()), 5)