Skip to content

Commit 331cc84

Browse files
authored
Merge pull request #4502 from aturanjanin/owpurgedomain
[ENH] OWPurgeDomain: Data info displayed in the status bar
2 parents 17e9691 + aae8c47 commit 331cc84

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

Orange/widgets/data/owpurgedomain.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from Orange.widgets.settings import Setting
66
from Orange.widgets.utils.sql import check_sql_input
77
from Orange.widgets.utils.widgetpreview import WidgetPreview
8+
from Orange.widgets.utils.state_summary import format_summary_details
89
from Orange.widgets.widget import Input, Output
910

1011

@@ -100,11 +101,16 @@ def __init__(self):
100101
gui.auto_send(self.buttonsArea, self, "autoSend")
101102
gui.rubber(self.controlArea)
102103

104+
self.info.set_input_summary(self.info.NoInput)
105+
self.info.set_output_summary(self.info.NoOutput)
106+
103107
@Inputs.data
104108
@check_sql_input
105109
def setData(self, dataset):
106110
if dataset is not None:
107111
self.data = dataset
112+
self.info.set_input_summary(len(dataset),
113+
format_summary_details(dataset))
108114
self.unconditional_commit()
109115
else:
110116
self.removedAttrs = "-"
@@ -117,6 +123,8 @@ def setData(self, dataset):
117123
self.reducedMetas = "-"
118124
self.Outputs.data.send(None)
119125
self.data = None
126+
self.info.set_input_summary(self.info.NoInput)
127+
self.info.set_output_summary(self.info.NoOutput)
120128

121129
def optionsChanged(self):
122130
self.commit()
@@ -149,6 +157,8 @@ def commit(self):
149157
self.removedMetas = meta_res['removed']
150158
self.reducedMetas = meta_res['reduced']
151159

160+
self.info.set_output_summary(len(cleaned),
161+
format_summary_details(cleaned))
152162
self.Outputs.data.send(cleaned)
153163

154164
def send_report(self):
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# pylint: disable=unsubscriptable-object
2+
from unittest.mock import Mock
3+
4+
from Orange.data import Table
5+
from Orange.widgets.data.owpurgedomain import OWPurgeDomain
6+
from Orange.widgets.tests.base import WidgetTest
7+
from Orange.widgets.utils.state_summary import format_summary_details
8+
9+
10+
class TestOWPurgeDomain(WidgetTest):
11+
def setUp(self):
12+
self.widget = self.create_widget(OWPurgeDomain)
13+
self.iris = Table("iris")
14+
15+
def test_summary(self):
16+
"""Check if the status bar is updated when data is received"""
17+
data = self.iris
18+
input_sum = self.widget.info.set_input_summary = Mock()
19+
output_sum = self.widget.info.set_output_summary = Mock()
20+
21+
self.send_signal(self.widget.Inputs.data, data)
22+
input_sum.assert_called_with(len(data), format_summary_details(data))
23+
output = self.get_output(self.widget.Outputs.data)
24+
output_sum.assert_called_with(len(output),
25+
format_summary_details(output))
26+
input_sum.reset_mock()
27+
output_sum.reset_mock()
28+
self.send_signal(self.widget.Inputs.data, None)
29+
input_sum.assert_called_once()
30+
self.assertEqual(input_sum.call_args[0][0].brief, "")
31+
output_sum.assert_called_once()
32+
self.assertEqual(output_sum.call_args[0][0].brief, "")

0 commit comments

Comments
 (0)