MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_bulk_replace

Method test_bulk_replace

test/ext/test_associationproxy.py:610–627  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

608 assert_raises(TypeError, set, [p1.children])
609
610 def test_bulk_replace(self):
611 Parent = self.classes.Parent
612
613 p1 = Parent("foo")
614 p1.children = {"a": "v a", "b": "v b", "c": "v c"}
615 assocs = set(p1._children.values())
616 keep_assocs = {a for a in assocs if a.foo in ("a", "c")}
617 eq_(len(keep_assocs), 2)
618 remove_assocs = {a for a in assocs if a.foo == "b"}
619
620 p1.children = {"a": "v a", "d": "v d", "c": "v c"}
621 eq_(
622 {a for a in p1._children.values() if a.foo in ("a", "c")},
623 keep_assocs,
624 )
625 assert not remove_assocs.intersection(p1._children.values())
626
627 eq_(p1.children, {"a": "v a", "d": "v d", "c": "v c"})
628
629
630class SetTest(_CollectionOperations):

Callers

nothing calls this directly

Calls 4

eq_Function · 0.90
ParentClass · 0.70
valuesMethod · 0.45
intersectionMethod · 0.45

Tested by

no test coverage detected