diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-12-12 21:07:25 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-12-12 21:08:56 -0500 |
| commit | 7d96ad4d535dc02a8ab1384df1db94dea2a045b5 (patch) | |
| tree | 8b211ad42e32af56a1ceca46359f2804194d40f7 /test | |
| parent | d67d04c70ac51322347e5f396e5d7dadfc75a987 (diff) | |
| download | sqlalchemy-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.py | 33 |
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 |
