diff --git a/src/textual/dom.py b/src/textual/dom.py index 100aed965..2adebdafe 100644 --- a/src/textual/dom.py +++ b/src/textual/dom.py @@ -319,7 +319,7 @@ class DOMNode(MessagePump): @classmethod @lru_cache(maxsize=None) - def _get_component_classes(cls) -> Sequence[str]: + def _get_component_classes(cls) -> frozenset[str]: """Gets the component classes for this class and inherited from bases. Component classes are inherited from base classes, unless @@ -335,7 +335,7 @@ class DOMNode(MessagePump): if not base.__dict__.get("_inherit_component_classes", True): break - return sorted(component_classes) + return frozenset(component_classes) @property def parent(self) -> DOMNode | None: diff --git a/tests/test_dom.py b/tests/test_dom.py index f366d0706..3553a4443 100644 --- a/tests/test_dom.py +++ b/tests/test_dom.py @@ -157,13 +157,13 @@ def test_component_classes_inheritance(): f = F() f_cc = f._get_component_classes() - assert node_cc == set() - assert a_cc == {"a-1", "a-2"} - assert b_cc == {"b-1"} - assert c_cc == {"b-1", "c-1", "c-2"} + assert node_cc == [] + assert a_cc == ["a-1", "a-2"] + assert b_cc == ["b-1"] + assert c_cc == ["b-1", "c-1", "c-2"] assert d_cc == c_cc - assert e_cc == {"b-1", "c-1", "c-2", "e-1"} - assert f_cc == {"f-1"} + assert e_cc == ["b-1", "c-1", "c-2", "e-1"] + assert f_cc == ["f-1"] @pytest.fixture