|
6 | 6 | from Orange.widgets.tests.base import WidgetTest, WidgetOutputsTestMixin |
7 | 7 | from Orange.classification import CN2Learner |
8 | 8 | from Orange.widgets.visualize.owruleviewer import OWRuleViewer |
| 9 | +from Orange.widgets.utils.state_summary import format_summary_details |
9 | 10 |
|
10 | 11 |
|
11 | 12 | class TestOWRuleViewer(WidgetTest, WidgetOutputsTestMixin): |
@@ -156,3 +157,41 @@ def _select_data(self): |
156 | 157 | selection_model.select(self.widget.proxy_model.index(2, 0), |
157 | 158 | selection_model.Select | selection_model.Rows) |
158 | 159 | return list(range(586, 597)) |
| 160 | + |
| 161 | + def test_summary(self): |
| 162 | + """Check if status bar is updated when data is received""" |
| 163 | + info = self.widget.info |
| 164 | + no_input, no_output = "No data on input", "No data on output" |
| 165 | + |
| 166 | + data = self.titanic |
| 167 | + self.send_signal(self.widget.Inputs.data, data) |
| 168 | + summary, details = f"{len(data)}", format_summary_details(data) |
| 169 | + self.assertEqual(info._StateInfo__input_summary.brief, summary) |
| 170 | + self.assertEqual(info._StateInfo__input_summary.details, details) |
| 171 | + self.assertEqual(info._StateInfo__output_summary.brief, "") |
| 172 | + self.assertEqual(info._StateInfo__output_summary.details, no_output) |
| 173 | + |
| 174 | + self.send_signal(self.widget.Inputs.classifier, self.classifier) |
| 175 | + summary, details = f"{len(data)}", format_summary_details(data) |
| 176 | + self.assertEqual(info._StateInfo__input_summary.brief, summary) |
| 177 | + self.assertEqual(info._StateInfo__input_summary.details, details) |
| 178 | + self.assertEqual(info._StateInfo__output_summary.brief, "") |
| 179 | + self.assertEqual(info._StateInfo__output_summary.details, no_output) |
| 180 | + self._select_data() |
| 181 | + output = self.get_output(self.widget.Outputs.selected_data) |
| 182 | + summary, details = f"{len(output)}", format_summary_details(output) |
| 183 | + self.assertEqual(info._StateInfo__output_summary.brief, summary) |
| 184 | + self.assertEqual(info._StateInfo__output_summary.details, details) |
| 185 | + |
| 186 | + self.send_signal(self.widget.Inputs.data, None) |
| 187 | + self.assertEqual(info._StateInfo__input_summary.brief, "") |
| 188 | + self.assertEqual(info._StateInfo__input_summary.details, no_input) |
| 189 | + summary, details = f"{len(output)}", format_summary_details(output) |
| 190 | + self.assertEqual(info._StateInfo__output_summary.brief, summary) |
| 191 | + self.assertEqual(info._StateInfo__output_summary.details, details) |
| 192 | + |
| 193 | + self.send_signal(self.widget.Inputs.classifier, None) |
| 194 | + self.assertEqual(info._StateInfo__input_summary.brief, "") |
| 195 | + self.assertEqual(info._StateInfo__input_summary.details, no_input) |
| 196 | + self.assertEqual(info._StateInfo__output_summary.brief, "") |
| 197 | + self.assertEqual(info._StateInfo__output_summary.details, no_output) |
0 commit comments