summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-06-16 23:36:19 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-06-16 23:36:19 +0000
commitd1e474ed74e89ec856212476a1881afe1ace2090 (patch)
tree737829db2e0b6f7af45c96c5f05088a5603aea11
parent6cd584d3031bbb810d2c7f400ae38b941088ded9 (diff)
downloadsqlalchemy-d1e474ed74e89ec856212476a1881afe1ace2090.tar.gz
test case for oracle timestamp adaption
-rw-r--r--lib/sqlalchemy/databases/oracle.py10
-rw-r--r--test/sql/testtypes.py19
2 files changed, 23 insertions, 6 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py
index 98226a806..1cb4a0027 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 b2b747a33..376546ee8 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"""