Skip to content

Commit d6cfa43

Browse files
authored
Merge pull request #4512 from aturanjanin/datasets
[ENH] OWDatasets: Data info displayed in the status bar
2 parents 7b57bbd + 2067f4e commit d6cfa43

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

Orange/widgets/data/owdatasets.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from Orange.widgets import settings, gui
2929
from Orange.widgets.utils.signals import Output
3030
from Orange.widgets.utils.widgetpreview import WidgetPreview
31+
from Orange.widgets.utils.state_summary import format_summary_details
3132
from Orange.widgets.widget import OWWidget, Msg
3233

3334

@@ -232,6 +233,8 @@ def __init__(self):
232233
self.splitter.addWidget(self.view)
233234
self.splitter.addWidget(box)
234235

236+
self.info.set_output_summary(self.info.NoOutput)
237+
235238
self.splitter.setSizes([300, 200])
236239
self.splitter.splitterMoved.connect(
237240
lambda:
@@ -535,9 +538,12 @@ def closeEvent(self, event):
535538
def load_and_output(self, path):
536539
if path is None:
537540
self.Outputs.data.send(None)
541+
self.info.set_output_summary(self.info.NoOutput)
538542
else:
539543
data = self.load_data(path)
540544
self.Outputs.data.send(data)
545+
self.info.set_output_summary(len(data),
546+
format_summary_details(data))
541547

542548
self.current_output = path
543549
self.__update_cached_state()

Orange/widgets/data/tests/test_owdatasets.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from Orange.widgets.data.owdatasets import OWDataSets
99
from Orange.widgets.tests.base import WidgetTest
10+
from Orange.widgets.utils.state_summary import format_summary_details
1011

1112

1213
class TestOWDataSets(WidgetTest):
@@ -75,6 +76,24 @@ def test_dir_depth(self):
7576
self.wait_until_stop_blocking(w)
7677
self.assertEqual(w.view.model().rowCount(), 2)
7778

79+
@patch("Orange.widgets.data.owdatasets.OWDataSets.list_remote",
80+
Mock(return_value={('core', 'iris.tab'): {}}))
81+
@patch("Orange.widgets.data.owdatasets.OWDataSets.list_local",
82+
Mock(return_value={}))
83+
@patch("Orange.widgets.data.owdatasets.ensure_local",
84+
Mock(return_value="iris.tab"))
85+
def test_summary(self):
86+
"""Check if status bar is updated when data is received"""
87+
widget = self.create_widget(OWDataSets)
88+
output_sum = widget.info.set_output_summary = Mock()
89+
self.wait_until_stop_blocking(widget)
90+
# select the only dataset
91+
sel_type = QItemSelectionModel.ClearAndSelect | QItemSelectionModel.Rows
92+
widget.view.selectionModel().select(widget.view.model().index(0, 0), sel_type)
93+
widget.commit()
94+
output = self.get_output(widget.Outputs.data, widget)
95+
output_sum.assert_called_with(len(output),
96+
format_summary_details(output))
7897

7998
if __name__ == "__main__":
8099
unittest.main()

0 commit comments

Comments
 (0)