summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Johnston <paj@pajhome.org.uk>2007-08-19 15:07:30 +0000
committerPaul Johnston <paj@pajhome.org.uk>2007-08-19 15:07:30 +0000
commit77aa8c605c22220f0a0a5fe63dc3d2abc7a1e3d1 (patch)
tree8fa70b010a3af0d0f53531cc2cc96aed2d023e10
parent3959a1ae3ffc8bc4e573ad373ac074fbaf6a07fc (diff)
downloadsqlalchemy-77aa8c605c22220f0a0a5fe63dc3d2abc7a1e3d1.tar.gz
MSSQL unit test fixes
-rw-r--r--lib/sqlalchemy/databases/mssql.py6
-rw-r--r--test/orm/query.py1
-rw-r--r--test/sql/testtypes.py4
-rw-r--r--test/testbase.py5
4 files changed, 9 insertions, 7 deletions
diff --git a/lib/sqlalchemy/databases/mssql.py b/lib/sqlalchemy/databases/mssql.py
index d64fe926a..b1019b11c 100644
--- a/lib/sqlalchemy/databases/mssql.py
+++ b/lib/sqlalchemy/databases/mssql.py
@@ -468,7 +468,7 @@ class MSSQLDialect(ansisql.ANSIDialect):
def preparer(self):
return MSSQLIdentifierPreparer(self)
- def get_default_schema_name(self):
+ def get_default_schema_name(self, connection):
return self.schema_name
def set_default_schema_name(self, schema_name):
@@ -513,7 +513,7 @@ class MSSQLDialect(ansisql.ANSIDialect):
def has_table(self, connection, tablename, schema=None):
import sqlalchemy.databases.information_schema as ischema
- current_schema = schema or self.get_default_schema_name()
+ current_schema = schema or self.get_default_schema_name(connection)
columns = self.uppercase_table(ischema.columns)
s = sql.select([columns],
current_schema
@@ -532,7 +532,7 @@ class MSSQLDialect(ansisql.ANSIDialect):
if table.schema is not None:
current_schema = table.schema
else:
- current_schema = self.get_default_schema_name()
+ current_schema = self.get_default_schema_name(connection)
columns = self.uppercase_table(ischema.columns)
s = sql.select([columns],
diff --git a/test/orm/query.py b/test/orm/query.py
index 872d1772e..f4fe00314 100644
--- a/test/orm/query.py
+++ b/test/orm/query.py
@@ -114,6 +114,7 @@ class FilterTest(QueryTest):
def test_basic(self):
assert [User(id=7), User(id=8), User(id=9),User(id=10)] == create_session().query(User).all()
+ @testbase.unsupported('mssql')
def test_limit(self):
assert [User(id=8), User(id=9)] == create_session().query(User).limit(2).offset(1).all()
diff --git a/test/sql/testtypes.py b/test/sql/testtypes.py
index ed9de0912..00f382e20 100644
--- a/test/sql/testtypes.py
+++ b/test/sql/testtypes.py
@@ -312,8 +312,8 @@ class DateTest(AssertMixin):
]
if db.engine.name == 'mssql':
- # MSSQL Datetime values have only a 3.33 milliseconds precision
- insert_data[2] = [9, 'foo', datetime.datetime(2005, 11, 10, 11, 52, 35, 547000), datetime.date(1970,4,1), datetime.time(23,59,59,997000)]
+ # MSSQL can't reliably fetch the millisecond part
+ insert_data[2] = [9, 'foo', datetime.datetime(2005, 11, 10, 11, 52, 35), datetime.date(1970,4,1), datetime.time(23,59,59)]
fnames = ['user_id', 'user_name', 'user_datetime', 'user_date', 'user_time']
diff --git a/test/testbase.py b/test/testbase.py
index 7c5095d1a..557554c22 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -309,6 +309,8 @@ class ExecutionContextWrapper(object):
ctx = self.ctx
statement = unicode(ctx.compiled)
statement = re.sub(r'\n', '', ctx.statement)
+ if db.engine.name == 'mssql' and statement.endswith('; select scope_identity()'):
+ statement = statement[:-25]
if testdata.buffer is not None:
testdata.buffer.write(statement + "\n")
@@ -333,6 +335,7 @@ class ExecutionContextWrapper(object):
testdata.assert_list.pop()
item = (statement, entry)
except KeyError:
+ print "Testing for one of the following queries: %s, received '%s'" % (repr([k for k in item.keys()]), statement)
self.unittest.assert_(False, "Testing for one of the following queries: %s, received '%s'" % (repr([k for k in item.keys()]), statement))
(query, params) = item
@@ -347,8 +350,6 @@ class ExecutionContextWrapper(object):
parameters = [p.get_original_dict() for p in ctx.compiled_parameters]
query = self.convert_statement(query)
- if db.engine.name == 'mssql' and statement.endswith('; select scope_identity()'):
- statement = statement[:-25]
testdata.unittest.assert_(statement == query and (params is None or params == parameters), "Testing for query '%s' params %s, received '%s' with params %s" % (query, repr(params), statement, repr(parameters)))
testdata.sql_count += 1
self.ctx.post_exec()