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

Method test_backref

test/orm/test_dynamic.py:1269–1301  ·  view source on GitHub ↗
(self, autoflush, saveuser, user_address_fixture)

Source from the content-addressed store, hash-verified

1267 @testing.combinations(True, False, argnames="autoflush")
1268 @testing.combinations(True, False, argnames="saveuser")
1269 def test_backref(self, autoflush, saveuser, user_address_fixture):
1270 User, Address = user_address_fixture(
1271 addresses_args={"backref": "user"}
1272 )
1273 sess = fixture_session(
1274 autoflush=autoflush,
1275 )
1276
1277 u = User(name="buffy")
1278
1279 a = Address(email_address="foo@bar.com")
1280 a.user = u
1281
1282 if saveuser:
1283 sess.add(u)
1284 else:
1285 sess.add(a)
1286
1287 if not autoflush:
1288 sess.flush()
1289
1290 assert u in sess
1291 assert a in sess
1292
1293 eq_(self._list_collection(u.addresses), [a])
1294
1295 a.user = None
1296 if not autoflush:
1297 eq_(self._list_collection(u.addresses), [a])
1298
1299 if not autoflush:
1300 sess.flush()
1301 eq_(self._list_collection(u.addresses), [])
1302
1303 def test_backref_events(self, user_address_fixture):
1304 User, Address = user_address_fixture(

Callers

nothing calls this directly

Calls 7

_list_collectionMethod · 0.95
fixture_sessionFunction · 0.90
eq_Function · 0.90
UserClass · 0.70
AddressClass · 0.70
addMethod · 0.45
flushMethod · 0.45

Tested by

no test coverage detected