def test_get_settings(self): """ Test retrieving settings from the dialog """ dialog = DataPlotlyPanelWidget(None, override_iface=IFACE) settings = dialog.get_settings() # default should be scatter plot self.assertEqual(settings.plot_type, 'scatter') dialog.set_plot_type('violin') settings = dialog.get_settings() # default should be scatter plot self.assertEqual(settings.plot_type, 'violin')
def test_read_write_project(self): """ Test saving/restoring dialog state in project """ # print('read write project test') p = QgsProject.instance() dialog = DataPlotlyPanelWidget(None, override_iface=IFACE) dialog.set_plot_type('violin') # first, disable saving to project dialog.read_from_project = False dialog.save_to_project = False path = os.path.join(tempfile.gettempdir(), 'test_dataplotly_project.qgs') layer_path = os.path.join(os.path.dirname(__file__), 'test_layer.geojson') # create QgsVectorLayer from path and test validity vl = QgsVectorLayer(layer_path, 'test_layer', 'ogr') self.assertTrue(vl.isValid()) # print(dialog.layer_combo.currentLayer()) self.assertTrue(p.write(path)) res = PlotSettings() # def read(doc): # self.assertTrue(res.read_from_project(doc)) # self.assertEqual(res.plot_type, 'violin') # self.read_triggered = True p.clear() for _ in range(100): QCoreApplication.processEvents() self.assertTrue(p.read(path)) self.assertEqual(res.plot_type, 'scatter') # TODO - enable when dialog can restore properties and avoid this fragile test # # enable saving to project # dialog.save_to_project = True # dialog.read_from_project = True # self.assertTrue(p.write(path)) # for _ in range(100): # QCoreApplication.processEvents() # p.clear() # p.readProject.connect(read) # self.assertTrue(p.read(path)) # for _ in range(100): # QCoreApplication.processEvents() # self.assertTrue(self.read_triggered) # todo - test that dialog can restore properties, but requires the missing set_settings method dialog.x_combo.setExpression('"Ca"') dialog.layer_combo.setLayer(vl) dialog.x_combo.currentText() self.assertTrue(dialog.x_combo.expression(), '"Ca"')