Пример #1
0
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
Пример #2
0
 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()
Пример #3
0
 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
Пример #6
0
 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()
Пример #11
0
    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",
     ]
Пример #13
0
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
Пример #14
0
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
Пример #15
0
    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)
Пример #16
0
    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()
Пример #17
0
 def setUp(self):
     self.db_mngr = SpineDBManager(None, None)
     self.db_mngr.get_item = Mock()