From 8eb931f6f64c30aa40c3a0d6fd4c6550a3f6485b Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 10 Feb 2026 18:42:20 -0800 Subject: [PATCH] fix backend tests, schema --- src/documents/tests/test_bulk_edit.py | 5 ++-- src/documents/views.py | 35 ++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/documents/tests/test_bulk_edit.py b/src/documents/tests/test_bulk_edit.py index 9ce5d05e7..b3c5f9f28 100644 --- a/src/documents/tests/test_bulk_edit.py +++ b/src/documents/tests/test_bulk_edit.py @@ -984,9 +984,8 @@ class TestPDFActions(DirectoriesMixin, TestCase): """ with self.assertLogs("paperless.bulk_edit", level="INFO") as cm: result = bulk_edit.rotate([self.doc2.id, self.img_doc.id], 90) - output_str = cm.output[1] - expected_str = "Document 4 is not a PDF, skipping rotation" - self.assertIn(expected_str, output_str) + expected_str = f"Document {self.img_doc.id} is not a PDF, skipping rotation" + self.assertTrue(any(expected_str in line for line in cm.output)) self.assertEqual(mock_consume_delay.call_count, 1) consumable, overrides = mock_consume_delay.call_args[0] self.assertEqual(consumable.root_document_id, self.doc2.id) diff --git a/src/documents/views.py b/src/documents/views.py index 3f1ddf270..d95e5dbaa 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -805,6 +805,15 @@ class DocumentViewSet( ) return super().get_serializer(*args, **kwargs) + @extend_schema( + operation_id="documents_root", + responses=inline_serializer( + name="DocumentRootResponse", + fields={ + "root_id": serializers.IntegerField(), + }, + ), + ) @action(methods=["get"], detail=True, url_path="root") def root(self, request, pk=None): try: @@ -1494,6 +1503,13 @@ class DocumentViewSet( "Error emailing documents, check logs for more detail.", ) + @extend_schema( + operation_id="documents_update_version", + request=DocumentVersionSerializer, + responses={ + 200: OpenApiTypes.STR, + }, + ) @action(methods=["post"], detail=True, parser_classes=[parsers.MultiPartParser]) def update_version(self, request, pk=None): serializer = DocumentVersionSerializer(data=request.data) @@ -1552,10 +1568,27 @@ class DocumentViewSet( "Error updating document, check logs for more detail.", ) + @extend_schema( + operation_id="documents_delete_version", + parameters=[ + OpenApiParameter( + name="version_id", + type=OpenApiTypes.INT, + location=OpenApiParameter.PATH, + ), + ], + responses=inline_serializer( + name="DeleteDocumentVersionResult", + fields={ + "result": serializers.CharField(), + "current_version_id": serializers.IntegerField(), + }, + ), + ) @action( methods=["delete"], detail=True, - url_path="versions/(?P[^/.]+)", + url_path=r"versions/(?P\d+)", ) def delete_version(self, request, pk=None, version_id=None): try: