test_user_datadownloads_api.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from misago.users.datadownloads import request_user_data_download
  2. from misago.users.testutils import AuthenticatedUserTestCase
  3. class UserDataDownloadsApiTests(AuthenticatedUserTestCase):
  4. def setUp(self):
  5. super().setUp()
  6. self.link = "/api/users/%s/data-downloads/" % self.user.pk
  7. def test_get_other_user_exports_anonymous(self):
  8. """requests to api fails if user is anonymous"""
  9. self.logout_user()
  10. response = self.client.get(self.link)
  11. self.assertEqual(response.status_code, 403)
  12. self.assertEqual(
  13. response.json(), {"detail": "You have to sign in to perform this action."}
  14. )
  15. def test_get_other_user_exports(self):
  16. """requests to api fails if user tries to access other user"""
  17. other_user = self.get_superuser()
  18. link = "/api/users/%s/data-downloads/" % other_user.pk
  19. response = self.client.get(link)
  20. self.assertEqual(response.status_code, 403)
  21. self.assertEqual(
  22. response.json(), {"detail": "You can't see other users data downloads."}
  23. )
  24. def test_get_empty_list(self):
  25. """api returns empy list"""
  26. self.assertFalse(self.user.datadownload_set.exists())
  27. response = self.client.get(self.link)
  28. self.assertEqual(response.status_code, 200)
  29. self.assertEqual(response.json(), [])
  30. def test_populated_list(self):
  31. """api returns list"""
  32. for _ in range(6):
  33. request_user_data_download(self.user)
  34. self.assertTrue(self.user.datadownload_set.exists())
  35. response = self.client.get(self.link)
  36. self.assertEqual(response.status_code, 200)
  37. self.assertEqual(len(response.json()), 5)