summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-08-05 20:15:28 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-08-05 20:15:28 +0000
commit4cd1902796546d5d2b2927c8e2afbcb00459341f (patch)
treeb4fd7dc33bdb6c55c2380720d5fb172c154aec0c /test
parent3c26d5700385ac2e72e01efe2531b126f4292eee (diff)
downloadsqlalchemy-4cd1902796546d5d2b2927c8e2afbcb00459341f.tar.gz
- The RowTuple object returned by Query(*cols) now
features keynames which prefer mapped attribute names over column keys, column keys over column names, i.e. Query(Class.foo, Class.bar) will have names "foo" and "bar" even if those are not the names of the underlying Column objects. Direct Column objects such as Query(table.c.col) will return the "key" attribute of the Column.
Diffstat (limited to 'test')
-rw-r--r--test/orm/inheritance/query.py5
-rw-r--r--test/orm/inheritance/single.py4
-rw-r--r--test/orm/query.py15
3 files changed, 24 insertions, 0 deletions
diff --git a/test/orm/inheritance/query.py b/test/orm/inheritance/query.py
index 08669bf59..0ce3b4fb7 100644
--- a/test/orm/inheritance/query.py
+++ b/test/orm/inheritance/query.py
@@ -538,6 +538,11 @@ def make_test(select_type):
)
+ row = sess.query(Engineer.name, Engineer.primary_language).filter(Engineer.name=='dilbert').first()
+ assert row.name == 'dilbert'
+ assert row.primary_language == 'java'
+
+
self.assertEquals(
sess.query(Engineer.name, Engineer.primary_language).all(),
[(u'dilbert', u'java'), (u'wally', u'c++'), (u'vlad', u'cobol')]
diff --git a/test/orm/inheritance/single.py b/test/orm/inheritance/single.py
index 17497177e..ba2f930d0 100644
--- a/test/orm/inheritance/single.py
+++ b/test/orm/inheritance/single.py
@@ -53,6 +53,10 @@ class SingleInheritanceTest(MappedTest):
session.expire(m1, ['manager_data'])
self.assertEquals(m1.manager_data, "knows how to manage things")
+ row = session.query(Engineer.name, Engineer.employee_id).filter(Engineer.name=='Kurt').first()
+ assert row.name == 'Kurt'
+ assert row.employee_id == e1.employee_id
+
@testing.resolve_artifact_names
def test_multi_qualification(self):
session = create_session()
diff --git a/test/orm/query.py b/test/orm/query.py
index 6ee9bbd9d..30cb03ab8 100644
--- a/test/orm/query.py
+++ b/test/orm/query.py
@@ -58,6 +58,21 @@ class UnicodeSchemaTest(QueryTest):
mapper(User, uni_users)
assert User(id=7) == create_session(bind=testing.db).query(User).get(7)
+class RowTupleTest(QueryTest):
+ keep_mappers = False
+
+ def setup_mappers(self):
+ pass
+
+ def test_custom_names(self):
+ mapper(User, users, properties={
+ 'uname':users.c.name
+ })
+
+ row = create_session().query(User.id, User.uname).filter(User.id==7).first()
+ assert row.id == 7
+ assert row.uname == 'jack'
+
class GetTest(QueryTest):
def test_get(self):
s = create_session()