MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_orderby_related

Method test_orderby_related

test/orm/test_eager_relations.py:397–440  ·  view source on GitHub ↗

A regular mapper select on a single table can order by a relationship to a second table

(self)

Source from the content-addressed store, hash-verified

395 )
396
397 def test_orderby_related(self):
398 """A regular mapper select on a single table can
399 order by a relationship to a second table"""
400
401 Address, addresses, users, User = (
402 self.classes.Address,
403 self.tables.addresses,
404 self.tables.users,
405 self.classes.User,
406 )
407
408 self.mapper_registry.map_imperatively(Address, addresses)
409 self.mapper_registry.map_imperatively(
410 User,
411 users,
412 properties=dict(
413 addresses=relationship(
414 Address, lazy="joined", order_by=addresses.c.id
415 )
416 ),
417 )
418
419 q = fixture_session().query(User)
420 result = (
421 q.filter(User.id == Address.user_id)
422 .order_by(Address.email_address)
423 .all()
424 )
425
426 eq_(
427 [
428 User(
429 id=8,
430 addresses=[
431 Address(id=2, email_address="ed@wood.com"),
432 Address(id=3, email_address="ed@bettyboop.com"),
433 Address(id=4, email_address="ed@lala.com"),
434 ],
435 ),
436 User(id=9, addresses=[Address(id=5)]),
437 User(id=7, addresses=[Address(id=1)]),
438 ],
439 result,
440 )
441
442 def test_orderby_desc(self):
443 Address, addresses, users, User = (

Callers

nothing calls this directly

Calls 10

relationshipFunction · 0.90
fixture_sessionFunction · 0.90
eq_Function · 0.90
map_imperativelyMethod · 0.80
UserClass · 0.70
AddressClass · 0.70
queryMethod · 0.45
allMethod · 0.45
order_byMethod · 0.45
filterMethod · 0.45

Tested by

no test coverage detected