From 7cd2c7d29934f1a6d215e7ea333687909866b00f Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 6 Nov 2007 19:19:30 +0000 Subject: [PATCH] fixed/added coverage for list extension; [ticket:855] --- lib/sqlalchemy/orm/strategies.py | 6 +++--- test/orm/eager_relations.py | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/sqlalchemy/orm/strategies.py b/lib/sqlalchemy/orm/strategies.py index be783fb399..aea1ffdda6 100644 --- a/lib/sqlalchemy/orm/strategies.py +++ b/lib/sqlalchemy/orm/strategies.py @@ -533,14 +533,14 @@ class EagerLoader(AbstractRelationLoader): if self.secondaryjoin is not None: context.eager_joins = sql.outerjoin(towrap, clauses.secondary, clauses.primaryjoin).outerjoin(clauses.alias, clauses.secondaryjoin) if self.order_by is False and self.secondary.default_order_by() is not None: - context.eager_order_by.append(*clauses.secondary.default_order_by()) + context.eager_order_by += clauses.secondary.default_order_by() else: context.eager_joins = towrap.outerjoin(clauses.alias, clauses.primaryjoin) if self.order_by is False and clauses.alias.default_order_by() is not None: - context.eager_order_by.append(*clauses.alias.default_order_by()) + context.eager_order_by += clauses.alias.default_order_by() if clauses.order_by: - context.eager_order_by.append(*util.to_list(clauses.order_by)) + context.eager_order_by += util.to_list(clauses.order_by) for value in self.select_mapper.iterate_properties: context.exec_with_path(self.select_mapper, value.key, value.setup, context, parentclauses=clauses, parentmapper=self.select_mapper) diff --git a/test/orm/eager_relations.py b/test/orm/eager_relations.py index cd971a7f02..a091a42ea3 100644 --- a/test/orm/eager_relations.py +++ b/test/orm/eager_relations.py @@ -56,6 +56,26 @@ class EagerTest(QueryTest): User(id=10, addresses=[]) ] == q.all() + def test_orderby_multi(self): + mapper(User, users, properties = { + 'addresses':relation(mapper(Address, addresses), lazy=False, order_by=[addresses.c.email_address, addresses.c.id]), + }) + q = create_session().query(User) + assert [ + User(id=7, addresses=[ + Address(id=1) + ]), + User(id=8, addresses=[ + Address(id=3, email_address='ed@bettyboop.com'), + Address(id=4, email_address='ed@lala.com'), + Address(id=2, email_address='ed@wood.com') + ]), + User(id=9, addresses=[ + Address(id=5) + ]), + User(id=10, addresses=[]) + ] == q.all() + def test_orderby_secondary(self): """tests that a regular mapper select on a single table can order by a relation to a second table""" -- 2.47.3