MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_noload_add

Method test_noload_add

test/orm/test_dynamic.py:1114–1142  ·  view source on GitHub ↗
(self, user_address_fixture)

Source from the content-addressed store, hash-verified

1112 eq_(list(u1.addresses), [])
1113
1114 def test_noload_add(self, user_address_fixture):
1115 # test that a load of User.addresses is not emitted
1116 # when flushing an add
1117 User, Address = user_address_fixture()
1118
1119 sess = fixture_session()
1120 u1 = User(name="jack", addresses=[Address(email_address="a1")])
1121 sess.add(u1)
1122 sess.commit()
1123
1124 u1_id = u1.id
1125 sess.expire_all()
1126
1127 u1.addresses.add(Address(email_address="a2"))
1128
1129 self.assert_sql_execution(
1130 testing.db,
1131 sess.flush,
1132 CompiledSQL(
1133 "SELECT users.id, users.name "
1134 "FROM users WHERE users.id = :pk_1",
1135 lambda ctx: [{"pk_1": u1_id}],
1136 ),
1137 CompiledSQL(
1138 "INSERT INTO addresses (user_id, email_address) "
1139 "VALUES (:user_id, :email_address)",
1140 lambda ctx: [{"email_address": "a2", "user_id": u1_id}],
1141 ),
1142 )
1143
1144 def test_noload_remove(self, user_address_fixture):
1145 # test that a load of User.addresses is not emitted

Callers

nothing calls this directly

Calls 8

fixture_sessionFunction · 0.90
CompiledSQLClass · 0.90
assert_sql_executionMethod · 0.80
UserClass · 0.70
AddressClass · 0.70
addMethod · 0.45
commitMethod · 0.45
expire_allMethod · 0.45

Tested by

no test coverage detected