MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_mapping_ops

Method test_mapping_ops

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

Source from the content-addressed store, hash-verified

524 collection_class = DictCollection
525
526 def test_mapping_ops(self):
527 Parent, Child = self.classes("Parent", "Child")
528
529 self.session = fixture_session()
530
531 p1 = Parent("P1")
532
533 self.assert_(not p1._children)
534 self.assert_(not p1.children)
535
536 ch = Child("a", "regular")
537 p1._children.append(ch)
538
539 self.assert_(ch in list(p1._children.values()))
540 self.assert_(len(p1._children) == 1)
541
542 self.assert_(p1.children)
543 self.assert_(len(p1.children) == 1)
544 self.assert_(ch not in p1.children)
545 self.assert_("a" in p1.children)
546 self.assert_(p1.children["a"] == "regular")
547 self.assert_(p1._children["a"] == ch)
548
549 p1.children["b"] = "proxied"
550
551 eq_(list(p1.children.keys()), ["a", "b"])
552 eq_(list(p1.children.items()), [("a", "regular"), ("b", "proxied")])
553 eq_(list(p1.children.values()), ["regular", "proxied"])
554
555 self.assert_("proxied" in list(p1.children.values()))
556 self.assert_("b" in p1.children)
557 self.assert_("proxied" not in p1._children)
558 self.assert_(len(p1.children) == 2)
559 self.assert_(len(p1._children) == 2)
560
561 self.assert_(p1._children["a"].name == "regular")
562 self.assert_(p1._children["b"].name == "proxied")
563
564 del p1._children["b"]
565
566 self.assert_(len(p1._children) == 1)
567 self.assert_(len(p1.children) == 1)
568 self.assert_(p1._children["a"] == ch)
569
570 del p1.children["a"]
571
572 self.assert_(len(p1._children) == 0)
573 self.assert_(len(p1.children) == 0)
574
575 p1.children = {"d": "v d", "e": "v e", "f": "v f"}
576 self.assert_(len(p1._children) == 3)
577 self.assert_(len(p1.children) == 3)
578
579 self.assert_(set(p1.children) == {"d", "e", "f"})
580
581 del ch
582 p1 = self.roundtrip(p1)
583 self.assert_(len(p1._children) == 3)

Callers

nothing calls this directly

Calls 11

fixture_sessionFunction · 0.90
eq_Function · 0.90
assert_raisesFunction · 0.90
ParentClass · 0.70
ChildClass · 0.70
assert_Method · 0.45
appendMethod · 0.45
valuesMethod · 0.45
keysMethod · 0.45
itemsMethod · 0.45
roundtripMethod · 0.45

Tested by

no test coverage detected