test_user_dataexport_api.py 1.8 KB

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