From 4279370a80cd757cc0f941ee421bd8e814430367 Mon Sep 17 00:00:00 2001 From: Jernej Urankar Date: Tue, 18 Apr 2017 12:19:23 +0200 Subject: [PATCH] [FIX] Scatter Plot: findvar & owplotgui GH-2240 --- Orange/widgets/visualize/owscatterplot.py | 8 ++++---- .../visualize/tests/test_owscatterplot.py | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Orange/widgets/visualize/owscatterplot.py b/Orange/widgets/visualize/owscatterplot.py index c39586b8854..5b1f34432e7 100644 --- a/Orange/widgets/visualize/owscatterplot.py +++ b/Orange/widgets/visualize/owscatterplot.py @@ -344,16 +344,16 @@ def findvar(name, iterable): self.attr_y = findvar(self.attr_y, self.xy_model) if isinstance(self.graph.attr_label, str): self.graph.attr_label = findvar( - self.graph.attr_label, self.label_model) + self.graph.attr_label, self.graph.gui.label_model) if isinstance(self.graph.attr_color, str): self.graph.attr_color = findvar( - self.graph.attr_color, self.color_model) + self.graph.attr_color, self.graph.gui.color_model) if isinstance(self.graph.attr_shape, str): self.graph.attr_shape = findvar( - self.graph.attr_shape, self.shape_model) + self.graph.attr_shape, self.graph.gui.shape_model) if isinstance(self.graph.attr_size, str): self.graph.attr_size = findvar( - self.graph.attr_size, self.size_model) + self.graph.attr_size, self.graph.gui.size_model) def add_data(self, time=0.4): if self.data and len(self.data) > 2000: diff --git a/Orange/widgets/visualize/tests/test_owscatterplot.py b/Orange/widgets/visualize/tests/test_owscatterplot.py index 7804cb51745..c58d214ec03 100644 --- a/Orange/widgets/visualize/tests/test_owscatterplot.py +++ b/Orange/widgets/visualize/tests/test_owscatterplot.py @@ -248,6 +248,26 @@ def test_invalid_points_selection(self): selected_data = self.get_output("Selected Data") self.assertEqual(len(selected_data), 10) + def test_set_strings_settings(self): + """ + Test if settings can be loaded as strings and successfully put + in new owplotgui combos. + GH-2240 + """ + self.send_signal("Data", self.data) + settings = self.widget.settingsHandler.pack_data(self.widget) + graph_settings = settings["context_settings"][0].values["graph"] + graph_settings["attr_label"] = ("sepal length", -2) + graph_settings["attr_color"] = ("sepal width", -2) + graph_settings["attr_shape"] = ("iris", -2) + graph_settings["attr_size"] = ("petal width", -2) + w = self.create_widget(OWScatterPlot, stored_settings=settings) + self.send_signal("Data", self.data, widget=w) + self.assertEqual(w.graph.attr_label.name, "sepal length") + self.assertEqual(w.graph.attr_color.name, "sepal width") + self.assertEqual(w.graph.attr_shape.name, "iris") + self.assertEqual(w.graph.attr_size.name, "petal width") + if __name__ == "__main__": import unittest