Skip to content

Commit df39eab

Browse files
committed
tests: Add test for class inheriting self through base class
Issue-368: #368
1 parent ed33a82 commit df39eab

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

tests/test_inspector.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,27 @@ def test_inspecting_class_instance() -> None:
164164
},
165165
) as tmp_package:
166166
assert not tmp_package["foo.x"].is_alias
167+
168+
169+
def test_inheriting_self_from_parent_class() -> None:
170+
"""Inspect self only once when inheriting it from parent class."""
171+
with temporary_inspected_module(
172+
"""
173+
class A: ...
174+
class B(A): ...
175+
176+
A.B = B
177+
""",
178+
) as module:
179+
assert "B" in module["A"].members
180+
assert "B" in module["B"].all_members
181+
# Continue indefinitely.
182+
assert "B" in module["A.B"].all_members
183+
assert "B" in module["B.B"].all_members
184+
assert "B" in module["A.B.B"].all_members
185+
assert "B" in module["B.B.B"].all_members
186+
# All resolve to A.B.
187+
assert module["A.B.B"].final_target is module["A.B"]
188+
assert module["B.B.B"].final_target is module["A.B"]
189+
assert module["A.B.B.B"].final_target is module["A.B"]
190+
assert module["B.B.B.B"].final_target is module["A.B"]

0 commit comments

Comments
 (0)