summaryrefslogtreecommitdiff
path: root/test/sql
diff options
context:
space:
mode:
Diffstat (limited to 'test/sql')
-rw-r--r--test/sql/defaults.py29
-rw-r--r--test/sql/query.py10
-rw-r--r--test/sql/testtypes.py6
3 files changed, 41 insertions, 4 deletions
diff --git a/test/sql/defaults.py b/test/sql/defaults.py
index d018c5efb..7e346aef4 100644
--- a/test/sql/defaults.py
+++ b/test/sql/defaults.py
@@ -63,7 +63,7 @@ class DefaultTest(PersistTest):
Column('col5', deftype, PassiveDefault(def2)),
# preexecute + update timestamp
- Column('col6', Date, default=currenttime, onupdate=currenttime),
+ Column('col6', DateTime, default=currenttime, onupdate=currenttime),
Column('boolcol1', Boolean, default=True),
Column('boolcol2', Boolean, default=False)
@@ -158,6 +158,33 @@ class AutoIncrementTest(PersistTest):
finally:
table.drop()
+ def testfetchid(self):
+ meta = BoundMetaData(testbase.db)
+ table = Table("aitest", meta,
+ Column('id', Integer, primary_key=True),
+ Column('data', String(20)))
+ table.create()
+
+ try:
+ # simulate working on a table that doesn't already exist
+ meta2 = BoundMetaData(testbase.db)
+ table2 = Table("aitest", meta2,
+ Column('id', Integer, primary_key=True),
+ Column('data', String(20)))
+ class AiTest(object):
+ pass
+ mapper(AiTest, table2)
+
+ s = create_session()
+ u = AiTest()
+ s.save(u)
+ s.flush()
+ assert u.id is not None
+ s.clear()
+ finally:
+ table.drop()
+
+
class SequenceTest(PersistTest):
@testbase.supported('postgres', 'oracle')
def setUpAll(self):
diff --git a/test/sql/query.py b/test/sql/query.py
index fe119a63d..a7cb52dc4 100644
--- a/test/sql/query.py
+++ b/test/sql/query.py
@@ -159,6 +159,16 @@ class QueryTest(PersistTest):
self.users.insert().execute(user_id=7, user_name='fido')
r = self.users.select(limit=3, order_by=[self.users.c.user_id]).execute().fetchall()
self.assert_(r == [(1, 'john'), (2, 'jack'), (3, 'ed')], repr(r))
+
+ @testbase.unsupported('mssql')
+ def testselectlimitoffset(self):
+ self.users.insert().execute(user_id=1, user_name='john')
+ self.users.insert().execute(user_id=2, user_name='jack')
+ self.users.insert().execute(user_id=3, user_name='ed')
+ self.users.insert().execute(user_id=4, user_name='wendy')
+ self.users.insert().execute(user_id=5, user_name='laura')
+ self.users.insert().execute(user_id=6, user_name='ralph')
+ self.users.insert().execute(user_id=7, user_name='fido')
r = self.users.select(limit=3, offset=2, order_by=[self.users.c.user_id]).execute().fetchall()
self.assert_(r==[(3, 'ed'), (4, 'wendy'), (5, 'laura')])
r = self.users.select(offset=5, order_by=[self.users.c.user_id]).execute().fetchall()
diff --git a/test/sql/testtypes.py b/test/sql/testtypes.py
index e924d08ca..411e39406 100644
--- a/test/sql/testtypes.py
+++ b/test/sql/testtypes.py
@@ -158,10 +158,10 @@ class UnicodeTest(AssertMixin):
self.echo(repr(x['plain_data']))
self.assert_(isinstance(x['unicode_data'], unicode) and x['unicode_data'] == unicodedata)
if isinstance(x['plain_data'], unicode):
- # SQLLite returns even non-unicode data as unicode
- self.assert_(db.name == 'sqlite')
+ # SQLLite and MSSQL return non-unicode data as unicode
+ self.assert_(db.name in ('sqlite', 'mssql'))
self.assert_(x['plain_data'] == unicodedata)
- self.echo("its sqlite !")
+ self.echo("it's %s!" % db.name)
else:
self.assert_(not isinstance(x['plain_data'], unicode) and x['plain_data'] == rawdata)
def testengineparam(self):