Exemple #1
0
    def set_current_document(self, document_id):

        if document_id is not None:
            document = self.document_dao.get_by_id(document_id)
        else:
            document = Document()
            document.document_type = DocumentType(1)
        message = Message(CONF_DOCUMENT_CHANGED, document=document)
        
        self.message_broker.send_message(message)
    def testNoOverwriting(self):
        
        description ='Stadtzeitung vom 23.4.1975. Irgend ein Text'
        flyer_doc_type = DocumentType(2)
        flyer_doc_type.description = "Flyer"

        entity = Document(4711)
        entity.document_type = flyer_doc_type
        entity.description = description
        entity = self.post_processor.run(entity)
        self.assertTrue(entity.document_type != None)
        self.assertEqual('Flyer', entity.document_type.description)
    def testRemoveSystematicEntryFromDocumentLocation(self):
        document = Document(56)
        document.standort = "1.2.III-4"
        systematic_identifier = SystematicIdentifier("1.2", 3, 4)
        systematic_point = QualifiedSystematicPoint(
            SystematicPoint(systematic_identifier, "Description"), True)

        self.service.remove_systematic_entry_from_document(
            document, systematic_point)

        self.assertEqual(document.standort, None)
        self.references_dao.set_signature_for_document_id.assert_called_with(
            56, None)
    def test_find_all_entities(self):

        self.document_dao.get_count.return_value = 5
        self.document_dao.find.return_value = [
            Document(1),
            Document(2),
            Document(3),
            Document(4),
            Document(5)
        ]
        result = self.service.find(None, 1, 10)
        self.assertEqual(5, len(result.entities))
        self.assertEqual(1, result.number_of_pages)
 def testJournalArticle(self):
     
     descriptions = ('Stadtzeitung vom 23.4.1975. Irgend ein Text',
                     'Stadtzeitung vom 23. April 1975. Irgend ein Text',
                     'B.Z., 3. April 2014: Noch ein Text')
     
     for description in descriptions:
         with self.subTest(description=description):
             entity = Document(4711)
             entity.description = description
             entity = self.post_processor.run(entity)
             self.assertTrue(entity.document_type != None)
             self.assertEqual('Zeitungsartikel', entity.document_type.description)
    def testRemoveSystematicEntryFromDocumentRelations(self):
        document = Document(56)
        document.standort = "1.2.III-4"
        systematic_identifier = SystematicIdentifier("1.2", 3, 4)
        systematic_point = SystematicPoint(systematic_identifier,
                                           "Description")
        qualified_systematic_node = QualifiedSystematicPoint(
            systematic_point, False)

        self.service.remove_systematic_entry_from_document(
            document, qualified_systematic_node)

        self.references_dao.remove_systematik_document_relation(
            56, systematic_identifier)
    def testAddSystematicEntryToDocumentWithLocation(self):
        # Setup
        document = Document(56)
        document.standort = "1.2.III-4"
        systematic_identifier = SystematicIdentifier("5.6", 7, 8)
        systematic_node = SystematicPoint(systematic_identifier, "Description")

        # Execution
        self.service.add_systematic_entry_to_document(document,
                                                      systematic_node)

        # Assertion
        self.assertEqual(document.standort, "1.2.III-4")
        self.references_dao.add_systematik_document_relation.assert_called_with(
            systematic_identifier, 56)
    def testFetchSystematicEntriesForDocument(self):

        # Setup
        document = Document(25)
        signature = systematic_string_to_identifier("1.2.IV-3")
        identifier1 = SystematicIdentifier("2.3", 5, 6)
        identifier2 = SystematicIdentifier("3.4", 7, 8)
        self.references_dao.fetch_systematik_ids_for_document_id = MagicMock(
            return_value=[identifier1, identifier2])
        self.references_dao.fetch_signature_for_document_id = MagicMock(
            return_value=signature)

        values = {
            signature: SystematicPoint(signature, "signature"),
            identifier1: SystematicPoint(identifier1, "identifier1"),
            identifier2: SystematicPoint(identifier2, "identifier2")
        }

        def side_effect(arg):
            return values[arg]

        self.systematic_dao.get_by_id = MagicMock(side_effect=side_effect)

        # Execution
        result = self.service.fetch_systematic_entries_for_document(document)

        # Assertion
        self.assertEqual(len(result), 3)

        self.assertIn(QualifiedSystematicPoint(values[signature], True),
                      result)
        self.assertIn(QualifiedSystematicPoint(values[identifier1], False),
                      result)
        self.assertIn(QualifiedSystematicPoint(values[identifier2], False),
                      result)
 def testFlyer(self):
     
     descriptions = ('Flyer: Irgendein Flyer',
                     '  Flyer: Irgendein Flyer',
                     ' Flyer  :Irgendein Flyer',
                     'Flyer:Irgendein Flyer',
                     'Flyer  :\tIrgendein Flyer')
     
     for description in descriptions:
         with self.subTest(description):
             entity = Document(4711)
             entity.description = description
             entity = self.post_processor.run(entity)
             self.assertTrue(entity.document_type != None)
             self.assertEqual('Flyer', entity.document_type.description)
             self.assertEqual('Irgendein Flyer', entity.description)
    def testRealLifeTexts(self):
        doc = Document(5)
        file_info1 = DocumentFileInfo(5)
        file_info1.filetype = 'txt'
        file1 = os.path.join(self.text_base_dir, "00000005.txt")
        file_info2 = DocumentFileInfo(10)
        file_info2.filetype = 'txt'
        file2 = os.path.join(self.text_base_dir, "00000011.txt")
        file_info3 = DocumentFileInfo(11)
        file_info3.filetype = 'txt'
        file3 = os.path.join(self.text_base_dir, "00000012.txt")

        values = {file_info1: file1, file_info2: file2, file_info3: file3}

        def side_effect(arg):
            return values[arg]

        self.document_file_info_dao.get_file_infos_for_document.return_value = [
            file_info1, file_info2, file_info3
        ]
        self.document_file_manager.get_file_path.side_effect = side_effect

        pdf = self.document_pdf_generation_service.generate_document_pdf(doc)
        self.tmp_file.write(pdf)

        self.document_file_info_dao.get_file_infos_for_document.assert_called_with(
            5)
        self.document_file_manager.get_file_path.assert_has_calls(
            (call(file_info1), call(file_info2), call(file_info3)))
 def test_find_paginated_entities(self):
     self.document_dao.get_count.return_value = 5
     self.document_dao.find.side_effect = ([
         Document(1), Document(4), Document(8)
     ], [Document(11), Document(12)])
     result = self.service.find(None, 1, 3)
     self.assertEqual(3, len(result.entities))
     self.assertEqual(1, result.entities[0].id)
     self.assertEqual(4, result.entities[1].id)
     self.assertEqual(8, result.entities[2].id)
     self.assertEqual(2, result.number_of_pages)
     result = self.service.find(None, 2, 3)
     self.assertEqual(2, len(result.entities))
     self.assertEqual(11, result.entities[0].id)
     self.assertEqual(12, result.entities[1].id)
     self.assertEqual(2, result.number_of_pages)
Exemple #12
0
    def add_button(self, master):

        message = Message(REQ_SET_DOCUMENT, document=Document(1))
        load_references_button = Button(
            master,
            text='Change document',
            command=lambda m=message: self.message_broker.send_message(m))
        load_references_button.pack(side=TOP)
    def testDeleteIII(self):
        # Entity is not yet persisted
        self.view.entity = Document()

        self.document_window_presenter.delete()

        self.assertEqual(self.view.entity,
                         self.document_service.get_last(None))
 def test_find_paginated_entities_with_filter(self):
     self.document_dao.get_count.return_value = 4
     self.document_dao.find.side_effect = ([Document(4),
                                            Document(8)],
                                           [Document(11),
                                            Document(12)])
     where = "egal"
     result = self.service.find(where, 1, 2)
     self.assertEqual(2, len(result.entities))
     self.assertEqual(4, result.entities[0].id)
     self.assertEqual(8, result.entities[1].id)
     self.assertEqual(2, result.number_of_pages)
     result = self.service.find(where, 2, 2)
     self.assertEqual(2, len(result.entities))
     self.assertEqual(11, result.entities[0].id)
     self.assertEqual(12, result.entities[1].id)
     self.assertEqual(2, result.number_of_pages)
    def test_hashable_without_id(self):

        dictionary = {}
        document = Document()
        exception_raised = False
        try:
            dictionary[document] = "bla"
        except TypeError:
            exception_raised = True
        self.assertFalse(exception_raised)
    def test_get_file_infos_for_document(self):

        document = Document(1)
        self.document_file_info_dao.get_file_infos_for_document.return_value = [
            DocumentFileInfo(1)
        ]
        file_infos = self.service.get_file_infos_for_document(document)
        self.assertEqual(1, len(file_infos))
        self.document_file_info_dao.get_file_infos_for_document.assert_called_once_with(
            1)
Exemple #17
0
 def __init__(self):
     config = Config(os.path.join(get_testfiles_dir(), "testconfig.xml"))
     self.file_format_service = FileFormatService(config)
     self.file_infos = {}
     document = Document(1)
     self.file_infos[document] = []
     file_info = DocumentFileInfo(1)
     file_info.document_id = 1
     file_info.filetype = "tif"
     file_info.resolution = 300
     self.file_infos[document].append(file_info)
    def test_add_document_file_working(self):

        test_file = os.path.join(get_testfiles_dir(), "testfile.jpg")
        document = Document(1)
        file_info = DocumentFileInfo(1)

        self.document_file_info_dao.create_new_file_info.return_value = file_info

        self.service.add_document_file(document, test_file)

        self.document_file_manager.add_file.assert_called_once_with(
            test_file, file_info)
    def test_utter_failure(self):
        self.view.new_file = Document()
        self.view.current_document = self.document_dao.get_last()

        self.presenter.add_file()

        self.assertMessage(ERROR_MESSAGE)
        self.assertEqual(_("Unknown error while adding file"),
                         self.received_messages[0].message)

        self.assertTrue(os.path.isfile(self.env.illegal_input_file))
        self.assert_file_info_does_not_exist(15)
    def testMissingHandler(self):
        doc = Document(1)
        file_info = DocumentFileInfo(2)
        file_info.filetype = 'xls'

        self.document_file_info_dao.get_file_infos_for_document.return_value = [
            file_info
        ]

        pdf = self.document_pdf_generation_service.generate_document_pdf(doc)
        self.tmp_file.write(pdf)

        self.document_file_info_dao.get_file_infos_for_document.assert_called_with(
            1)
    def testAddSystematicEntryToDocumentWithoutLocation(self):
        # Setup
        document = Document(56)
        systematic_node = SystematicPoint(SystematicIdentifier("1.2", 3, 4),
                                          "Description")
        self.references_dao.fetch_signature_for_document_id = MagicMock(
            return_value=None)

        # Execution
        self.service.add_systematic_entry_to_document(document,
                                                      systematic_node)

        # Assertion
        self.references_dao.set_signature_for_document_id.assert_called_once_with(
            document.id, systematic_node)
Exemple #22
0
    def test_hashing(self):

        doc1 = Document()
        doc2 = Document()
        doc1.description = None
        doc2.description = None
        test_map = {}
        test_map[doc1] = "eins"
        test_map[doc2] = "zwei"

        self.assertEqual(test_map[doc2], "zwei")
    def testDelete(self):

        document = Document(1)

        file_infos = []
        file_infos.append(DocumentFileInfo(2))
        file_infos.append(DocumentFileInfo(3))
        self.document_file_info_dao.get_file_infos_for_document = MagicMock(
            return_value=file_infos)
        self.document_dao.delete = MagicMock()

        self.service.delete(document)

        self.document_file_manager.delete_file.call_args_list = [
            call(file_infos[0]), call(file_infos[1])
        ]
        self.document_dao.delete.assert_called_once_with(1)
Exemple #24
0
    def test_pdf_generation(self):

        document = Document(1)
        self.document_file_info_dao.get_by_id.return_value = self.env.document_file_infos[
            1]
        self.document_file_info_dao.get_file_infos_for_document.return_value = [
            self.env.document_file_infos[1], self.env.document_file_infos[3],
            self.env.document_file_infos[2]
        ]
        cache_path = self.document_file_manager.get_generated_file_path(
            self.env.document_file_infos[1], DOCUMENT_PDF)
        self.assertFalse(os.path.exists(cache_path))

        pdf = self.file_provider.get_pdf(document)
        self.assertFalse(pdf is None)
        self.assertEquals(b'%PDF-1.3', pdf[0:8])

        self.assertTrue(os.path.exists(cache_path))
Exemple #25
0
    def testSaveNewDocument(self):
        document = Document()
        document.description = "My description"
        document.keywords = "My keywords"
        document.condition = "My document state"
        document.erfasser = self.injector.get(CreatorDao).get_by_id(2)
        document.document_type = self.injector.get(DocumentTypeDao).get_by_id(
            5)
        self.dao.save(document)

        document = self.dao.get_last()

        self.assertEqual(15, document.id)
        self.assertEqual("My description", document.description)
        self.assertEqual("My keywords", document.keywords)
        self.assertEqual("My document state", document.condition)
        self.assertEqual(3, document.erfasser.id)
        self.assertEqual("Flugblatt", document.document_type.description)
        self.assertTrue(document.change_date)
        self.assertTrue(document.creation_date)
    def test_add_document_file_not_working(self):

        test_file = os.path.join(get_testfiles_dir(), "testfile.jpg")
        document = Document(1)
        file_info = DocumentFileInfo(1)

        self.document_file_info_dao.create_new_file_info.return_value = file_info
        self.document_file_manager.add_file.side_effect = FileNotFoundError()
        self.document_file_manager.delete_file.side_effect = Exception()

        exception_raised = False
        try:
            self.service.add_document_file(document, test_file)
        except FileNotFoundError:
            exception_raised = True
        self.assertTrue(exception_raised)

        self.document_file_manager.add_file.assert_called_once_with(
            test_file, file_info)
        self.document_file_manager.delete_file.assert_called_once_with(
            file_info)
        self.document_file_info_dao.delete.assert_called_once_with(
            file_info.id)
    def testDocumentGeneration(self):

        doc = Document(1)

        self.document_file_info_dao.get_file_infos_for_document.return_value = [
            self.env.document_file_infos[1],  # tif
            self.env.document_file_infos[3],  # gif
            self.env.document_file_infos[8],  # pdf
            self.env.document_file_infos[4]
        ]  # jpg

        values = {
            self.env.document_file_infos[1]: self.env.file_paths[1],
            self.env.document_file_infos[3]: self.env.file_paths[3],
            self.env.document_file_infos[8]: self.env.file_paths[8],
            self.env.document_file_infos[4]: self.env.file_paths[4]
        }

        def side_effect(arg):
            return values[arg]

        self.document_file_manager.get_file_path.side_effect = side_effect
        pdf = self.document_pdf_generation_service.generate_document_pdf(doc)

        self.tmp_file.write(pdf)

        self.document_file_info_dao.get_file_infos_for_document.assert_called_with(
            1)
        self.document_file_manager.get_file_path.assert_has_calls(
            (call(self.env.document_file_infos[1]),
             call(self.env.document_file_infos[3]),
             call(self.env.document_file_infos[8]),
             call(self.env.document_file_infos[4])))

        file = open(self.tmp_file.name, "rb")
        reader = PdfFileReader(file)
        self.assertEqual(3, reader.getNumPages())
    def test_string_generation(self):

        document = Document(4711)
        document.description = "My document"
        self.assertEqual("%s" % document, "4711: My document")
    def test_string_generation_new_document(self):

        document = Document()
        self.assertEqual("%s" % document, _('New document'))
Exemple #30
0
 def send_message(self, number):
     message = Message(REQ_SET_DOCUMENT, document=Document(number))
     self.message_broker.send_message(message)