]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
added testcase to ensure that type gets propigated from scalar subquery to its label
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 16 Jan 2007 23:23:19 +0000 (23:23 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 16 Jan 2007 23:23:19 +0000 (23:23 +0000)
test/sql/query.py

index a19b8cf25feff999612dcf744e5aaeb7613ac7c7..ac62eb8e922a08a5ebe17ac0eaaf864e7d27a4b0 100644 (file)
@@ -17,7 +17,7 @@ class QueryTest(PersistTest):
             Column('user_id', INT, primary_key = True),
             Column('user_name', VARCHAR(20)),
         )
-        users.create()
+        metadata.create_all()
     
     def setUp(self):
         self.users = users
@@ -25,8 +25,7 @@ class QueryTest(PersistTest):
         self.users.delete().execute()
     
     def tearDownAll(self):
-        global users
-        users.drop()
+        metadata.drop_all()
         
     def testinsert(self):
         self.users.insert().execute(user_id = 7, user_name = 'jack')
@@ -160,7 +159,20 @@ class QueryTest(PersistTest):
         r = self.users.select(offset=5, order_by=[self.users.c.user_id]).execute().fetchall()
         self.assert_(r==[(6, 'ralph'), (7, 'fido')])
       
-  
+    def test_scalar_select(self):
+        datetable = Table('datetable', metadata, 
+            Column('id', Integer, primary_key=True),
+            Column('today', DateTime))
+        datetable.create()
+        try:
+            datetable.insert().execute(id=1, today=datetime.datetime(2006, 5, 12, 12, 0, 0))
+            s = select([datetable.alias('x').c.today], scalar=True)
+            s2 = select([datetable.c.id, s.label('somelabel')])
+            #print s2.c.somelabel.type
+            assert isinstance(s2.execute().fetchone()['somelabel'], datetime.datetime)
+        finally:
+            datetable.drop()
+            
     def test_column_accessor(self):
         self.users.insert().execute(user_id=1, user_name='john')
         self.users.insert().execute(user_id=2, user_name='jack')