summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-12-12 21:07:25 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2015-12-12 21:08:56 -0500
commit7d96ad4d535dc02a8ab1384df1db94dea2a045b5 (patch)
tree8b211ad42e32af56a1ceca46359f2804194d40f7 /test
parentd67d04c70ac51322347e5f396e5d7dadfc75a987 (diff)
downloadsqlalchemy-7d96ad4d535dc02a8ab1384df1db94dea2a045b5.tar.gz
- Fixed bug where use of the :meth:`.Query.select_from` method would
cause a subsequent call to the :meth:`.Query.with_parent` method to fail. fixes #3606 - add mark-as-fail test for #3607
Diffstat (limited to 'test')
-rw-r--r--test/orm/test_query.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/orm/test_query.py b/test/orm/test_query.py
index a373f1482..d2f9e4a66 100644
--- a/test/orm/test_query.py
+++ b/test/orm/test_query.py
@@ -3216,6 +3216,39 @@ class ParentTest(QueryTest, AssertsCompiledSQL):
# sess.query(Order).with_parent(None, property='addresses').all()
# == [Order(description="order 5")]
+ def test_select_from(self):
+ User, Address = self.classes.User, self.classes.Address
+
+ sess = create_session()
+ u1 = sess.query(User).get(7)
+ q = sess.query(Address).select_from(Address).with_parent(u1)
+ self.assert_compile(
+ q,
+ "SELECT addresses.id AS addresses_id, "
+ "addresses.user_id AS addresses_user_id, "
+ "addresses.email_address AS addresses_email_address "
+ "FROM addresses WHERE :param_1 = addresses.user_id",
+ {'param_1': 7}
+ )
+
+ @testing.fails("issue #3607")
+ def test_select_from_alias(self):
+ User, Address = self.classes.User, self.classes.Address
+
+ sess = create_session()
+ u1 = sess.query(User).get(7)
+ a1 = aliased(Address)
+ q = sess.query(a1).with_parent(u1)
+ self.assert_compile(
+ q,
+ "SELECT addresses_1.id AS addresses_1_id, "
+ "addresses_1.user_id AS addresses_1_user_id, "
+ "addresses_1.email_address AS addresses_1_email_address "
+ "FROM addresses AS addresses_1 "
+ "WHERE :param_1 = addresses_1.user_id",
+ {'param_1': 7}
+ )
+
def test_noparent(self):
Item, User = self.classes.Item, self.classes.User