A regular mapper select on a single table can order by a relationship to a second table
(self)
| 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 = ( |
nothing calls this directly
no test coverage detected