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')
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'
def __init__(self, manager): WorshipCenterProImport.__init__(self, manager, file_paths=[])
def __init__(self, manager): WorshipCenterProImport.__init__(self, manager, filenames=[])