Skip to content

Commit 20c6e1e

Browse files
VesnaTkernc
authored andcommitted
OWDataTable: Do not override widget's inputs
They should not be overriden, unless there is some non-obvious reason, in order to make report unittest work for this widget.
1 parent ee8ccce commit 20c6e1e

File tree

2 files changed

+30
-8
lines changed

2 files changed

+30
-8
lines changed

Orange/widgets/data/owtable.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ class OWDataTable(widget.OWWidget):
379379
def __init__(self):
380380
super().__init__()
381381

382-
self.inputs = OrderedDict()
382+
self._inputs = OrderedDict()
383383

384384
self.dist_color = QtGui.QColor(*self.dist_color_RGB)
385385

@@ -436,9 +436,9 @@ def set_dataset(self, data, tid=None):
436436
"""Set the input dataset."""
437437
self.closeContext()
438438
if data is not None:
439-
if tid in self.inputs:
439+
if tid in self._inputs:
440440
# update existing input slot
441-
slot = self.inputs[tid]
441+
slot = self._inputs[tid]
442442
view = slot.view
443443
# reset the (header) view state.
444444
view.setModel(None)
@@ -472,7 +472,7 @@ def sort_reset(index, order):
472472
self._setup_table_view(view, data)
473473
slot = TableSlot(tid, data, table_summary(data), view)
474474
view._input_slot = slot
475-
self.inputs[tid] = slot
475+
self._inputs[tid] = slot
476476

477477
self.tabs.setCurrentIndex(self.tabs.indexOf(view))
478478

@@ -485,8 +485,8 @@ def update(f):
485485

486486
slot.summary.len.add_done_callback(update)
487487

488-
elif tid in self.inputs:
489-
slot = self.inputs.pop(tid)
488+
elif tid in self._inputs:
489+
slot = self._inputs.pop(tid)
490490
view = slot.view
491491
view.hide()
492492
view.deleteLater()
@@ -657,7 +657,7 @@ def _update_variable_labels(self, view):
657657

658658
def _on_show_variable_labels_changed(self):
659659
"""The variable labels (var.attribues) visibility was changed."""
660-
for slot in self.inputs.values():
660+
for slot in self._inputs.values():
661661
self._update_variable_labels(slot.view)
662662

663663
def _on_distribution_color_changed(self):
@@ -683,7 +683,7 @@ def _on_distribution_color_changed(self):
683683
tab.reset()
684684

685685
def _on_select_rows_changed(self):
686-
for slot in self.inputs.values():
686+
for slot in self._inputs.values():
687687
selection_model = slot.view.selectionModel()
688688
selection_model.setSelectBlocks(not self.select_rows)
689689
if self.select_rows:
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from Orange.data import Table
2+
from Orange.widgets.data.owtable import OWDataTable
3+
from Orange.widgets.tests.base import WidgetTest
4+
5+
6+
class TestOWDataTable(WidgetTest):
7+
def setUp(self):
8+
self.widget = self.create_widget(OWDataTable)
9+
self.iris = Table("iris")
10+
11+
def test_input_data(self):
12+
"""Check number of tabs with data on the input"""
13+
self.send_signal("Data", self.iris, 1)
14+
self.assertEqual(self.widget.tabs.count(), 1)
15+
self.send_signal("Data", self.iris, 2)
16+
self.assertEqual(self.widget.tabs.count(), 2)
17+
self.send_signal("Data", None, 1)
18+
self.assertEqual(self.widget.tabs.count(), 1)
19+
20+
def test_data_model(self):
21+
self.send_signal("Data", self.iris, 1)
22+
self.assertEqual(self.widget.tabs.widget(0).model().rowCount(), len(self.iris))

0 commit comments

Comments
 (0)