Log positive matching

This commit is contained in:
shamoon 2023-09-21 03:25:54 -07:00
parent 0ee2232d0d
commit 3e8b452eaf
2 changed files with 91 additions and 69 deletions

View File

@ -295,4 +295,5 @@ def document_matches_template(
) )
return False return False
logger.info(f"Document matched template {template.name}")
return True return True

View File

@ -102,28 +102,36 @@ 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="INFO") 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.assertEqual(overrides["override_correspondent_id"], self.c.pk) _, overrides = m.call_args
self.assertEqual(overrides["override_document_type_id"], self.dt.pk) self.assertEqual(overrides["override_correspondent_id"], self.c.pk)
self.assertEqual( self.assertEqual(overrides["override_document_type_id"], self.dt.pk)
overrides["override_tag_ids"], self.assertEqual(
[self.t1.pk, self.t2.pk, self.t3.pk], overrides["override_tag_ids"],
) [self.t1.pk, self.t2.pk, self.t3.pk],
self.assertEqual(overrides["override_storage_path_id"], self.sp.pk) )
self.assertEqual(overrides["override_owner_id"], self.user2.pk) self.assertEqual(overrides["override_storage_path_id"], self.sp.pk)
self.assertEqual(overrides["override_view_users"], [self.user3.pk]) self.assertEqual(overrides["override_owner_id"], self.user2.pk)
self.assertEqual(overrides["override_view_groups"], [self.group1.pk]) self.assertEqual(overrides["override_view_users"], [self.user3.pk])
self.assertEqual(overrides["override_change_users"], [self.user3.pk]) self.assertEqual(overrides["override_view_groups"], [self.group1.pk])
self.assertEqual(overrides["override_change_groups"], [self.group1.pk]) self.assertEqual(overrides["override_change_users"], [self.user3.pk])
self.assertEqual(overrides["override_title"], "Doc from {correspondent}") self.assertEqual(overrides["override_change_groups"], [self.group1.pk])
self.assertEqual(
overrides["override_title"],
"Doc from {correspondent}",
)
info = cm.output[0]
expected_str = f"Document matched template {ct}"
self.assertIn(expected_str, info)
@mock.patch("documents.consumer.Consumer.try_consume_file") @mock.patch("documents.consumer.Consumer.try_consume_file")
def test_consumption_template_match_mailrule(self, m): def test_consumption_template_match_mailrule(self, m):
@ -158,31 +166,38 @@ class TestConsumptionTemplates(DirectoriesMixin, FileSystemAssertsMixin, TestCas
self.assertEqual(ct.__str__(), "Template 1") self.assertEqual(ct.__str__(), "Template 1")
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="INFO") as cm:
ConsumableDocument( tasks.consume_file(
source=DocumentSource.ConsumeFolder, ConsumableDocument(
original_file=test_file, source=DocumentSource.ConsumeFolder,
mailrule_id=self.rule1.pk, original_file=test_file,
), mailrule_id=self.rule1.pk,
None, ),
) None,
m.assert_called_once() )
_, overrides = m.call_args m.assert_called_once()
self.assertEqual(overrides["override_correspondent_id"], self.c.pk) _, overrides = m.call_args
self.assertEqual(overrides["override_document_type_id"], self.dt.pk) self.assertEqual(overrides["override_correspondent_id"], self.c.pk)
self.assertEqual( self.assertEqual(overrides["override_document_type_id"], self.dt.pk)
overrides["override_tag_ids"], self.assertEqual(
[self.t1.pk, self.t2.pk, self.t3.pk], overrides["override_tag_ids"],
) [self.t1.pk, self.t2.pk, self.t3.pk],
self.assertEqual(overrides["override_storage_path_id"], self.sp.pk) )
self.assertEqual(overrides["override_owner_id"], self.user2.pk) self.assertEqual(overrides["override_storage_path_id"], self.sp.pk)
self.assertEqual(overrides["override_view_users"], [self.user3.pk]) self.assertEqual(overrides["override_owner_id"], self.user2.pk)
self.assertEqual(overrides["override_view_groups"], [self.group1.pk]) self.assertEqual(overrides["override_view_users"], [self.user3.pk])
self.assertEqual(overrides["override_change_users"], [self.user3.pk]) self.assertEqual(overrides["override_view_groups"], [self.group1.pk])
self.assertEqual(overrides["override_change_groups"], [self.group1.pk]) self.assertEqual(overrides["override_change_users"], [self.user3.pk])
self.assertEqual(overrides["override_title"], "Doc from {correspondent}") self.assertEqual(overrides["override_change_groups"], [self.group1.pk])
self.assertEqual(
overrides["override_title"],
"Doc from {correspondent}",
)
info = cm.output[0]
expected_str = f"Document matched template {ct}"
self.assertIn(expected_str, info)
@mock.patch("documents.consumer.Consumer.try_consume_file") @mock.patch("documents.consumer.Consumer.try_consume_file")
def test_consumption_template_match_multiple(self, m): def test_consumption_template_match_multiple(self, m):
@ -224,29 +239,35 @@ 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="INFO") 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()
# template 1 _, overrides = m.call_args
self.assertEqual(overrides["override_correspondent_id"], self.c.pk) # template 1
self.assertEqual(overrides["override_document_type_id"], self.dt.pk) self.assertEqual(overrides["override_correspondent_id"], self.c.pk)
# template 2 self.assertEqual(overrides["override_document_type_id"], self.dt.pk)
self.assertEqual(overrides["override_storage_path_id"], self.sp.pk) # template 2
# template 1 & 2 self.assertEqual(overrides["override_storage_path_id"], self.sp.pk)
self.assertEqual( # template 1 & 2
overrides["override_tag_ids"], self.assertEqual(
[self.t1.pk, self.t2.pk, self.t3.pk], overrides["override_tag_ids"],
) [self.t1.pk, self.t2.pk, self.t3.pk],
self.assertEqual( )
overrides["override_view_users"], self.assertEqual(
[self.user2.pk, self.user3.pk], overrides["override_view_users"],
) [self.user2.pk, self.user3.pk],
)
expected_str = f"Document matched template {ct1}"
self.assertIn(expected_str, cm.output[0])
expected_str = f"Document matched template {ct2}"
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_filename(self, m): def test_consumption_template_no_match_filename(self, m):