|
1 | 1 | # Test methods with long descriptive names can omit docstrings |
2 | 2 | # pylint: disable=missing-docstring |
3 | 3 | # There are never too many tests, so: |
4 | | -# pylint: disable=too-many-lines,too-many-public-methods |
| 4 | +# pylint: disable=too-many-lines,too-many-public-methods, protected-access |
5 | 5 | from itertools import chain |
6 | 6 | import unittest |
7 | 7 | from unittest.mock import Mock |
|
16 | 16 | from Orange.widgets.data.owmergedata import OWMergeData, INSTANCEID, INDEX, \ |
17 | 17 | MergeDataContextHandler |
18 | 18 | from Orange.widgets.tests.base import WidgetTest |
| 19 | +from Orange.widgets.utils.state_summary import format_multiple_summaries, \ |
| 20 | + format_summary_details |
19 | 21 | from Orange.tests import test_filename |
20 | 22 |
|
21 | 23 |
|
@@ -1019,6 +1021,44 @@ def test_keep_non_duplicate_variables_missing_rows(self): |
1019 | 1021 | self.assertListEqual([m.name for m in merged_data.domain.variables], |
1020 | 1022 | ["A", "B", "C"]) |
1021 | 1023 |
|
| 1024 | + def test_summary(self): |
| 1025 | + """Check if the status bar is updated when data is received""" |
| 1026 | + data = self.dataA |
| 1027 | + info = self.widget.info |
| 1028 | + no_input, no_output = "No data on input", "No data on output" |
| 1029 | + |
| 1030 | + self.send_signal(self.widget.Inputs.data, data) |
| 1031 | + data_list = [("Data", data), ("Extra data", None)] |
| 1032 | + summary, details = f"{len(data)}, 0", format_multiple_summaries(data_list) |
| 1033 | + self.assertEqual(info._StateInfo__input_summary.brief, summary) |
| 1034 | + self.assertEqual(info._StateInfo__input_summary.details, details) |
| 1035 | + self.assertEqual(info._StateInfo__output_summary.brief, "") |
| 1036 | + self.assertEqual(info._StateInfo__output_summary.details, no_output) |
| 1037 | + |
| 1038 | + self.send_signal(self.widget.Inputs.extra_data, data) |
| 1039 | + data_list = [("Data", data), ("Extra data", data)] |
| 1040 | + summary = f"{len(data)}, {len(data)}" |
| 1041 | + details = format_multiple_summaries(data_list) |
| 1042 | + self.assertEqual(info._StateInfo__input_summary.brief, summary) |
| 1043 | + self.assertEqual(info._StateInfo__input_summary.details, details) |
| 1044 | + output = self.get_output(self.widget.Outputs.data) |
| 1045 | + summary, details = f"{len(output)}", format_summary_details(output) |
| 1046 | + self.assertEqual(info._StateInfo__output_summary.brief, summary) |
| 1047 | + self.assertEqual(info._StateInfo__output_summary.details, details) |
| 1048 | + |
| 1049 | + self.send_signal(self.widget.Inputs.data, None) |
| 1050 | + data_list = [("Data", None), ("Extra data", data)] |
| 1051 | + summary, details = f"0, {len(data)}", format_multiple_summaries(data_list) |
| 1052 | + self.assertEqual(info._StateInfo__input_summary.brief, summary) |
| 1053 | + self.assertEqual(info._StateInfo__input_summary.details, details) |
| 1054 | + self.assertEqual(info._StateInfo__output_summary.brief, "") |
| 1055 | + self.assertEqual(info._StateInfo__output_summary.details, no_output) |
| 1056 | + |
| 1057 | + self.send_signal(self.widget.Inputs.extra_data, None) |
| 1058 | + self.assertEqual(info._StateInfo__input_summary.brief, "") |
| 1059 | + self.assertEqual(info._StateInfo__input_summary.details, no_input) |
| 1060 | + self.assertEqual(info._StateInfo__output_summary.brief, "") |
| 1061 | + self.assertEqual(info._StateInfo__output_summary.details, no_output) |
1022 | 1062 |
|
1023 | 1063 | class MergeDataContextHandlerTest(unittest.TestCase): |
1024 | 1064 | # These units are too small to test individually, so they are tested |
|
0 commit comments