def first_time(self): """ If the first time wizard has run, this function is run to import all the new songs into the database. """ self.application.process_events() self.on_tools_reindex_item_triggered() self.application.process_events() db_dir = os.path.join(gettempdir(), 'openlp') if not os.path.exists(db_dir): return song_dbs = [] song_count = 0 for sfile in os.listdir(db_dir): if sfile.startswith('songs_') and sfile.endswith('.sqlite'): self.application.process_events() song_dbs.append(os.path.join(db_dir, sfile)) song_count += self._count_songs(os.path.join(db_dir, sfile)) if not song_dbs: return self.application.process_events() progress = QtGui.QProgressDialog(self.main_window) progress.setWindowModality(QtCore.Qt.WindowModal) progress.setWindowTitle(translate('OpenLP.Ui', 'Importing Songs')) progress.setLabelText(translate('OpenLP.Ui', 'Starting import...')) progress.setCancelButton(None) progress.setRange(0, song_count) progress.setMinimumDuration(0) progress.forceShow() self.application.process_events() for db in song_dbs: importer = OpenLPSongImport(self.manager, filename=db) importer.do_import(progress) self.application.process_events() progress.setValue(song_count) self.media_item.on_search_text_button_clicked()
def first_time(self): """ If the first time wizard has run, this function is run to import all the new songs into the database. """ self.application.process_events() self.on_tools_reindex_item_triggered() self.application.process_events() db_dir = os.path.join(gettempdir(), 'openlp') if not os.path.exists(db_dir): return song_dbs = [] song_count = 0 for sfile in os.listdir(db_dir): if sfile.startswith('songs_') and sfile.endswith('.sqlite'): self.application.process_events() song_dbs.append(os.path.join(db_dir, sfile)) song_count += SongsPlugin._count_songs(os.path.join(db_dir, sfile)) if not song_dbs: return self.application.process_events() progress = QtWidgets.QProgressDialog(self.main_window) progress.setWindowModality(QtCore.Qt.WindowModal) progress.setWindowTitle(translate('OpenLP.Ui', 'Importing Songs')) progress.setLabelText(translate('OpenLP.Ui', 'Starting import...')) progress.setCancelButton(None) progress.setRange(0, song_count) progress.setMinimumDuration(0) progress.forceShow() self.application.process_events() for db in song_dbs: importer = OpenLPSongImport(self.manager, filename=db) importer.do_import(progress) self.application.process_events() progress.setValue(song_count) self.media_item.on_search_text_button_clicked()
def first_time(self): """ If the first time wizard has run, this function is run to import all the new songs into the database. """ self.application.process_events() self.on_tools_reindex_item_triggered() self.application.process_events() db_dir_path = Path(gettempdir(), 'openlp') if not db_dir_path.exists(): return song_db_paths = [] song_count = 0 for db_file_path in db_dir_path.glob('songs_*.sqlite'): self.application.process_events() song_db_paths.append(db_file_path) song_count += SongsPlugin._count_songs(db_file_path) if not song_db_paths: return self.application.process_events() progress = QtWidgets.QProgressDialog(self.main_window) progress.setWindowModality(QtCore.Qt.WindowModal) progress.setWindowTitle(translate('SongsPlugin', 'Importing Songs')) progress.setLabelText(UiStrings().StartingImport) progress.setCancelButton(None) progress.setRange(0, song_count) progress.setMinimumDuration(0) progress.forceShow() self.application.process_events() for db_path in song_db_paths: importer = OpenLPSongImport(self.manager, file_path=db_path) importer.do_import(progress) self.application.process_events() progress.setValue(song_count) self.media_item.on_search_text_button_clicked()
def test_invalid_import_source(self): """ Test OpenLPSongImport.do_import handles different invalid import_source values """ # GIVEN: A mocked out SongImport class, and a mocked out "manager" with patch('openlp.plugins.songs.lib.importers.openlp.SongImport'): mocked_manager = MagicMock() mocked_import_wizard = MagicMock() importer = OpenLPSongImport(mocked_manager, filenames=[]) importer.import_wizard = mocked_import_wizard importer.stop_import_flag = True # WHEN: Import source is not a list for source in ['not a list', 0]: importer.import_source = source # THEN: do_import should return none and the progress bar maximum should not be set. self.assertIsNone( importer.do_import(), 'do_import should return None when import_source is not a list' ) self.assertEqual( mocked_import_wizard.progress_bar.setMaximum.called, False, 'setMaximum on import_wizard.progress_bar should not have been called' )
def test_invalid_import_source(self): """ Test OpenLPSongImport.do_import handles different invalid import_source values """ # GIVEN: A mocked out SongImport class, and a mocked out "manager" with patch('openlp.plugins.songs.lib.importers.openlp.SongImport'): mocked_manager = MagicMock() mocked_import_wizard = MagicMock() importer = OpenLPSongImport(mocked_manager, filenames=[]) importer.import_wizard = mocked_import_wizard importer.stop_import_flag = True # WHEN: Import source is not a list for source in ['not a list', 0]: importer.import_source = source # THEN: do_import should return none and the progress bar maximum should not be set. self.assertIsNone(importer.do_import(), 'do_import should return None when import_source is not a list') self.assertEqual(mocked_import_wizard.progress_bar.setMaximum.called, False, 'setMaximum on import_wizard.progress_bar should not have been called')