Rafał Pitoń 7 лет назад
Родитель
Сommit
c5e0b09b9e

+ 1 - 1
misago/users/api/users.py

@@ -223,7 +223,7 @@ class UserViewSet(viewsets.GenericViewSet):
         allow_self_only(request.user, pk, _("You can't request data export for other users."))
         allow_self_only(request.user, pk, _("You can't request data export for other users."))
 
 
         if is_user_data_export_in_progress(request.user):
         if is_user_data_export_in_progress(request.user):
-            raise PermissionDenied(_("You already data export in progress."))
+            raise PermissionDenied(_("You already have an data export in progress."))
             
             
         start_data_export_for_user(request.user)
         start_data_export_for_user(request.user)
 
 

+ 2 - 2
misago/users/tests/test_dataexport.py

@@ -42,7 +42,7 @@ class IsUserDataExportInProgressTests(AuthenticatedUserTestCase):
 
 
 
 
 class StartDataExportForUserTests(AuthenticatedUserTestCase):
 class StartDataExportForUserTests(AuthenticatedUserTestCase):
-    def test_util_creates_data_export_for_user(self):
+    def test_util_creates_data_export_for_user_with_them_as_requester(self):
         """start_data_export_for_user created valid data export for user"""
         """start_data_export_for_user created valid data export for user"""
         data_export = start_data_export_for_user(self.user)
         data_export = start_data_export_for_user(self.user)
 
 
@@ -51,7 +51,7 @@ class StartDataExportForUserTests(AuthenticatedUserTestCase):
         self.assertEqual(data_export.requester_name, self.user.username)
         self.assertEqual(data_export.requester_name, self.user.username)
         self.assertEqual(data_export.status, DataExport.STATUS_PENDING)
         self.assertEqual(data_export.status, DataExport.STATUS_PENDING)
 
 
-    def test_util_creates_data_export_for_user_with_request(self):
+    def test_util_creates_data_export_for_user_explicit_requester(self):
         """start_data_export_for_user created valid data export for user with other requester"""
         """start_data_export_for_user created valid data export for user with other requester"""
         requester = self.get_superuser()
         requester = self.get_superuser()
         data_export = start_data_export_for_user(self.user, requester)
         data_export = start_data_export_for_user(self.user, requester)

+ 49 - 0
misago/users/tests/test_user_dataexport_api.py

@@ -0,0 +1,49 @@
+from misago.users.dataexport import start_data_export_for_user
+from misago.users.testutils import AuthenticatedUserTestCase
+
+
+class UserStartDataExportApiTests(AuthenticatedUserTestCase):
+    def setUp(self):
+        super(UserStartDataExportApiTests, self).setUp()
+        self.link = '/api/users/%s/start-data-export/' % self.user.pk
+
+    def test_start_other_user_export_anonymous(self):
+        """requests to api fails if user is anonymous"""
+        self.logout_user()
+
+        response = self.client.post(self.link)
+        self.assertEqual(response.status_code, 403)
+        self.assertEqual(response.json(), {
+            'detail': "This action is not available to guests.",
+        })
+
+    def test_start_other_user_export(self):
+        """requests to api fails if user tries to access other user"""
+        other_user = self.get_superuser()
+        link = '/api/users/%s/start-data-export/' % other_user.pk
+
+        response = self.client.post(link)
+        self.assertEqual(response.status_code, 403)
+        self.assertEqual(response.json(), {
+            'detail': "You can\'t request data export for other users.",
+        })
+
+    def test_start_export_in_progress(self):
+        """request to api fails if user already has export in progress"""
+        start_data_export_for_user(self.user)
+
+        response = self.client.post(self.link)
+        self.assertEqual(response.status_code, 403)
+        self.assertEqual(response.json(), {
+            'detail': "You already have an data export in progress.",
+        })
+
+    def test_start_export(self):
+        """request to api fails if user already has export in progress"""
+        response = self.client.post(self.link)
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(response.json(), {
+            'detail': "ok",
+        })
+
+        self.assertTrue(self.user.dataexport_set.exists())

+ 0 - 18
misago/users/tests/test_userdataexport_api.py

@@ -1,18 +0,0 @@
-from misago.users.testutils import AuthenticatedUserTestCase
-
-
-class UserDataExportApiTests(AuthenticatedUserTestCase):
-    def setUp(self):
-        super(UserDataExportApiTests, self).setUp()
-        self.link = '/api/users/%s/start-data-export/' % self.user.pk
-
-    def test_other_user_export(self):
-        """requests to api error if user tries to access other user"""
-        other_user = self.get_superuser()
-        link = '/api/users/%s/start-data-export/' % other_user.pk
-
-        response = self.client.post(link)
-        self.assertEqual(response.status_code, 403)
-        self.assertEqual(response.json(), {
-            'detail': "You can\'t request data export for other users.",
-        })