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

Method test_set_operations

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

Source from the content-addressed store, hash-verified

629 collection_class = set
630
631 def test_set_operations(self):
632 Parent, Child = self.classes.Parent, self.classes.Child
633
634 self.session = fixture_session()
635
636 p1 = Parent("P1")
637
638 self.assert_(not p1._children)
639 self.assert_(not p1.children)
640
641 ch1 = Child("regular")
642 p1._children.add(ch1)
643
644 self.assert_(ch1 in p1._children)
645 self.assert_(len(p1._children) == 1)
646
647 self.assert_(p1.children)
648 self.assert_(len(p1.children) == 1)
649 self.assert_(ch1 not in p1.children)
650 self.assert_("regular" in p1.children)
651
652 p1.children.add("proxied")
653
654 self.assert_("proxied" in p1.children)
655 self.assert_("proxied" not in p1._children)
656 self.assert_(len(p1.children) == 2)
657 self.assert_(len(p1._children) == 2)
658
659 self.assert_({o.name for o in p1._children} == {"regular", "proxied"})
660
661 ch2 = None
662 for o in p1._children:
663 if o.name == "proxied":
664 ch2 = o
665 break
666
667 p1._children.remove(ch2)
668
669 self.assert_(len(p1._children) == 1)
670 self.assert_(len(p1.children) == 1)
671 self.assert_(p1._children == {ch1})
672
673 p1.children.remove("regular")
674
675 self.assert_(len(p1._children) == 0)
676 self.assert_(len(p1.children) == 0)
677
678 p1.children = ["a", "b", "c"]
679 self.assert_(len(p1._children) == 3)
680 self.assert_(len(p1.children) == 3)
681
682 del ch1
683 p1 = self.roundtrip(p1)
684
685 self.assert_(len(p1._children) == 3)
686 self.assert_(len(p1.children) == 3)
687
688 self.assert_("a" in p1.children)

Callers

nothing calls this directly

Calls 10

fixture_sessionFunction · 0.90
assert_raisesFunction · 0.90
ParentClass · 0.70
ChildClass · 0.70
assert_Method · 0.45
addMethod · 0.45
removeMethod · 0.45
roundtripMethod · 0.45
discardMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected