Negative match logging coverage

This commit is contained in:
shamoon 2023-09-21 03:36:42 -07:00
parent 3e8b452eaf
commit f87ff194cb
2 changed files with 109 additions and 84 deletions

View File

@ -252,7 +252,8 @@ def document_matches_template(
# Document source vs template source # Document source vs template source
if document.source not in [int(x) for x in list(template.sources)]: if document.source not in [int(x) for x in list(template.sources)]:
log_match_failure( log_match_failure(
f"Document source {document.source} not in [{template.sources}]", f"Document source {document.source} not in"
f" {[int(x) for x in list(template.sources)]}",
) )
return False return False
@ -291,7 +292,7 @@ def document_matches_template(
): ):
log_match_failure( log_match_failure(
f"Document path {document.original_file}" f"Document path {document.original_file}"
f"does not match {template.filter_path}", f" does not match {template.filter_path}",
) )
return False return False

View File

@ -279,7 +279,7 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
THEN: THEN:
- Template overrides are not applied - Template overrides are not applied
""" """
ConsumptionTemplate.objects.create( ct = ConsumptionTemplate.objects.create(
name="Template 1", name="Template 1",
order=0, order=0,
sources=f"{DocumentSource.ApiUpload},{DocumentSource.ConsumeFolder},{DocumentSource.MailFetch}", sources=f"{DocumentSource.ApiUpload},{DocumentSource.ConsumeFolder},{DocumentSource.MailFetch}",
@ -295,6 +295,7 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
test_file = self.SAMPLE_DIR / "simple.pdf" test_file = self.SAMPLE_DIR / "simple.pdf"
with mock.patch("documents.tasks.async_to_sync"): with mock.patch("documents.tasks.async_to_sync"):
with self.assertLogs("paperless.matching", level="DEBUG") as cm:
tasks.consume_file( tasks.consume_file(
ConsumableDocument( ConsumableDocument(
source=DocumentSource.ConsumeFolder, source=DocumentSource.ConsumeFolder,
@ -315,6 +316,11 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
self.assertIsNone(overrides["override_change_groups"]) self.assertIsNone(overrides["override_change_groups"])
self.assertIsNone(overrides["override_title"]) self.assertIsNone(overrides["override_title"])
expected_str = f"Document did not match template {ct}"
self.assertIn(expected_str, cm.output[0])
expected_str = f"Document filename {test_file.name} does not match"
self.assertIn(expected_str, cm.output[1])
@mock.patch("documents.consumer.Consumer.try_consume_file") @mock.patch("documents.consumer.Consumer.try_consume_file")
def test_consumption_template_no_match_path(self, m): def test_consumption_template_no_match_path(self, m):
""" """
@ -325,7 +331,7 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
THEN: THEN:
- Template overrides are not applied - Template overrides are not applied
""" """
ConsumptionTemplate.objects.create( ct = ConsumptionTemplate.objects.create(
name="Template 1", name="Template 1",
order=0, order=0,
sources=f"{DocumentSource.ApiUpload},{DocumentSource.ConsumeFolder},{DocumentSource.MailFetch}", sources=f"{DocumentSource.ApiUpload},{DocumentSource.ConsumeFolder},{DocumentSource.MailFetch}",
@ -340,6 +346,7 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
test_file = self.SAMPLE_DIR / "simple.pdf" test_file = self.SAMPLE_DIR / "simple.pdf"
with mock.patch("documents.tasks.async_to_sync"): with mock.patch("documents.tasks.async_to_sync"):
with self.assertLogs("paperless.matching", level="DEBUG") as cm:
tasks.consume_file( tasks.consume_file(
ConsumableDocument( ConsumableDocument(
source=DocumentSource.ConsumeFolder, source=DocumentSource.ConsumeFolder,
@ -360,6 +367,11 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
self.assertIsNone(overrides["override_change_groups"]) self.assertIsNone(overrides["override_change_groups"])
self.assertIsNone(overrides["override_title"]) self.assertIsNone(overrides["override_title"])
expected_str = f"Document did not match template {ct}"
self.assertIn(expected_str, cm.output[0])
expected_str = f"Document path {test_file} does not match"
self.assertIn(expected_str, cm.output[1])
@mock.patch("documents.consumer.Consumer.try_consume_file") @mock.patch("documents.consumer.Consumer.try_consume_file")
def test_consumption_template_no_match_mail_rule(self, m): def test_consumption_template_no_match_mail_rule(self, m):
""" """
@ -370,7 +382,7 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
THEN: THEN:
- Template overrides are not applied - Template overrides are not applied
""" """
ConsumptionTemplate.objects.create( ct = ConsumptionTemplate.objects.create(
name="Template 1", name="Template 1",
order=0, order=0,
sources=f"{DocumentSource.ApiUpload},{DocumentSource.ConsumeFolder},{DocumentSource.MailFetch}", sources=f"{DocumentSource.ApiUpload},{DocumentSource.ConsumeFolder},{DocumentSource.MailFetch}",
@ -385,6 +397,7 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
test_file = self.SAMPLE_DIR / "simple.pdf" test_file = self.SAMPLE_DIR / "simple.pdf"
with mock.patch("documents.tasks.async_to_sync"): with mock.patch("documents.tasks.async_to_sync"):
with self.assertLogs("paperless.matching", level="DEBUG") as cm:
tasks.consume_file( tasks.consume_file(
ConsumableDocument( ConsumableDocument(
source=DocumentSource.ConsumeFolder, source=DocumentSource.ConsumeFolder,
@ -406,6 +419,11 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
self.assertIsNone(overrides["override_change_groups"]) self.assertIsNone(overrides["override_change_groups"])
self.assertIsNone(overrides["override_title"]) self.assertIsNone(overrides["override_title"])
expected_str = f"Document did not match template {ct}"
self.assertIn(expected_str, cm.output[0])
expected_str = "Document mail rule 99 !="
self.assertIn(expected_str, cm.output[1])
@mock.patch("documents.consumer.Consumer.try_consume_file") @mock.patch("documents.consumer.Consumer.try_consume_file")
def test_consumption_template_no_match_source(self, m): def test_consumption_template_no_match_source(self, m):
""" """
@ -416,10 +434,10 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
THEN: THEN:
- Template overrides are not applied - Template overrides are not applied
""" """
ConsumptionTemplate.objects.create( ct = ConsumptionTemplate.objects.create(
name="Template 1", name="Template 1",
order=0, order=0,
sources=f"{int(DocumentSource.ConsumeFolder)},{int(DocumentSource.MailFetch)}", sources=f"{DocumentSource.ConsumeFolder},{DocumentSource.MailFetch}",
filter_path="*", filter_path="*",
assign_title="Doc from {correspondent}", assign_title="Doc from {correspondent}",
assign_correspondent=self.c, assign_correspondent=self.c,
@ -431,6 +449,7 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
test_file = self.SAMPLE_DIR / "simple.pdf" test_file = self.SAMPLE_DIR / "simple.pdf"
with mock.patch("documents.tasks.async_to_sync"): with mock.patch("documents.tasks.async_to_sync"):
with self.assertLogs("paperless.matching", level="DEBUG") as cm:
tasks.consume_file( tasks.consume_file(
ConsumableDocument( ConsumableDocument(
source=DocumentSource.ApiUpload, source=DocumentSource.ApiUpload,
@ -450,3 +469,8 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
self.assertIsNone(overrides["override_change_users"]) self.assertIsNone(overrides["override_change_users"])
self.assertIsNone(overrides["override_change_groups"]) self.assertIsNone(overrides["override_change_groups"])
self.assertIsNone(overrides["override_title"]) self.assertIsNone(overrides["override_title"])
expected_str = f"Document did not match template {ct}"
self.assertIn(expected_str, cm.output[0])
expected_str = f"Document source {DocumentSource.ApiUpload} not in [{DocumentSource.ConsumeFolder}, {DocumentSource.MailFetch}]"
self.assertIn(expected_str, cm.output[1])