]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
(no commit message)
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 24 Sep 2005 04:13:37 +0000 (04:13 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 24 Sep 2005 04:13:37 +0000 (04:13 +0000)
test/types.py [new file with mode: 0644]

diff --git a/test/types.py b/test/types.py
new file mode 100644 (file)
index 0000000..836858a
--- /dev/null
@@ -0,0 +1,44 @@
+from testbase import PersistTest
+import sqlalchemy.types as types
+from sqlalchemy.schema import *
+
+import unittest, sys, os
+
+
+    
+class TypesTest(PersistTest):
+
+    def testprocessing(self):
+        import sqlalchemy.databases.sqlite as sqllite
+        db = sqllite.engine(':memory:', {}, echo = True)
+    
+        class MyType(types.TypeEngine):
+            def get_col_spec(self):
+                return "VARCHAR(100)"
+            def convert_bind_param(self, value):
+                return "BIND_IN"+ value
+            def convert_result_value(self, value):
+                return value + "BIND_OUT"
+            def adapt(self, typeobj):
+                return typeobj()
+            def adapt_args(self):
+                return self
+                
+        users = Table('users', db, 
+            Column('user_id', Integer, primary_key = True),
+            Column('goofy', MyType, nullable = False)
+        )
+        
+        users.create()
+        
+        users.insert().execute(user_id = 2, goofy = 'jack')
+        users.insert().execute(user_id = 3, goofy = 'lala')
+        users.insert().execute(user_id = 4, goofy = 'fred')
+        
+        l = users.select().execute().fetchall()
+        print repr(l)
+        self.assert_(l == [(2, u'BIND_INjackBIND_OUT'), (3, u'BIND_INlalaBIND_OUT'), (4, u'BIND_INfredBIND_OUT')])
+     
+        
+if __name__ == "__main__":
+    unittest.main()