Skip to content

Commit f4cbdbb

Browse files
authored
Merge pull request #3985 from VesnaT/hidden_effective_variables_fix
[FIX] Scatter plot: Hidden variables fix
2 parents 53e47df + 222e495 commit f4cbdbb

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

Orange/widgets/tests/base.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,21 @@ def test_send_report(self, timeout=DEFAULT_TIMEOUT):
730730
self.send_signal(self.widget.Inputs.data, None)
731731
self.widget.report_button.click()
732732

733+
def test_hidden_effective_variables(self, timeout=DEFAULT_TIMEOUT):
734+
hidden_var1 = ContinuousVariable("c1")
735+
hidden_var1.attributes["hidden"] = True
736+
hidden_var2 = ContinuousVariable("c2")
737+
hidden_var2.attributes["hidden"] = True
738+
class_vars = [DiscreteVariable("cls", values=["a", "b"])]
739+
table = Table(Domain([hidden_var1, hidden_var2], class_vars),
740+
np.array([[0., 1.], [2., 3.]]),
741+
np.array([[0.], [1.]]))
742+
self.send_signal(self.widget.Inputs.data, table)
743+
if self.widget.isBlocking():
744+
spy = QSignalSpy(self.widget.blockingStateChanged)
745+
self.assertTrue(spy.wait(timeout))
746+
self.send_signal(self.widget.Inputs.data, table)
747+
733748

734749
class AnchorProjectionWidgetTestMixin(ProjectionWidgetTestMixin):
735750
def test_embedding_missing_values(self):

Orange/widgets/visualize/owscatterplot.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ def _add_controls_sampling(self):
297297

298298
@property
299299
def effective_variables(self):
300-
return [self.attr_x, self.attr_y]
300+
return [self.attr_x, self.attr_y] if self.attr_x and self.attr_y else []
301301

302302
def _vizrank_color_change(self):
303303
self.vizrank.initialize()

Orange/widgets/visualize/tests/test_owscatterplot.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ def test_invalidated_features_first(self):
634634
# send features (same as default ones)
635635
self.send_signal(self.widget.Inputs.features,
636636
AttributeList(self.data.domain.attributes[:2]))
637-
self.assertListEqual(self.widget.effective_variables, [None, None])
637+
self.assertListEqual(self.widget.effective_variables, [])
638638
self.widget.setup_plot.assert_called_once()
639639

640640
# send data
@@ -685,7 +685,7 @@ def test_invalidated_diff_features_features_first(self):
685685
# send features (not the same as defaults)
686686
self.send_signal(self.widget.Inputs.features,
687687
AttributeList(self.data.domain.attributes[2:4]))
688-
self.assertListEqual(self.widget.effective_variables, [None, None])
688+
self.assertListEqual(self.widget.effective_variables, [])
689689
self.widget.setup_plot.assert_called_once()
690690

691691
# send data

0 commit comments

Comments
 (0)