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

Method test_multi_mappers

test/orm/test_froms.py:2413–2489  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2411 )
2412
2413 def test_multi_mappers(self):
2414 Address, addresses, users, User = (
2415 self.classes.Address,
2416 self.tables.addresses,
2417 self.tables.users,
2418 self.classes.User,
2419 )
2420
2421 test_session = fixture_session()
2422
2423 user7, user8, user9, user10 = test_session.query(User).all()
2424 (
2425 address1,
2426 address2,
2427 address3,
2428 address4,
2429 address5,
2430 ) = test_session.query(Address).all()
2431
2432 expected = [
2433 (user7, address1),
2434 (user8, address2),
2435 (user8, address3),
2436 (user8, address4),
2437 (user9, address5),
2438 (user10, None),
2439 ]
2440
2441 sess = fixture_session(future=True)
2442
2443 selectquery = (
2444 users.outerjoin(addresses)
2445 .select()
2446 .order_by(users.c.id, addresses.c.id)
2447 )
2448
2449 result = sess.execute(
2450 select(User, Address).from_statement(selectquery)
2451 )
2452 eq_(
2453 list(result),
2454 expected,
2455 )
2456 sess.expunge_all()
2457
2458 for address_entity in (Address, aliased(Address)):
2459 q = (
2460 sess.query(User)
2461 .add_entity(address_entity)
2462 .outerjoin(address_entity, User.addresses)
2463 .order_by(User.id, address_entity.id)
2464 )
2465 eq_(q.all(), expected)
2466 sess.expunge_all()
2467
2468 q = sess.query(User).add_entity(address_entity)
2469 q = q.join(address_entity, User.addresses)
2470 q = q.filter_by(email_address="ed@bettyboop.com")

Callers

nothing calls this directly

Calls 15

fixture_sessionFunction · 0.90
selectFunction · 0.90
eq_Function · 0.90
aliasedFunction · 0.90
joinedloadFunction · 0.90
add_entityMethod · 0.80
allMethod · 0.45
queryMethod · 0.45
order_byMethod · 0.45
selectMethod · 0.45
outerjoinMethod · 0.45
executeMethod · 0.45

Tested by

no test coverage detected