From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 2 Jul 2022 23:54:16 +0000 (-0700) Subject: Merge branch 'dev' into feature-frontend-task-queue X-Git-Tag: v1.8.0-beta.rc1~13^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92dd70098c2ae7e594042efd4373709324cd28d5;p=thirdparty%2Fpaperless-ngx.git Merge branch 'dev' into feature-frontend-task-queue --- 92dd70098c2ae7e594042efd4373709324cd28d5 diff --cc src/documents/tests/test_api.py index cd0ea414f1,e681f34e1b..373dc3e475 --- a/src/documents/tests/test_api.py +++ b/src/documents/tests/test_api.py @@@ -2426,55 -2569,79 +2572,133 @@@ class TestApiRemoteVersion(DirectoriesM ) + 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) ++ self.assertEqual(len(response.data), 0)