]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
test case for oracle timestamp adaption
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 16 Jun 2007 23:36:19 +0000 (23:36 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 16 Jun 2007 23:36:19 +0000 (23:36 +0000)
lib/sqlalchemy/databases/oracle.py
test/sql/testtypes.py

index 98226a8064c1fc0326b7f4e1e3e40fa7ee2459ee..1cb4a0027a052ad62ec17f498f85ff0bc0843dc9 100644 (file)
@@ -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}
index b2b747a334afabbb2c9ce0ddb679a9674ef05378..376546ee8815811cb97e20a02212d9a1ef9eac9f 100644 (file)
@@ -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"""