def test_copy_db_url_to_clipboard(self): """Test that the database url from current selections is copied to clipboard. """ # First create a DS with an sqlite db reference file_path = os.path.join(self.toolbox.project().project_dir, "mock_db.sqlite") if not os.path.exists(file_path): with open(file_path, 'w'): pass url = "sqlite:///" + file_path create_new_spine_database(url) reference = dict(database="foo", username="******", url=url) data_store = DataStore(self.toolbox, "DS", "", reference, 0, 0) data_store.activate() self.toolbox.ui.toolButton_copy_db_url.click() clipboard_text = QApplication.clipboard().text() self.assertEqual(clipboard_text, url)
def test_create_new_spine_database(self): """Test that a new Spine database is created when clicking on Spine-icon tool button. """ with mock.patch("data_store.QFileDialog") as mock_file_dialog: data_store = DataStore(self.toolbox, "DS", "", dict(), 0, 0) file_path = os.path.join(data_store.data_dir, "mock_db.sqlite") mock_file_dialog.getSaveFileName.return_value = [file_path] data_store.activate() self.toolbox.ui.toolButton_new_spine.click() self.assertTrue(os.path.isfile(file_path), "mock_db.sqlite file not found.") sqlite_file = self.toolbox.ui.lineEdit_SQLite_file.text() self.assertEqual(sqlite_file, file_path) database = self.toolbox.ui.lineEdit_database.text() basename = os.path.basename(file_path) self.assertEqual(database, basename)
def test_load_reference(self): """Test that reference is loaded into selections on Data Store creation, and then shown in the ui when Data Store is activated. """ # FIXME: For now it only tests sqlite references file_path = os.path.join(self.toolbox.project().project_dir, "mock_db.sqlite") if not os.path.exists(file_path): with open(file_path, 'w'): pass url = "sqlite:///" + file_path create_new_spine_database(url) reference = dict(database="foo", username="******", url=url) data_store = DataStore(self.toolbox, "DS", "", reference, 0, 0) data_store.activate() dialect = self.toolbox.ui.comboBox_dialect.currentText() database = self.toolbox.ui.lineEdit_database.text() username = self.toolbox.ui.lineEdit_username.text() self.assertEqual(dialect, 'sqlite') self.assertEqual(database, 'foo') self.assertEqual(username, 'bar')
def test_save_and_restore_selections(self): """Test that selections are saved and restored when deactivating a Data Store and activating it again. """ # FIXME: For now it only tests the mysql dialect data_store = DataStore(self.toolbox, "DS", "", dict(), 0, 0) data_store.activate() self.toolbox.ui.comboBox_dialect.setCurrentText('mysql') self.toolbox.ui.lineEdit_host.setText('localhost') self.toolbox.ui.lineEdit_port.setText('8080') self.toolbox.ui.lineEdit_database.setText('foo') self.toolbox.ui.lineEdit_username.setText('bar') data_store.deactivate() data_store.activate() dialect = self.toolbox.ui.comboBox_dialect.currentText() host = self.toolbox.ui.lineEdit_host.text() port = self.toolbox.ui.lineEdit_port.text() database = self.toolbox.ui.lineEdit_database.text() username = self.toolbox.ui.lineEdit_username.text() self.assertEqual(dialect, 'mysql') self.assertEqual(host, 'localhost') self.assertEqual(port, '8080') self.assertEqual(database, 'foo') self.assertEqual(username, 'bar')