Skip to content

Commit b0355f9

Browse files
committed
Use fully qualified class names in parity-failure output
When the mirrored classes share an unqualified name (e.g. both PEP 380 and PEP 828 have a `TestInterestingEdgeCases`), the failure message talked about the class on both sides as if it were the same class. Use `module.qualname` so each side is unambiguous.
1 parent 43b6f89 commit b0355f9

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

Lib/test/test_async_yield_from.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1633,19 +1633,22 @@ def assert_parity(self, base_class, variant_class, *, suffix):
16331633
def test_methods(cls):
16341634
return {n for n in dir(cls) if n.startswith("test_")}
16351635

1636+
def fqn(cls):
1637+
return f"{cls.__module__}.{cls.__qualname__}"
1638+
16361639
expected = {n + suffix for n in test_methods(base_class)}
16371640
actual = test_methods(variant_class)
16381641
missing = sorted(expected - actual)
16391642
extra = sorted(actual - expected)
16401643
if missing or extra:
16411644
lines = [
1642-
f"{variant_class.__name__} is not a 1:1 mirror of "
1643-
f"{base_class.__name__} (suffix {suffix!r}):"
1645+
f"{fqn(variant_class)} is not a 1:1 mirror of "
1646+
f"{fqn(base_class)} (suffix {suffix!r}):"
16441647
]
16451648
for name in missing:
1646-
lines.append(f" missing in {variant_class.__name__}: {name}")
1649+
lines.append(f" missing in {fqn(variant_class)}: {name}")
16471650
for name in extra:
1648-
lines.append(f" no counterpart in {base_class.__name__}: {name}")
1651+
lines.append(f" no counterpart in {fqn(base_class)}: {name}")
16491652
self.fail("\n".join(lines))
16501653

16511654
def test_TestPEP828Operation(self):

0 commit comments

Comments
 (0)