示例#1
0
    def test_pyodbc_exception(self):
        """
        Test that exceptions raised by pyodbc are handled
        """
        # GIVEN: A mocked out SongImport class, a mocked out pyodbc module, a mocked out translate method,
        #       a mocked "manager" and a mocked out log_error method.
        with patch('openlp.plugins.songs.lib.importers.worshipcenterpro.SongImport'), \
                patch('openlp.plugins.songs.lib.importers.worshipcenterpro.pyodbc.connect') as mocked_pyodbc_connect, \
                patch('openlp.plugins.songs.lib.importers.worshipcenterpro.translate') as mocked_translate:
            mocked_manager = MagicMock()
            mocked_log_error = MagicMock()
            mocked_translate.return_value = 'Translated Text'
            importer = WorshipCenterProImport(mocked_manager, file_paths=[])
            importer.log_error = mocked_log_error
            importer.import_source = 'import_source'
            pyodbc_errors = [
                pyodbc.DatabaseError, pyodbc.IntegrityError,
                pyodbc.InternalError, pyodbc.OperationalError
            ]
            mocked_pyodbc_connect.side_effect = pyodbc_errors

            # WHEN: Calling the do_import method
            for effect in pyodbc_errors:
                return_value = importer.do_import()

                # THEN: do_import should return None, and pyodbc, translate & log_error are called with known calls
                assert return_value is None, 'do_import should return None when pyodbc raises an exception.'
                mocked_pyodbc_connect.assert_called_with(
                    'DRIVER={Microsoft Access Driver (*.mdb)};DBQ=import_source'
                )
                mocked_translate.assert_called_with(
                    'SongsPlugin.WorshipCenterProImport',
                    'Unable to connect the WorshipCenter Pro database.')
                mocked_log_error.assert_called_with('import_source',
                                                    'Translated Text')
    def pyodbc_exception_test(self):
        """
        Test that exceptions raised by pyodbc are handled
        """
        # GIVEN: A mocked out SongImport class, a mocked out pyodbc module, a mocked out translate method,
        #       a mocked "manager" and a mocked out log_error method.
        with patch('openlp.plugins.songs.lib.importers.worshipcenterpro.SongImport'), \
                patch('openlp.plugins.songs.lib.importers.worshipcenterpro.pyodbc.connect') as mocked_pyodbc_connect, \
                patch('openlp.plugins.songs.lib.importers.worshipcenterpro.translate') as mocked_translate:
            mocked_manager = MagicMock()
            mocked_log_error = MagicMock()
            mocked_translate.return_value = 'Translated Text'
            importer = WorshipCenterProImport(mocked_manager, filenames=[])
            importer.log_error = mocked_log_error
            importer.import_source = 'import_source'
            pyodbc_errors = [pyodbc.DatabaseError, pyodbc.IntegrityError, pyodbc.InternalError, pyodbc.OperationalError]
            mocked_pyodbc_connect.side_effect = pyodbc_errors

            # WHEN: Calling the do_import method
            for effect in pyodbc_errors:
                return_value = importer.do_import()

                # THEN: do_import should return None, and pyodbc, translate & log_error are called with known calls
                self.assertIsNone(return_value, 'do_import should return None when pyodbc raises an exception.')
                mocked_pyodbc_connect.assert_called_with('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=import_source')
                mocked_translate.assert_called_with('SongsPlugin.WorshipCenterProImport',
                                                    'Unable to connect the WorshipCenter Pro database.')
                mocked_log_error.assert_called_with('import_source', 'Translated Text')
示例#3
0
    def test_create_importer(self):
        """
        Test creating an instance of the WorshipCenter Pro file importer
        """
        # GIVEN: A mocked out SongImport class, and a mocked out "manager"
        with patch(
                'openlp.plugins.songs.lib.importers.worshipcenterpro.SongImport'
        ):
            mocked_manager = MagicMock()

            # WHEN: An importer object is created
            importer = WorshipCenterProImport(mocked_manager, file_paths=[])

            # THEN: The importer object should not be None
            assert importer is not None, 'Import should not be none'
示例#4
0
 def __init__(self, manager):
     WorshipCenterProImport.__init__(self, manager, file_paths=[])
 def __init__(self, manager):
     WorshipCenterProImport.__init__(self, manager, filenames=[])