Negative match logging coverage
This commit is contained in:
parent
3e8b452eaf
commit
f87ff194cb
@ -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
|
||||||
|
|
||||||
|
@ -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,25 +295,31 @@ 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"):
|
||||||
tasks.consume_file(
|
with self.assertLogs("paperless.matching", level="DEBUG") as cm:
|
||||||
ConsumableDocument(
|
tasks.consume_file(
|
||||||
source=DocumentSource.ConsumeFolder,
|
ConsumableDocument(
|
||||||
original_file=test_file,
|
source=DocumentSource.ConsumeFolder,
|
||||||
),
|
original_file=test_file,
|
||||||
None,
|
),
|
||||||
)
|
None,
|
||||||
m.assert_called_once()
|
)
|
||||||
_, overrides = m.call_args
|
m.assert_called_once()
|
||||||
self.assertIsNone(overrides["override_correspondent_id"])
|
_, overrides = m.call_args
|
||||||
self.assertIsNone(overrides["override_document_type_id"])
|
self.assertIsNone(overrides["override_correspondent_id"])
|
||||||
self.assertIsNone(overrides["override_tag_ids"])
|
self.assertIsNone(overrides["override_document_type_id"])
|
||||||
self.assertIsNone(overrides["override_storage_path_id"])
|
self.assertIsNone(overrides["override_tag_ids"])
|
||||||
self.assertIsNone(overrides["override_owner_id"])
|
self.assertIsNone(overrides["override_storage_path_id"])
|
||||||
self.assertIsNone(overrides["override_view_users"])
|
self.assertIsNone(overrides["override_owner_id"])
|
||||||
self.assertIsNone(overrides["override_view_groups"])
|
self.assertIsNone(overrides["override_view_users"])
|
||||||
self.assertIsNone(overrides["override_change_users"])
|
self.assertIsNone(overrides["override_view_groups"])
|
||||||
self.assertIsNone(overrides["override_change_groups"])
|
self.assertIsNone(overrides["override_change_users"])
|
||||||
self.assertIsNone(overrides["override_title"])
|
self.assertIsNone(overrides["override_change_groups"])
|
||||||
|
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,25 +346,31 @@ 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"):
|
||||||
tasks.consume_file(
|
with self.assertLogs("paperless.matching", level="DEBUG") as cm:
|
||||||
ConsumableDocument(
|
tasks.consume_file(
|
||||||
source=DocumentSource.ConsumeFolder,
|
ConsumableDocument(
|
||||||
original_file=test_file,
|
source=DocumentSource.ConsumeFolder,
|
||||||
),
|
original_file=test_file,
|
||||||
None,
|
),
|
||||||
)
|
None,
|
||||||
m.assert_called_once()
|
)
|
||||||
_, overrides = m.call_args
|
m.assert_called_once()
|
||||||
self.assertIsNone(overrides["override_correspondent_id"])
|
_, overrides = m.call_args
|
||||||
self.assertIsNone(overrides["override_document_type_id"])
|
self.assertIsNone(overrides["override_correspondent_id"])
|
||||||
self.assertIsNone(overrides["override_tag_ids"])
|
self.assertIsNone(overrides["override_document_type_id"])
|
||||||
self.assertIsNone(overrides["override_storage_path_id"])
|
self.assertIsNone(overrides["override_tag_ids"])
|
||||||
self.assertIsNone(overrides["override_owner_id"])
|
self.assertIsNone(overrides["override_storage_path_id"])
|
||||||
self.assertIsNone(overrides["override_view_users"])
|
self.assertIsNone(overrides["override_owner_id"])
|
||||||
self.assertIsNone(overrides["override_view_groups"])
|
self.assertIsNone(overrides["override_view_users"])
|
||||||
self.assertIsNone(overrides["override_change_users"])
|
self.assertIsNone(overrides["override_view_groups"])
|
||||||
self.assertIsNone(overrides["override_change_groups"])
|
self.assertIsNone(overrides["override_change_users"])
|
||||||
self.assertIsNone(overrides["override_title"])
|
self.assertIsNone(overrides["override_change_groups"])
|
||||||
|
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,26 +397,32 @@ 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"):
|
||||||
tasks.consume_file(
|
with self.assertLogs("paperless.matching", level="DEBUG") as cm:
|
||||||
ConsumableDocument(
|
tasks.consume_file(
|
||||||
source=DocumentSource.ConsumeFolder,
|
ConsumableDocument(
|
||||||
original_file=test_file,
|
source=DocumentSource.ConsumeFolder,
|
||||||
mailrule_id=99,
|
original_file=test_file,
|
||||||
),
|
mailrule_id=99,
|
||||||
None,
|
),
|
||||||
)
|
None,
|
||||||
m.assert_called_once()
|
)
|
||||||
_, overrides = m.call_args
|
m.assert_called_once()
|
||||||
self.assertIsNone(overrides["override_correspondent_id"])
|
_, overrides = m.call_args
|
||||||
self.assertIsNone(overrides["override_document_type_id"])
|
self.assertIsNone(overrides["override_correspondent_id"])
|
||||||
self.assertIsNone(overrides["override_tag_ids"])
|
self.assertIsNone(overrides["override_document_type_id"])
|
||||||
self.assertIsNone(overrides["override_storage_path_id"])
|
self.assertIsNone(overrides["override_tag_ids"])
|
||||||
self.assertIsNone(overrides["override_owner_id"])
|
self.assertIsNone(overrides["override_storage_path_id"])
|
||||||
self.assertIsNone(overrides["override_view_users"])
|
self.assertIsNone(overrides["override_owner_id"])
|
||||||
self.assertIsNone(overrides["override_view_groups"])
|
self.assertIsNone(overrides["override_view_users"])
|
||||||
self.assertIsNone(overrides["override_change_users"])
|
self.assertIsNone(overrides["override_view_groups"])
|
||||||
self.assertIsNone(overrides["override_change_groups"])
|
self.assertIsNone(overrides["override_change_users"])
|
||||||
self.assertIsNone(overrides["override_title"])
|
self.assertIsNone(overrides["override_change_groups"])
|
||||||
|
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,22 +449,28 @@ 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"):
|
||||||
tasks.consume_file(
|
with self.assertLogs("paperless.matching", level="DEBUG") as cm:
|
||||||
ConsumableDocument(
|
tasks.consume_file(
|
||||||
source=DocumentSource.ApiUpload,
|
ConsumableDocument(
|
||||||
original_file=test_file,
|
source=DocumentSource.ApiUpload,
|
||||||
),
|
original_file=test_file,
|
||||||
None,
|
),
|
||||||
)
|
None,
|
||||||
m.assert_called_once()
|
)
|
||||||
_, overrides = m.call_args
|
m.assert_called_once()
|
||||||
self.assertIsNone(overrides["override_correspondent_id"])
|
_, overrides = m.call_args
|
||||||
self.assertIsNone(overrides["override_document_type_id"])
|
self.assertIsNone(overrides["override_correspondent_id"])
|
||||||
self.assertIsNone(overrides["override_tag_ids"])
|
self.assertIsNone(overrides["override_document_type_id"])
|
||||||
self.assertIsNone(overrides["override_storage_path_id"])
|
self.assertIsNone(overrides["override_tag_ids"])
|
||||||
self.assertIsNone(overrides["override_owner_id"])
|
self.assertIsNone(overrides["override_storage_path_id"])
|
||||||
self.assertIsNone(overrides["override_view_users"])
|
self.assertIsNone(overrides["override_owner_id"])
|
||||||
self.assertIsNone(overrides["override_view_groups"])
|
self.assertIsNone(overrides["override_view_users"])
|
||||||
self.assertIsNone(overrides["override_change_users"])
|
self.assertIsNone(overrides["override_view_groups"])
|
||||||
self.assertIsNone(overrides["override_change_groups"])
|
self.assertIsNone(overrides["override_change_users"])
|
||||||
self.assertIsNone(overrides["override_title"])
|
self.assertIsNone(overrides["override_change_groups"])
|
||||||
|
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])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user