[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] Fix the DebVersion type in dbconn.py.



Signed-off-by: Torsten Werner <twerner@debian.org>
---
 daklib/dbconn.py            |   21 +++++++++++++++------
 tests/create_pickle_file.py |    9 +++++++--
 tests/db_test.py            |    1 -
 3 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/daklib/dbconn.py b/daklib/dbconn.py
index c2d5178..bae2bb3 100755
--- a/daklib/dbconn.py
+++ b/daklib/dbconn.py
@@ -64,14 +64,23 @@ from dak_exceptions import NoSourceFieldError
 # Patch in support for the debversion field type so that it works during
 # reflection
 
-class DebVersion(sqltypes.Text):
-    """
-    Support the debversion type
-    """
-
+try:
+    # that is for sqlalchemy 0.6
+    UserDefinedType = sqltypes.UserDefinedType
+except:
+    # this one for sqlalchemy 0.5
+    UserDefinedType = sqltypes.TypeEngine
+
+class DebVersion(UserDefinedType):
     def get_col_spec(self):
         return "DEBVERSION"
 
+    def bind_processor(self, dialect):
+        return None
+
+    def result_processor(self, dialect):
+        return None
+
 sa_major_version = sqlalchemy.__version__[0:3]
 if sa_major_version in ["0.5", "0.6"]:
     from sqlalchemy.databases import postgres
@@ -81,7 +90,7 @@ else:
 
 ################################################################################
 
-__all__ = ['IntegrityError', 'SQLAlchemyError']
+__all__ = ['IntegrityError', 'SQLAlchemyError', 'DebVersion']
 
 ################################################################################
 
diff --git a/tests/create_pickle_file.py b/tests/create_pickle_file.py
index 74c50a0..63d1396 100755
--- a/tests/create_pickle_file.py
+++ b/tests/create_pickle_file.py
@@ -3,14 +3,19 @@
 # recreate the pickle file db-metadata-*.pkl that needs to be updated
 # after a database upgrade
 
-from daklib.dbconn import DBConn
-
 from sqlalchemy import create_engine, __version__
 
 import pickle
+import sys
 from os.path import abspath, dirname
 
 DAK_TEST_DIR = dirname(abspath(__file__))
+DAK_ROOT_DIR = dirname(DAK_TEST_DIR)
+if DAK_ROOT_DIR not in sys.path:
+    sys.path.insert(0, DAK_ROOT_DIR)
+
+from daklib.dbconn import DBConn
+
 pickle_filename = '%s/fixtures/db-metadata-%s.pkl' % (DAK_TEST_DIR, __version__)
 pickle_file = open(pickle_filename, 'w')
 metadata = DBConn().db_meta
diff --git a/tests/db_test.py b/tests/db_test.py
index d8c976a..cdae54a 100644
--- a/tests/db_test.py
+++ b/tests/db_test.py
@@ -42,7 +42,6 @@ class DBDakTestCase(DakTestCase):
         self.session = DBConn().session()
 
     def tearDown(self):
-        #pass
         self.session.close()
         #self.metadata.drop_all()
 
-- 
1.5.6.5


Reply to: