Skip to content

Commit 07ddbf9

Browse files
committed
OWTable: Include attributes from meta attributes in header row labels
1 parent 622bc48 commit 07ddbf9

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

Orange/widgets/data/owtable.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,8 @@ def _update_variable_labels(self, view):
689689
RichTableModel.Labels | RichTableModel.Name)
690690

691691
labelnames = set()
692-
for a in model.source.domain.variables:
692+
domain = model.source.domain
693+
for a in itertools.chain(domain.metas, domain.variables):
693694
labelnames.update(a.attributes.keys())
694695
labelnames = sorted(
695696
[label for label in labelnames if not label.startswith("_")])

Orange/widgets/data/tests/test_owtable.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Test methods with long descriptive names can omit docstrings
2-
# pylint: disable=missing-docstring
1+
from unittest.mock import Mock
2+
33
from Orange.widgets.data.owtable import OWDataTable
44
from Orange.widgets.tests.base import WidgetTest, WidgetOutputsTestMixin
5-
from Orange.data import Table
5+
from Orange.data import Table, Domain
66

77

88
class TestOWDataTable(WidgetTest, WidgetOutputsTestMixin):
@@ -43,3 +43,16 @@ def _select_data(self):
4343
self.widget.selected_rows = list(range(0, len(self.data.domain), 10))
4444
self.widget.set_selection()
4545
return self.widget.selected_rows
46+
47+
def test_attrs_appear_in_corner_text(self):
48+
iris = Table("iris")
49+
domain = iris.domain
50+
new_domain = Domain(
51+
domain.attributes[1:], iris.domain.class_var, domain.attributes[:1])
52+
new_domain.metas[0].attributes = {"c": "foo"}
53+
new_domain.attributes[0].attributes = {"a": "bar", "c": "baz"}
54+
new_domain.class_var.attributes = {"b": "foo"}
55+
self.widget.set_corner_text = Mock()
56+
self.send_signal(self.widget.Inputs.data, iris.transform(new_domain))
57+
self.assertEqual(
58+
self.widget.set_corner_text.call_args[0][1], "\na\nb\nc")

0 commit comments

Comments
 (0)