Chore: refactor consumer plugin checks to a pre-flight plugin (#9994)

This commit is contained in:
shamoon
2025-06-03 12:28:49 -07:00
committed by GitHub
parent 42100588d5
commit e97cfb9b5e
4 changed files with 169 additions and 139 deletions

View File

@@ -21,6 +21,7 @@ from django.test import TransactionTestCase
from django.test import override_settings
from documents.consumer import ConsumerPlugin
from documents.consumer import ConsumerPreflightPlugin
from documents.data_models import ConsumableDocument
from documents.data_models import DocumentMetadataOverrides
from documents.data_models import DocumentSource
@@ -344,12 +345,21 @@ class GetConsumerMixin:
) -> Generator[ConsumerPlugin, None, None]:
# Store this for verification
self.status = DummyProgressManager(filepath.name, None)
doc = ConsumableDocument(
source,
original_file=filepath,
mailrule_id=mailrule_id or None,
)
preflight_plugin = ConsumerPreflightPlugin(
doc,
overrides or DocumentMetadataOverrides(),
self.status, # type: ignore
self.dirs.scratch_dir,
"task-id",
)
preflight_plugin.setup()
reader = ConsumerPlugin(
ConsumableDocument(
source,
original_file=filepath,
mailrule_id=mailrule_id or None,
),
doc,
overrides or DocumentMetadataOverrides(),
self.status, # type: ignore
self.dirs.scratch_dir,
@@ -357,6 +367,7 @@ class GetConsumerMixin:
)
reader.setup()
try:
preflight_plugin.run()
yield reader
finally:
reader.cleanup()