diff options
Diffstat (limited to 'test/sql/test_query.py')
-rw-r--r-- | test/sql/test_query.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/test/sql/test_query.py b/test/sql/test_query.py index 7f127a6ef..888eb3f96 100644 --- a/test/sql/test_query.py +++ b/test/sql/test_query.py @@ -307,6 +307,31 @@ class QueryTest(fixtures.TestBase): self.assert_(not (rp != equal)) self.assert_(not (equal != equal)) + @testing.provide_metadata + def test_column_label_overlap_fallback(self): + content = Table('content', self.metadata, + Column('type', String(30)), + ) + bar = Table('bar', self.metadata, + Column('content_type', String(30)) + ) + self.metadata.create_all(testing.db) + testing.db.execute(content.insert().values(type="t1")) + row = testing.db.execute(content.select(use_labels=True)).first() + assert content.c.type in row + assert bar.c.content_type not in row + assert sql.column('content_type') in row + + row = testing.db.execute(select([content.c.type.label("content_type")])).first() + assert content.c.type in row + assert bar.c.content_type not in row + assert sql.column('content_type') in row + + row = testing.db.execute(select([(content.c.type > 5).label("content_type")])).first() + assert content.c.type in row + assert bar.c.content_type not in row + assert sql.column('content_type') in row + def test_pickled_rows(self): users.insert().execute( {'user_id':7, 'user_name':'jack'}, @@ -336,7 +361,7 @@ class QueryTest(fixtures.TestBase): eq_(result[0][users.c.user_id], 7) eq_(result[0][users.c.user_name], 'jack') - if use_labels: + if not pickle or use_labels: assert_raises(exc.NoSuchColumnError, lambda: result[0][addresses.c.user_id]) else: # test with a different table. name resolution is |