]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- test + changelog
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 9 Feb 2015 00:58:34 +0000 (19:58 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 9 Feb 2015 01:02:06 +0000 (20:02 -0500)
(cherry picked from commit 7b9134be7129346e486a5caca7bdc87de7ccf015)

Conflicts:
lib/sqlalchemy/orm/query.py

doc/build/changelog/changelog_09.rst
lib/sqlalchemy/orm/query.py
test/orm/test_joins.py

index a145ba259f1d3a16999635d344de5cf03e03f0c4..6836a15abd8aa778f31f2f8c4c62723d75990d67 100644 (file)
 .. changelog::
     :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
index 72dd9db2bfaafd767e21d02635f945252b1a6693..bbf96318c05bbf40af20f2c57d834b830ed37b53 100644 (file)
@@ -1717,7 +1717,8 @@ class Query(object):
         aliased, from_joinpoint = kwargs.pop('aliased', False),\
             kwargs.pop('from_joinpoint', False)
         if kwargs:
-            raise TypeError("unknown arguments: %s" % ', '.join(kwargs))
+            raise TypeError("unknown arguments: %s" %
+                            ', '.join(sorted(kwargs)))
         return self._join(props,
                           outerjoin=False, create_aliases=aliased,
                           from_joinpoint=from_joinpoint)
@@ -1733,7 +1734,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)
index 40bc01b5d6f4b673324cdd86efed9e21bddc18d4..1d3fcf8a99a91a6e223a434b32d2e4e7e2a6af04 100644 (file)
@@ -396,6 +396,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