MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_no_relationship_cascade

Method test_no_relationship_cascade

test/orm/test_merge.py:819–857  ·  view source on GitHub ↗

test that merge doesn't interfere with a relationship() target that specifically doesn't include 'merge' cascade.

(self)

Source from the content-addressed store, hash-verified

817 eq_(u2.id, 5)
818
819 def test_no_relationship_cascade(self):
820 """test that merge doesn't interfere with a relationship()
821 target that specifically doesn't include 'merge' cascade.
822 """
823
824 Address, addresses, users, User = (
825 self.classes.Address,
826 self.tables.addresses,
827 self.tables.users,
828 self.classes.User,
829 )
830
831 self.mapper_registry.map_imperatively(
832 Address,
833 addresses,
834 properties={"user": relationship(User, cascade="save-update")},
835 )
836 self.mapper_registry.map_imperatively(User, users)
837 sess = fixture_session()
838 u1 = User(name="fred")
839 a1 = Address(email_address="asdf", user=u1)
840 sess.add(a1)
841 sess.flush()
842
843 a2 = Address(id=a1.id, email_address="bar", user=User(name="hoho"))
844 a2 = sess.merge(a2)
845 sess.flush()
846
847 # no expire of the attribute
848
849 assert a2.__dict__["user"] is u1
850
851 # merge succeeded
852 eq_(
853 sess.query(Address).all(), [Address(id=a1.id, email_address="bar")]
854 )
855
856 # didn't touch user
857 eq_(sess.query(User).all(), [User(name="fred")])
858
859 def test_one_to_many_cascade(self):
860 users, Address, addresses, User = (

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
addMethod · 0.45
flushMethod · 0.45
mergeMethod · 0.45
allMethod · 0.45
queryMethod · 0.45

Tested by

no test coverage detected