diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-02-08 19:58:34 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-02-08 19:58:34 -0500 |
commit | 7b9134be7129346e486a5caca7bdc87de7ccf015 (patch) | |
tree | f2c5c9338b73235767fca088cba8b9b74cf661b6 | |
parent | a7c8cf0f2f456485a358d6b9ffe69516b8164bcd (diff) | |
download | sqlalchemy-7b9134be7129346e486a5caca7bdc87de7ccf015.tar.gz |
- test + changelog
-rw-r--r-- | doc/build/changelog/changelog_09.rst | 8 | ||||
-rw-r--r-- | lib/sqlalchemy/orm/query.py | 4 | ||||
-rw-r--r-- | test/orm/test_joins.py | 14 |
3 files changed, 24 insertions, 2 deletions
diff --git a/doc/build/changelog/changelog_09.rst b/doc/build/changelog/changelog_09.rst index a145ba259..6836a15ab 100644 --- a/doc/build/changelog/changelog_09.rst +++ b/doc/build/changelog/changelog_09.rst @@ -15,6 +15,14 @@ :version: 0.9.9 .. change:: + :tags: bug, orm + :pullreq: github:147 + + Fixed bug where TypeError raised when :meth:`.Query.join` called + with unknown kw arguments would raise its own TypeError due + to broken formatting. Pull request courtesy Malthe Borch. + + .. change:: :tags: bug, engine :tickets: 3302 diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index 3680f47eb..07f949d8e 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -1775,7 +1775,7 @@ class Query(object): kwargs.pop('isouter', False) if kwargs: raise TypeError("unknown arguments: %s" % - ','.join(kwargs)) + ', '.join(sorted(kwargs))) isouter = isouter return self._join(props, outerjoin=isouter, create_aliases=aliased, @@ -1792,7 +1792,7 @@ class Query(object): kwargs.pop('from_joinpoint', False) if kwargs: raise TypeError("unknown arguments: %s" % - ','.join(kwargs)) + ', '.join(sorted(kwargs))) return self._join(props, outerjoin=True, create_aliases=aliased, from_joinpoint=from_joinpoint) diff --git a/test/orm/test_joins.py b/test/orm/test_joins.py index c519032b3..23d220dcc 100644 --- a/test/orm/test_joins.py +++ b/test/orm/test_joins.py @@ -419,6 +419,20 @@ class JoinTest(QueryTest, AssertsCompiledSQL): "ON addresses.id = orders.address_id" ) + def test_invalid_kwarg_join(self): + User = self.classes.User + sess = create_session() + assert_raises_message( + TypeError, + "unknown arguments: bar, foob", + sess.query(User).join, "address", foob="bar", bar="bat" + ) + assert_raises_message( + TypeError, + "unknown arguments: bar, foob", + sess.query(User).outerjoin, "address", foob="bar", bar="bat" + ) + def test_left_is_none(self): User = self.classes.User Address = self.classes.Address |