MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / test_traverse_internals

Method test_traverse_internals

test/sql/test_compare.py:1468–1498  ·  view source on GitHub ↗
(self, cls: type)

Source from the content-addressed store, hash-verified

1466
1467 @testing.combinations(*all_hascachekey_subclasses())
1468 def test_traverse_internals(self, cls: type):
1469 super_traverse = {}
1470 # ignore_super = self.ignore_super.get(cls.__name__, set())
1471 for s in cls.mro()[1:]:
1472 for attr in s.__dict__:
1473 if not attr.endswith("_traverse_internals"):
1474 continue
1475 for k, v in s.__dict__[attr]:
1476 if k not in super_traverse:
1477 super_traverse[k] = v
1478 traverse_dict = dict(cls.__dict__["_traverse_internals"])
1479 eq_(len(cls.__dict__["_traverse_internals"]), len(traverse_dict))
1480 if cls.__name__ in self.custom_traverse:
1481 eq_(traverse_dict.keys(), self.custom_traverse[cls.__name__])
1482 else:
1483 ignore = self.ignore_keys.get(cls.__name__, set())
1484
1485 left_keys = traverse_dict.keys() | ignore
1486 is_true(
1487 left_keys >= super_traverse.keys(),
1488 f"{left_keys} >= {super_traverse.keys()} - missing: "
1489 f"{super_traverse.keys() - left_keys} - ignored {ignore}",
1490 )
1491
1492 subset = {
1493 k: v for k, v in traverse_dict.items() if k in super_traverse
1494 }
1495 eq_(
1496 subset,
1497 {k: v for k, v in super_traverse.items() if k not in ignore},
1498 )
1499
1500 # name -> (traverse names, init args)
1501 custom_init = {

Callers

nothing calls this directly

Calls 6

eq_Function · 0.90
is_trueFunction · 0.90
endswithMethod · 0.45
keysMethod · 0.45
getMethod · 0.45
itemsMethod · 0.45

Tested by

no test coverage detected