def main(argv): """Launches Spine Db Editor as it's own application. Args: argv (list): Command line arguments """ if not pyside2_version_check(): return 1 try: urls = argv[1:] except IndexError: return 2 app = QApplication(argv) status = QFontDatabase.addApplicationFont( ":/fonts/fontawesome5-solid-webfont.ttf") if status < 0: logging.warning( "Could not load fonts from resources file. Some icons may not render properly." ) locale.setlocale(locale.LC_NUMERIC, 'C') settings = QSettings("SpineProject", "Spine Toolbox") db_mngr = SpineDBManager(settings, None) editor = MultiSpineDBEditor(db_mngr, {url: None for url in urls}, create=True) editor.show() return_code = app.exec_() return return_code
def setUp(self): app_settings = MagicMock() self._temp_dir = TemporaryDirectory() url = "sqlite:///" + os.path.join(self._temp_dir.name, "db.sqlite") db_map = DiffDatabaseMapping(url, create=True) import_object_classes(db_map, ("class1",)) import_object_parameters(db_map, (("class1", "parameter1"), ("class1", "parameter2"))) import_objects(db_map, (("class1", "object1"), ("class1", "object2"))) import_object_parameter_values( db_map, ( ("class1", "object1", "parameter1", 1.0), ("class1", "object2", "parameter1", 3.0), ("class1", "object1", "parameter2", 5.0), ("class1", "object2", "parameter2", 7.0), ), ) db_map.commit_session("Add test data.") db_map.connection.close() with patch("spinetoolbox.spine_db_manager.SpineDBManager.thread", new_callable=PropertyMock) as mock_thread: mock_thread.return_value = QApplication.instance().thread() self._db_mngr = SpineDBManager(app_settings, None) with patch.object(SpineDBEditor, "restore_ui"): self._editor = SpineDBEditor(self._db_mngr, {url: db_map.codename}) object_class_index = self._editor.object_tree_model.index(0, 0) self._editor.object_tree_model.fetchMore(object_class_index) index = self._editor.object_tree_model.index(0, 0, object_class_index) self._editor.reload_pivot_table(index) self._model = self._editor.pivot_table_model self._model.start_fetching()
def setUp(self): app_settings = MagicMock() self._logger = MagicMock( ) # Collects error messages therefore handy for debugging. self._db_mngr = SpineDBManager(app_settings, None) self._db_map = self._db_mngr.get_db_map("sqlite://", self._logger, codename="test_db", create=True) self._listener = MagicMock() self._fetcher = self._db_mngr.get_fetcher()
def setUp(self): app_settings = MagicMock() logger = MagicMock() with unittest.mock.patch( "spinetoolbox.spine_db_manager.SpineDBManager.thread", new_callable=PropertyMock) as mock_thread: mock_thread.return_value = QApplication.instance().thread() self._db_mngr = SpineDBManager(app_settings, None) self._db_editor = SpineDBEditor(self._db_mngr) self._db_map = self._db_mngr.get_db_map("sqlite://", logger, codename="test_db", create=True)
def setUp(self): """Overridden method. Runs before each test. Makes instances of DataStoreForm classes.""" with mock.patch("spinetoolbox.spine_db_manager.DiffDatabaseMapping") as mock_DiffDBMapping, mock.patch( "spinetoolbox.widgets.data_store_widget.DataStoreForm.restore_ui" ): self.db_mngr = SpineDBManager(None, None) def DiffDBMapping_side_effect(url, upgrade=False, codename=None): mock_db_map = mock.MagicMock() mock_db_map.codename = codename return mock_db_map mock_DiffDBMapping.side_effect = DiffDBMapping_side_effect self.tree_view_form = DataStoreForm(self.db_mngr, ("mock_url", "mock_db")) self.mock_db_map = self.tree_view_form.db_map
def setUp(self): """Overridden method. Runs before each test. Makes instances of SpineDBEditor classes.""" with mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.restore_ui" ), mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.show" ): mock_settings = mock.Mock() mock_settings.value.side_effect = lambda *args, **kwards: 0 self.db_mngr = SpineDBManager(mock_settings, None) # TODO: Use a temp file? url = "sqlite:///test.sqlite" create_new_spine_database(url) self.db_mngr.fetch_db_maps_for_listener = lambda *args: None self.spine_db_editor = SpineDBEditor(self.db_mngr, {url: "db"}) self.db_map = self.spine_db_editor.first_db_map self.spine_db_editor.pivot_table_model = mock.MagicMock()
def setUp(self): """Builds a SpineDBEditorBase object.""" with mock.patch("spinetoolbox.spine_db_worker.DiffDatabaseMapping") as mock_DiffDBMapping, mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.restore_ui" ), mock.patch("spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.show"): mock_settings = mock.Mock() mock_settings.value.side_effect = lambda *args, **kwards: 0 self.db_mngr = SpineDBManager(mock_settings, None) self.db_mngr.fetch_db_maps_for_listener = lambda *args: None def DiffDBMapping_side_effect(url, codename=None, upgrade=False, create=False): mock_db_map = mock.MagicMock() mock_db_map.codename = codename mock_db_map.db_url = url return mock_db_map mock_DiffDBMapping.side_effect = DiffDBMapping_side_effect self.db_editor = SpineDBEditorBase(self.db_mngr)
def setUp(self): """Overridden method. Runs before each test. Makes instances of SpineDBEditor classes.""" self._temp_dir = TemporaryDirectory() url = "sqlite:///" + os.path.join(self._temp_dir.name, "test.sqlite") with mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.restore_ui" ), mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.show" ): mock_settings = mock.Mock() mock_settings.value.side_effect = lambda *args, **kwards: 0 self.db_mngr = SpineDBManager(mock_settings, None) logger = mock.MagicMock() self.db_map = self.db_mngr.get_db_map(url, logger, codename="db", create=True) self.spine_db_editor = SpineDBEditor(self.db_mngr, {url: "db"}) self.spine_db_editor.pivot_table_model = mock.MagicMock()
def setUp(self): """Overridden method. Runs before each test. Makes instances of SpineDBEditor classes.""" with mock.patch("spinetoolbox.spine_db_manager.DiffDatabaseMapping") as mock_DiffDBMapping, mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.restore_ui" ), mock.patch("spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.show"): mock_settings = mock.Mock() mock_settings.value.side_effect = lambda *args, **kwards: 0 self.db_mngr = SpineDBManager(mock_settings, None) self.db_mngr.fetch_db_maps_for_listener = lambda *args: None def DiffDBMapping_side_effect(url, codename=None, upgrade=False, create=False): mock_db_map = mock.MagicMock() mock_db_map.db_url = url mock_db_map.codename = codename return mock_db_map mock_DiffDBMapping.side_effect = DiffDBMapping_side_effect self.spine_db_editor = SpineDBEditor(self.db_mngr, {"mock_url": "mock_db"}) self.mock_db_map = self.spine_db_editor.first_db_map self.spine_db_editor.pivot_table_model = mock.MagicMock()
def setUp(self): """Overridden method. Runs before each test. Makes instances of SpineDBEditor classes.""" self._temp_dir = TemporaryDirectory() url = "sqlite:///" + os.path.join(self._temp_dir.name, "test.sqlite") create_new_spine_database(url) with mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.restore_ui" ), mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.show" ): mock_settings = mock.Mock() mock_settings.value.side_effect = lambda *args, **kwards: 0 with mock.patch( "spinetoolbox.spine_db_manager.SpineDBManager.thread", new_callable=mock.PropertyMock) as mock_thread: mock_thread.return_value = QApplication.instance().thread() self.db_mngr = SpineDBManager(mock_settings, None) self.spine_db_editor = SpineDBEditor(self.db_mngr, {url: "db"}) self.db_map = self.spine_db_editor.first_db_map self.spine_db_editor.pivot_table_model = mock.MagicMock()
def setUp(self): """Overridden method. Runs before each test. Makes instances of SpineDBEditor classes.""" with mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.restore_ui" ), mock.patch( "spinetoolbox.spine_db_editor.widgets.spine_db_editor.SpineDBEditor.show" ): mock_settings = mock.Mock() mock_settings.value.side_effect = lambda *args, **kwards: 0 self.db_mngr = SpineDBManager(mock_settings, None) self.db_mngr.fetch_db_maps_for_listener = lambda *args: None logger = mock.MagicMock() self.db_mngr.get_db_map("sqlite://", logger, codename="database", create=True) self.spine_db_editor = SpineDBEditor(self.db_mngr, {"sqlite://": "database"}) self.mock_db_map = self.spine_db_editor.first_db_map self.spine_db_editor.pivot_table_model = mock.MagicMock()
def setUp(self): """Overridden method. Runs before each test.""" app_settings = mock.MagicMock() logger = mock.MagicMock() with mock.patch("spinetoolbox.spine_db_manager.SpineDBManager.thread", new_callable=mock.PropertyMock) as mock_thread: mock_thread.return_value = QApplication.instance().thread() self._db_mngr = SpineDBManager(app_settings, None) fetcher = self._db_mngr.get_fetcher() self._db_map = self._db_mngr.get_db_map("sqlite://", logger, codename="mock_db", create=True) import_object_classes(self._db_map, ("dog", "fish")) import_object_parameters(self._db_map, (("dog", "breed"), )) import_objects(self._db_map, (("dog", "pluto"), ("fish", "nemo"))) import_relationship_classes(self._db_map, (("dog__fish", ("dog", "fish")), )) import_relationship_parameters(self._db_map, (("dog__fish", "relative_speed"), )) import_relationships(self._db_map, (("dog_fish", ("pluto", "nemo")), )) self._db_map.commit_session("Add test data") fetcher.fetch([self._db_map]) self.object_table_header = [ "object_class_name", "object_name", "parameter_name", "alternative_id", "value", "database", ] self.relationship_table_header = [ "relationship_class_name", "object_name_list", "parameter_name", "alternative_id", "value", "database", ]
def main(argv): """Launches Data Store view as it's own application. Args: argv (list): Command line arguments """ if not pyside2_version_check(): return 1 try: file_path = argv[1] except IndexError: return 0 app = QApplication(argv) QFontDatabase.addApplicationFont(":/fonts/fontawesome5-solid-webfont.ttf") locale.setlocale(locale.LC_NUMERIC, 'C') url = f"sqlite:///{file_path}" settings = QSettings("SpineProject", "Spine Toolbox") logger = SimpleLogger() db_mngr = SpineDBManager(settings, logger, None) codename = os.path.splitext(os.path.basename(file_path))[0] db_mngr.show_data_store_form({url: codename}, logger) return_code = app.exec_() return return_code
def main(argv): """Launches Data Store view as it's own application. Args: argv (list): Command line arguments """ if not pyside2_version_check(): return 0 if not spinedb_api_version_check(): return 0 try: path = argv[1] except IndexError: return 0 app = QApplication(argv) QFontDatabase.addApplicationFont(":/fonts/fontawesome5-solid-webfont.ttf") locale.setlocale(locale.LC_NUMERIC, 'C') url = f"sqlite:///{path}" db_mngr = SpineDBManager(SimpleLogger(), None) tree = DataStoreForm(db_mngr, (url, "main")) tree.show() return_code = app.exec_() return return_code
def setUp(self): """Builds a DataStoreFormBase object.""" with mock.patch( "spinetoolbox.spine_db_manager.DiffDatabaseMapping" ) as mock_DiffDBMapping, mock.patch( "spinetoolbox.data_store_form.widgets.data_store_form.DataStoreForm.restore_ui" ), mock.patch( "spinetoolbox.data_store_form.widgets.data_store_form.DataStoreForm.show" ): mock_settings = mock.Mock() mock_settings.value.side_effect = lambda *args, **kwards: 0 self.db_mngr = SpineDBManager(mock_settings, None, None) self.db_mngr.fetch_db_maps_for_listener = lambda *args: None def DiffDBMapping_side_effect(url, upgrade=False, codename=None): mock_db_map = mock.MagicMock() mock_db_map.codename = codename return mock_db_map mock_DiffDBMapping.side_effect = DiffDBMapping_side_effect self.db_mngr.show_data_store_form({"mock_url": "mock_db"}, None) db_map = self.db_mngr._db_maps["mock_url"] self.form = DataStoreFormBase(self.db_mngr, db_map)
def setUp(self): """Overridden method. Runs before each test. Makes instances of DataStoreForm classes.""" with mock.patch( "spinetoolbox.spine_db_manager.DiffDatabaseMapping" ) as mock_DiffDBMapping, mock.patch( "spinetoolbox.data_store_form.widgets.data_store_form.DataStoreForm.restore_ui" ), mock.patch( "spinetoolbox.data_store_form.widgets.data_store_form.DataStoreForm.show" ): mock_settings = mock.Mock() mock_settings.value.side_effect = lambda *args, **kwards: 0 self.db_mngr = SpineDBManager(mock_settings, None, None) self.db_mngr.fetch_db_maps_for_listener = lambda *args: None def DiffDBMapping_side_effect(url, upgrade=False, codename=None): mock_db_map = mock.MagicMock() mock_db_map.codename = codename return mock_db_map mock_DiffDBMapping.side_effect = DiffDBMapping_side_effect self.db_mngr.show_data_store_form({"mock_url": "mock_db"}, None) self.tree_view_form = self.db_mngr._ds_forms[("mock_url", )] self.mock_db_map = self.tree_view_form.db_map self.tree_view_form.pivot_table_model = mock.MagicMock()
def setUp(self): self.db_mngr = SpineDBManager(None, None) self.db_mngr.get_item = Mock()