diff --git a/src/documents/consumer.py b/src/documents/consumer.py index b5f7ebb24..919f5f23c 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -40,6 +40,7 @@ from documents.plugins.base import AlwaysRunPluginMixin from documents.plugins.base import ConsumeTaskPlugin from documents.plugins.base import NoCleanupPluginMixin from documents.plugins.base import NoSetupPluginMixin +from documents.plugins.base import StopConsumeTaskError from documents.plugins.date_parsing import get_date_parser from documents.plugins.helpers import ProgressManager from documents.plugins.helpers import ProgressStatusOptions @@ -960,10 +961,14 @@ class ConsumerPreflightPlugin( ) failure_msg += " Note: existing document is in the trash." - self._fail( + self._send_progress( + 100, + 100, + ProgressStatusOptions.FAILED, status_msg, - failure_msg, ) + self.log.error(failure_msg) + raise StopConsumeTaskError(failure_msg) def pre_check_directories(self) -> None: """ diff --git a/src/documents/tests/test_consumer.py b/src/documents/tests/test_consumer.py index 2acfb3c7d..85c7033de 100644 --- a/src/documents/tests/test_consumer.py +++ b/src/documents/tests/test_consumer.py @@ -29,6 +29,7 @@ from documents.models import StoragePath from documents.models import Tag from documents.parsers import DocumentParser from documents.parsers import ParseError +from documents.plugins.base import StopConsumeTaskError from documents.plugins.helpers import ProgressStatusOptions from documents.tasks import sanity_check from documents.tests.utils import DirectoriesMixin @@ -952,11 +953,11 @@ class TestConsumer( self.assertIsFile(dst) expected_message = ( - f"{dst.name}: Not consuming {dst.name}: " + f"Not consuming {dst.name}: " f"It is a duplicate of {document.title} (#{document.pk})" ) - with self.assertRaisesMessage(ConsumerError, expected_message): + with self.assertRaisesMessage(StopConsumeTaskError, expected_message): with self.get_consumer(dst) as consumer: consumer.run() @@ -978,12 +979,12 @@ class TestConsumer( self.assertIsFile(dst) expected_message = ( - f"{dst.name}: Not consuming {dst.name}: " + f"Not consuming {dst.name}: " f"It is a duplicate of {document.title} (#{document.pk})" f" Note: existing document is in the trash." ) - with self.assertRaisesMessage(ConsumerError, expected_message): + with self.assertRaisesMessage(StopConsumeTaskError, expected_message): with self.get_consumer(dst) as consumer: consumer.run()