)
- 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)