diff --git a/Orange/widgets/tests/base.py b/Orange/widgets/tests/base.py index 07ffa7715e4..247b7aa2292 100644 --- a/Orange/widgets/tests/base.py +++ b/Orange/widgets/tests/base.py @@ -730,6 +730,21 @@ def test_send_report(self, timeout=DEFAULT_TIMEOUT): self.send_signal(self.widget.Inputs.data, None) self.widget.report_button.click() + def test_hidden_effective_variables(self, timeout=DEFAULT_TIMEOUT): + hidden_var1 = ContinuousVariable("c1") + hidden_var1.attributes["hidden"] = True + hidden_var2 = ContinuousVariable("c2") + hidden_var2.attributes["hidden"] = True + class_vars = [DiscreteVariable("cls", values=["a", "b"])] + table = Table(Domain([hidden_var1, hidden_var2], class_vars), + np.array([[0., 1.], [2., 3.]]), + np.array([[0.], [1.]])) + self.send_signal(self.widget.Inputs.data, table) + if self.widget.isBlocking(): + spy = QSignalSpy(self.widget.blockingStateChanged) + self.assertTrue(spy.wait(timeout)) + self.send_signal(self.widget.Inputs.data, table) + class AnchorProjectionWidgetTestMixin(ProjectionWidgetTestMixin): def test_embedding_missing_values(self): diff --git a/Orange/widgets/visualize/owscatterplot.py b/Orange/widgets/visualize/owscatterplot.py index dd6f04ec11c..8aeaecfc770 100644 --- a/Orange/widgets/visualize/owscatterplot.py +++ b/Orange/widgets/visualize/owscatterplot.py @@ -297,7 +297,7 @@ def _add_controls_sampling(self): @property def effective_variables(self): - return [self.attr_x, self.attr_y] + return [self.attr_x, self.attr_y] if self.attr_x and self.attr_y else [] def _vizrank_color_change(self): self.vizrank.initialize() diff --git a/Orange/widgets/visualize/tests/test_owscatterplot.py b/Orange/widgets/visualize/tests/test_owscatterplot.py index f088abfd3f4..4d57f48e963 100644 --- a/Orange/widgets/visualize/tests/test_owscatterplot.py +++ b/Orange/widgets/visualize/tests/test_owscatterplot.py @@ -634,7 +634,7 @@ def test_invalidated_features_first(self): # send features (same as default ones) self.send_signal(self.widget.Inputs.features, AttributeList(self.data.domain.attributes[:2])) - self.assertListEqual(self.widget.effective_variables, [None, None]) + self.assertListEqual(self.widget.effective_variables, []) self.widget.setup_plot.assert_called_once() # send data @@ -685,7 +685,7 @@ def test_invalidated_diff_features_features_first(self): # send features (not the same as defaults) self.send_signal(self.widget.Inputs.features, AttributeList(self.data.domain.attributes[2:4])) - self.assertListEqual(self.widget.effective_variables, [None, None]) + self.assertListEqual(self.widget.effective_variables, []) self.widget.setup_plot.assert_called_once() # send data