- 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
This commit is contained in:
Mike Bayer
2015-12-12 21:07:25 -05:00
parent d67d04c70a
commit 7d96ad4d53
4 changed files with 52 additions and 3 deletions
+33
View File
@@ -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