MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_many_to_one_cascade

Method test_many_to_one_cascade

test/orm/test_merge.py:909–942  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

907 eq_(u3.name, "also fred")
908
909 def test_many_to_one_cascade(self):
910 Address, addresses, users, User = (
911 self.classes.Address,
912 self.tables.addresses,
913 self.tables.users,
914 self.classes.User,
915 )
916
917 self.mapper_registry.map_imperatively(
918 Address, addresses, properties={"user": relationship(User)}
919 )
920 self.mapper_registry.map_imperatively(User, users)
921
922 u1 = User(id=1, name="u1")
923 a1 = Address(id=1, email_address="a1", user=u1)
924 u2 = User(id=2, name="u2")
925
926 sess = fixture_session(expire_on_commit=False)
927 sess.add_all([a1, u2])
928 sess.commit()
929
930 a1.user = u2
931
932 with fixture_session(expire_on_commit=False) as sess2:
933 a2 = sess2.merge(a1)
934 eq_(attributes.get_history(a2, "user"), ([u2], (), ()))
935 assert a2 in sess2.dirty
936
937 sess.refresh(a1)
938
939 with fixture_session(expire_on_commit=False) as sess2:
940 a2 = sess2.merge(a1, load=False)
941 eq_(attributes.get_history(a2, "user"), ((), [u1], ()))
942 assert a2 not in sess2.dirty
943
944 def test_many_to_many_cascade(self):
945 items, Order, orders, order_items, Item = (

Callers

nothing calls this directly

Calls 11

relationshipFunction · 0.90
fixture_sessionFunction · 0.90
eq_Function · 0.90
map_imperativelyMethod · 0.80
UserClass · 0.70
AddressClass · 0.70
add_allMethod · 0.45
commitMethod · 0.45
mergeMethod · 0.45
get_historyMethod · 0.45
refreshMethod · 0.45

Tested by

no test coverage detected