Skip to content

Commit

Permalink
Merge pull request #4513 from aturanjanin/owdatainfo
Browse files Browse the repository at this point in the history
[ENH] OWDataInfo: Data info displayed in the status bar
  • Loading branch information
VesnaT authored Mar 13, 2020
2 parents bafa2ad + 02cc27b commit 7b57bbd
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
5 changes: 5 additions & 0 deletions Orange/widgets/data/owdatainfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from Orange.widgets import widget, gui
from Orange.widgets.utils.widgetpreview import WidgetPreview
from Orange.widgets.utils.state_summary import format_summary_details
from Orange.widgets.widget import Input
from Orange.data.table import Table
from Orange.data import StringVariable, DiscreteVariable, ContinuousVariable
Expand Down Expand Up @@ -42,6 +43,8 @@ def __init__(self):
addSpace=False and box != "Meta Attributes")
gui.label(bo, self, "%%(%s)s" % name)

self.info.set_input_summary(self.info.NoInput)

# ensure the widget has some decent minimum width.
self.targets = "Categorical outcome with 123 values"
self.layout().activate()
Expand All @@ -56,7 +59,9 @@ def __init__(self):
def data(self, data):
if data is None:
self._clear_fields()
self.info.set_input_summary(self.info.NoInput)
else:
self.info.set_input_summary(len(data), format_summary_details(data))
self._set_fields(data)
self._set_report(data)

Expand Down
16 changes: 15 additions & 1 deletion Orange/widgets/data/tests/test_owdatainfo.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
# Test methods with long descriptive names can omit docstrings
# pylint: disable=missing-docstring
# pylint: disable=missing-docstring,unsubscriptable-object
from unittest.mock import Mock

from Orange.data import Table
from Orange.widgets.data.owdatainfo import OWDataInfo
from Orange.widgets.tests.base import WidgetTest
from Orange.widgets.utils.state_summary import format_summary_details


class TestOWDataInfo(WidgetTest):
Expand All @@ -25,3 +28,14 @@ def test_data_attributes(self):
data = Table("iris")
data.attributes = {"att 1": 1, "att 2": True, "att 3": 3}
self.send_signal(self.widget.Inputs.data, data)

def test_summary(self):
"""Check if the status bar is updated when data is received"""
data = Table("iris")
input_sum = self.widget.info.set_input_summary = Mock()
self.send_signal(self.widget.Inputs.data, data)
input_sum.assert_called_with(len(data), format_summary_details(data))
input_sum.reset_mock()
self.send_signal(self.widget.Inputs.data, None)
input_sum.assert_called_once()
self.assertEqual(input_sum.call_args[0][0].brief, "")

0 comments on commit 7b57bbd

Please sign in to comment.