]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Merge branch 'dev' into feature-frontend-task-queue
authorshamoon <4887959+shamoon@users.noreply.github.com>
Sat, 2 Jul 2022 23:54:16 +0000 (16:54 -0700)
committerGitHub <noreply@github.com>
Sat, 2 Jul 2022 23:54:16 +0000 (16:54 -0700)
1  2 
src/documents/models.py
src/documents/serialisers.py
src/documents/tests/test_api.py
src/documents/views.py

Simple merge
Simple merge
index cd0ea414f1ac0bf55e48589e93e22fd7f0969029,e681f34e1b67f69a6878f64738fbecb5291ec49c..373dc3e4753642a8e20f3e5ff325e95e2442dbc1
@@@ -2426,55 -2569,79 +2572,133 @@@ class TestApiRemoteVersion(DirectoriesM
          )
  
  
-         self.assertEqual(len(response.data), 0)
+ class TestApiStoragePaths(DirectoriesMixin, APITestCase):
+     ENDPOINT = "/api/storage_paths/"
+     def setUp(self) -> None:
+         super().setUp()
+         user = User.objects.create(username="temp_admin")
+         self.client.force_authenticate(user=user)
+         self.sp1 = StoragePath.objects.create(name="sp1", path="Something/{checksum}")
+     def test_api_get_storage_path(self):
+         """
+         GIVEN:
+             - API request to get all storage paths
+         WHEN:
+             - API is called
+         THEN:
+             - Existing storage paths are returned
+         """
+         response = self.client.get(self.ENDPOINT, format="json")
+         self.assertEqual(response.status_code, 200)
+         self.assertEqual(response.status_code, 200)
+         self.assertEqual(response.data["count"], 1)
+         resp_storage_path = response.data["results"][0]
+         self.assertEqual(resp_storage_path["id"], self.sp1.id)
+         self.assertEqual(resp_storage_path["path"], self.sp1.path)
+     def test_api_create_storage_path(self):
+         """
+         GIVEN:
+             - API request to create a storage paths
+         WHEN:
+             - API is called
+         THEN:
+             - Correct HTTP response
+             - New storage path is created
+         """
+         response = self.client.post(
+             self.ENDPOINT,
+             json.dumps(
+                 {
+                     "name": "A storage path",
+                     "path": "Somewhere/{asn}",
+                 },
+             ),
+             content_type="application/json",
+         )
+         self.assertEqual(response.status_code, 201)
+         self.assertEqual(StoragePath.objects.count(), 2)
+     def test_api_create_invalid_storage_path(self):
+         """
+         GIVEN:
+             - API request to create a storage paths
+             - Storage path format is incorrect
+         WHEN:
+             - API is called
+         THEN:
+             - Correct HTTP 400 response
+             - No storage path is created
+         """
+         response = self.client.post(
+             self.ENDPOINT,
+             json.dumps(
+                 {
+                     "name": "Another storage path",
+                     "path": "Somewhere/{correspdent}",
+                 },
+             ),
+             content_type="application/json",
+         )
+         self.assertEqual(response.status_code, 400)
+         self.assertEqual(StoragePath.objects.count(), 1)
++
++
 +class TestTasks(APITestCase):
 +    ENDPOINT = "/api/tasks/"
 +    ENDPOINT_ACKOWLEDGE = "/api/acknowledge_tasks/"
 +
 +    def setUp(self):
 +        super().setUp()
 +
 +        self.user = User.objects.create_superuser(username="temp_admin")
 +        self.client.force_authenticate(user=self.user)
 +
 +    def test_get_tasks(self):
 +
 +        task_id1 = str(uuid.uuid4())
 +        PaperlessTask.objects.create(task_id=task_id1)
 +        Task.objects.create(
 +            id=task_id1,
 +            started=timezone.now() - datetime.timedelta(seconds=30),
 +            stopped=timezone.now(),
 +            func="documents.tasks.consume_file",
 +        )
 +        task_id2 = str(uuid.uuid4())
 +        PaperlessTask.objects.create(task_id=task_id2)
 +
 +        response = self.client.get(self.ENDPOINT)
 +
 +        self.assertEqual(response.status_code, 200)
 +        self.assertEqual(len(response.data), 2)
 +        returned_task1 = response.data[1]
 +        returned_task2 = response.data[0]
 +        self.assertEqual(returned_task1["task_id"], task_id1)
 +        self.assertEqual(returned_task1["status"], "complete")
 +        self.assertIsNotNone(returned_task1["attempted_task"])
 +        self.assertEqual(returned_task2["task_id"], task_id2)
 +        self.assertEqual(returned_task2["status"], "queued")
 +        self.assertIsNone(returned_task2["attempted_task"])
 +
 +    def test_acknowledge_tasks(self):
 +
 +        task_id = str(uuid.uuid4())
 +        task = PaperlessTask.objects.create(task_id=task_id)
 +
 +        response = self.client.get(self.ENDPOINT)
 +        self.assertEqual(len(response.data), 1)
 +
 +        response = self.client.post(
 +            self.ENDPOINT_ACKOWLEDGE,
 +            {"tasks": [task.id]},
 +        )
 +        self.assertEqual(response.status_code, 200)
 +
 +        response = self.client.get(self.ENDPOINT)
++        self.assertEqual(len(response.data), 0)
Simple merge