From d1e474ed74e89ec856212476a1881afe1ace2090 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 16 Jun 2007 23:36:19 +0000 Subject: [PATCH] test case for oracle timestamp adaption --- lib/sqlalchemy/databases/oracle.py | 10 +++++----- test/sql/testtypes.py | 19 ++++++++++++++++++- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 98226a8064..1cb4a0027a 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -38,13 +38,17 @@ class OracleDateTime(sqltypes.DateTime): # Oracle does not support TIME columns # only if cx_oracle contains TIMESTAMP -class OracleTimestamp(sqltypes.DateTime): +class OracleTimestamp(sqltypes.TIMESTAMP): def get_col_spec(self): return "TIMESTAMP" def get_dbapi_type(self, dialect): return dialect.TIMESTAMP +class OracleString(sqltypes.String): + def get_col_spec(self): + return "VARCHAR(%(length)s)" % {'length' : self.length} + class OracleText(sqltypes.TEXT): def get_dbapi_type(self, dbapi): return dbapi.CLOB @@ -58,10 +62,6 @@ class OracleText(sqltypes.TEXT): else: return value.read() -class OracleString(sqltypes.String): - def get_col_spec(self): - return "VARCHAR(%(length)s)" % {'length' : self.length} - class OracleRaw(sqltypes.Binary): def get_col_spec(self): return "RAW(%(length)s)" % {'length' : self.length} diff --git a/test/sql/testtypes.py b/test/sql/testtypes.py index b2b747a334..376546ee88 100644 --- a/test/sql/testtypes.py +++ b/test/sql/testtypes.py @@ -6,7 +6,7 @@ import string,datetime, re, sys, os import sqlalchemy.engine.url as url import sqlalchemy.types -from sqlalchemy.databases import mssql, oracle +from sqlalchemy.databases import mssql, oracle, mysql db = testbase.db @@ -68,6 +68,23 @@ class AdaptTest(PersistTest): dialect_type = col.type.dialect_impl(dialect) assert isinstance(dialect_type.impl, oracle.OracleText), repr(dialect_type.impl) + def testoracletimestamp(self): + dialect = oracle.OracleDialect() + t1 = oracle.OracleTimestamp + t2 = oracle.OracleTimestamp() + t3 = types.TIMESTAMP + assert isinstance(dialect.type_descriptor(t1), oracle.OracleTimestamp) + assert isinstance(dialect.type_descriptor(t2), oracle.OracleTimestamp) + assert isinstance(dialect.type_descriptor(t3), oracle.OracleTimestamp) + + def testmysqlbinary(self): + dialect = mysql.MySQLDialect() + t1 = mysql.MSVarBinary + t2 = mysql.MSVarBinary() + assert isinstance(dialect.type_descriptor(t1), mysql.MSVarBinary) + assert isinstance(dialect.type_descriptor(t2), mysql.MSVarBinary) + + class OverrideTest(PersistTest): """tests user-defined types, including a full type as well as a TypeDecorator""" -- 2.47.2