diff --git a/src/documents/tests/test_consumer.py b/src/documents/tests/test_consumer.py index 512447741..4d5360c7b 100644 --- a/src/documents/tests/test_consumer.py +++ b/src/documents/tests/test_consumer.py @@ -1,66 +1,10 @@ import re from django.test import TestCase -from unittest import mock -from tempfile import TemporaryDirectory -from ..consumer import Consumer from ..models import FileInfo, Tag -class TestConsumer(TestCase): - - class DummyParser(object): - pass - - def test__get_parser_class_1_parser(self): - self.assertEqual( - self._get_consumer()._get_parser_class("doc.pdf"), - self.DummyParser - ) - - @mock.patch("documents.consumer.os.makedirs") - @mock.patch("documents.consumer.os.path.exists", return_value=True) - @mock.patch("documents.consumer.document_consumer_declaration.send") - def test__get_parser_class_n_parsers(self, m, *args): - - class DummyParser1(object): - pass - - class DummyParser2(object): - pass - - m.return_value = ( - (None, lambda _: {"weight": 0, "parser": DummyParser1}), - (None, lambda _: {"weight": 1, "parser": DummyParser2}), - ) - with TemporaryDirectory() as tmpdir: - self.assertEqual( - Consumer(consume=tmpdir)._get_parser_class("doc.pdf"), - DummyParser2 - ) - - @mock.patch("documents.consumer.os.makedirs") - @mock.patch("documents.consumer.os.path.exists", return_value=True) - @mock.patch("documents.consumer.document_consumer_declaration.send") - def test__get_parser_class_0_parsers(self, m, *args): - m.return_value = ((None, lambda _: None),) - with TemporaryDirectory() as tmpdir: - self.assertIsNone( - Consumer(consume=tmpdir)._get_parser_class("doc.pdf") - ) - - @mock.patch("documents.consumer.os.makedirs") - @mock.patch("documents.consumer.os.path.exists", return_value=True) - @mock.patch("documents.consumer.document_consumer_declaration.send") - def _get_consumer(self, m, *args): - m.return_value = ( - (None, lambda _: {"weight": 0, "parser": self.DummyParser}), - ) - with TemporaryDirectory() as tmpdir: - return Consumer(consume=tmpdir) - - class TestAttributes(TestCase): TAGS = ("tag1", "tag2", "tag3") diff --git a/src/documents/tests/test_parsers.py b/src/documents/tests/test_parsers.py new file mode 100644 index 000000000..f49d6ca4d --- /dev/null +++ b/src/documents/tests/test_parsers.py @@ -0,0 +1,50 @@ +from tempfile import TemporaryDirectory +from unittest import mock + +from django.test import TestCase + +from documents.parsers import get_parser_class + + +class TestParserDiscovery(TestCase): + + @mock.patch("documents.parsers.document_consumer_declaration.send") + def test__get_parser_class_1_parser(self, m, *args): + class DummyParser(object): + pass + + m.return_value = ( + (None, lambda _: {"weight": 0, "parser": DummyParser}), + ) + + self.assertEqual( + get_parser_class("doc.pdf"), + DummyParser + ) + + @mock.patch("documents.parsers.document_consumer_declaration.send") + def test__get_parser_class_n_parsers(self, m, *args): + + class DummyParser1(object): + pass + + class DummyParser2(object): + pass + + m.return_value = ( + (None, lambda _: {"weight": 0, "parser": DummyParser1}), + (None, lambda _: {"weight": 1, "parser": DummyParser2}), + ) + + self.assertEqual( + get_parser_class("doc.pdf"), + DummyParser2 + ) + + @mock.patch("documents.parsers.document_consumer_declaration.send") + def test__get_parser_class_0_parsers(self, m, *args): + m.return_value = ((None, lambda _: None),) + with TemporaryDirectory() as tmpdir: + self.assertIsNone( + get_parser_class("doc.pdf") + )