]> git.decadent.org.uk Git - dak.git/blobdiff - tests/db_test.py
Merge remote branch 'odyx/win32-loader-autobyhand' into merge
[dak.git] / tests / db_test.py
index d95f0cbfde4d5fda34f7837d844e9d4c526a46e3..4f01f6d5d1583a89128a4b12c1fd41c9546fd88e 100644 (file)
@@ -10,11 +10,6 @@ from sqlalchemy.schema import DDL
 import pickle
 import warnings
 
-# suppress some deprecation warnings in squeeze related to sqlalchemy
-warnings.filterwarnings('ignore', \
-    "The SQLAlchemy PostgreSQL dialect has been renamed from 'postgres' to 'postgresql'.*", \
-    SADeprecationWarning)
-
 all_tables = ['architecture', 'archive', 'bin_associations', 'bin_contents',
     'binaries', 'binary_acl', 'binary_acl_map', 'build_queue', 'build_queue_files',
     'changes', 'changes_pending_binaries', 'changes_pending_files',
@@ -44,7 +39,9 @@ class DBDakTestCase(DakTestCase):
         for table in all_tables:
             self.execute(create_trigger % (table, table))
 
-    def setUp(self):
+    metadata = None
+
+    def initialize(self):
         cnf = Config()
         if cnf["DB::Name"] in ('backports', 'obscurity', 'projectb'):
             self.fail("You have configured an invalid database name: '%s'." % \
@@ -63,12 +60,16 @@ class DBDakTestCase(DakTestCase):
 
         pickle_filename = 'db-metadata-%s.pkl' % __version__
         pickle_file = open(fixture(pickle_filename), 'r')
-        self.metadata = pickle.load(pickle_file)
+        DBDakTestCase.metadata = pickle.load(pickle_file)
         self.metadata.ddl_listeners = pickle.load(pickle_file)
         pickle_file.close()
         self.metadata.bind = create_engine(connstr)
         self.metadata.create_all()
         self.create_all_triggers()
+
+    def setUp(self):
+        if self.metadata is None:
+            self.initialize()
         self.session = DBConn().session()
 
     def classes_to_clean(self):
@@ -84,5 +85,6 @@ class DBDakTestCase(DakTestCase):
         for class_ in self.classes_to_clean():
             self.session.query(class_).delete()
         self.session.commit()
+        # usually there is no need to drop all tables here
         #self.metadata.drop_all()