mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Fix: Rotation fails due to celery chord (#6306)
Use Celery immutable signature so it does not take the result of the header task
This commit is contained in:
		@@ -195,7 +195,7 @@ def rotate(doc_ids: list[int], degrees: int):
 | 
			
		||||
            logger.exception(f"Error rotating document {doc.id}: {e}")
 | 
			
		||||
 | 
			
		||||
    if len(affected_docs) > 0:
 | 
			
		||||
        bulk_update_task = bulk_update_documents.s(document_ids=affected_docs)
 | 
			
		||||
        bulk_update_task = bulk_update_documents.si(document_ids=affected_docs)
 | 
			
		||||
        chord(header=rotate_tasks, body=bulk_update_task).delay()
 | 
			
		||||
 | 
			
		||||
    return "OK"
 | 
			
		||||
 
 | 
			
		||||
@@ -463,7 +463,7 @@ class TestPDFActions(DirectoriesMixin, TestCase):
 | 
			
		||||
 | 
			
		||||
        mock_consume_file.assert_not_called()
 | 
			
		||||
 | 
			
		||||
    @mock.patch("documents.tasks.bulk_update_documents.s")
 | 
			
		||||
    @mock.patch("documents.tasks.bulk_update_documents.si")
 | 
			
		||||
    @mock.patch("documents.tasks.update_document_archive_file.s")
 | 
			
		||||
    @mock.patch("celery.chord.delay")
 | 
			
		||||
    def test_rotate(self, mock_chord, mock_update_document, mock_update_documents):
 | 
			
		||||
@@ -482,7 +482,7 @@ class TestPDFActions(DirectoriesMixin, TestCase):
 | 
			
		||||
        mock_chord.assert_called_once()
 | 
			
		||||
        self.assertEqual(result, "OK")
 | 
			
		||||
 | 
			
		||||
    @mock.patch("documents.tasks.bulk_update_documents.s")
 | 
			
		||||
    @mock.patch("documents.tasks.bulk_update_documents.si")
 | 
			
		||||
    @mock.patch("documents.tasks.update_document_archive_file.s")
 | 
			
		||||
    @mock.patch("pikepdf.Pdf.save")
 | 
			
		||||
    def test_rotate_with_error(
 | 
			
		||||
@@ -510,7 +510,7 @@ class TestPDFActions(DirectoriesMixin, TestCase):
 | 
			
		||||
            self.assertIn(expected_str, error_str)
 | 
			
		||||
            mock_update_archive_file.assert_not_called()
 | 
			
		||||
 | 
			
		||||
    @mock.patch("documents.tasks.bulk_update_documents.s")
 | 
			
		||||
    @mock.patch("documents.tasks.bulk_update_documents.si")
 | 
			
		||||
    @mock.patch("documents.tasks.update_document_archive_file.s")
 | 
			
		||||
    @mock.patch("celery.chord.delay")
 | 
			
		||||
    def test_rotate_non_pdf(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user