Code

fixed detection of bad date specs (sf bug 691439)
[roundup.git] / test / test_init.py
index 09b3029777319fa7364d8a867960422e1426d652..b58d0cefa04a993467f1eb5881ff7e57faf48a68 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: test_init.py,v 1.12 2002-07-11 01:13:13 richard Exp $
+# $Id: test_init.py,v 1.22 2003-03-18 00:50:24 richard Exp $
 
 import unittest, os, shutil, errno, imp, sys
 
@@ -43,7 +43,8 @@ class ClassicTestCase(MyTestCase):
         ae = self.assertEqual
 
         # create the instance
-        init.install(self.dirname, 'classic', self.backend)
+        init.install(self.dirname, 'classic')
+        init.write_select_db(self.dirname, self.backend)
         init.initialise(self.dirname, 'sekrit')
 
         # check we can load the package
@@ -60,7 +61,7 @@ class ClassicTestCase(MyTestCase):
         l = db.keyword.list()
         ae(l, [])
         l = db.user.list()
-        ae(l, ['1'])
+        ae(l, ['1', '2'])
         l = db.msg.list()
         ae(l, [])
         l = db.file.list()
@@ -68,133 +69,38 @@ class ClassicTestCase(MyTestCase):
         l = db.issue.list()
         ae(l, [])
 
-class ExtendedTestCase(MyTestCase):
-    backend = 'anydbm'
-    def testCreation(self):
-        ae = self.assertEqual
-
-        # create the instance
-        init.install(self.dirname, 'extended', self.backend)
-        init.initialise(self.dirname, 'sekrit')
-
-        # check we can load the package
-        instance = imp.load_package(self.dirname, self.dirname)
-
-        # and open the database
-        db = instance.open()
-
-        # check the basics of the schema and initial data set
-        l = db.priority.list()
-        ae(l, ['1', '2', '3', '4'])
-        l = db.status.list()
-        ae(l, ['1', '2', '3', '4', '5', '6', '7', '8'])
-        l = db.keyword.list()
-        ae(l, [])
-        l = db.user.list()
-        ae(l, ['1'])
-        l = db.msg.list()
-        ae(l, [])
-        l = db.file.list()
-        ae(l, [])
-        l = db.issue.list()
-        ae(l, [])
-        l = db.support.list()
-        ae(l, [])
-        l = db.rate.list()
-        ae(l, ['1', '2', '3'])
-        l = db.source.list()
-        ae(l, ['1', '2', '3', '4'])
-        l = db.platform.list()
-        ae(l, ['1', '2', '3'])
-        l = db.timelog.list()
-        ae(l, [])
-
 class bsddbClassicTestCase(ClassicTestCase):
     backend = 'bsddb'
-class bsddbExtendedTestCase(ExtendedTestCase):
-    backend = 'bsddb'
 
 class bsddb3ClassicTestCase(ClassicTestCase):
     backend = 'bsddb3'
-class bsddb3ExtendedTestCase(ExtendedTestCase):
-    backend = 'bsddb3'
 
 class metakitClassicTestCase(ClassicTestCase):
     backend = 'metakit'
-class metakitExtendedTestCase(ExtendedTestCase):
-    backend = 'metakit'
+
+class mysqlClassicTestCase(ClassicTestCase):
+    backend = 'mysql'
+
+class sqliteClassicTestCase(ClassicTestCase):
+    backend = 'sqlite'
 
 def suite():
-    l = [unittest.makeSuite(ClassicTestCase, 'test'),
-         unittest.makeSuite(ExtendedTestCase, 'test')]
-    try:
-        import bsddb
-        l.append(unittest.makeSuite(bsddbClassicTestCase, 'test'))
-        l.append(unittest.makeSuite(bsddbExtendedTestCase, 'test'))
-    except:
-        print 'bsddb module not found, skipping bsddb DBTestCase'
+    l = [
+        unittest.makeSuite(ClassicTestCase, 'test'),
+    ]
 
-    try:
-        import bsddb3
+    from roundup import backends
+    if hasattr(backends, 'bsddb'):
+        l.append(unittest.makeSuite(bsddbClassicTestCase, 'test'))
+    if hasattr(backends, 'bsddb3'):
         l.append(unittest.makeSuite(bsddb3ClassicTestCase, 'test'))
-        l.append(unittest.makeSuite(bsddb3ExtendedTestCase, 'test'))
-    except:
-        print 'bsddb3 module not found, skipping bsddb3 DBTestCase'
-
-    try:
-        import metakit
+    if hasattr(backends, 'metakit'):
         l.append(unittest.makeSuite(metakitClassicTestCase, 'test'))
-        l.append(unittest.makeSuite(metakitExtendedTestCase, 'test'))
-    except:
-        print 'metakit module not found, skipping metakit DBTestCase'
+    if hasattr(backends, 'mysql'):
+        l.append(unittest.makeSuite(mysqlClassicTestCase, 'test'))
+    if hasattr(backends, 'sqlite'):
+        l.append(unittest.makeSuite(sqliteClassicTestCase, 'test'))
 
     return unittest.TestSuite(l)
 
-#
-# $Log: not supported by cvs2svn $
-# Revision 1.11  2002/07/11 01:12:34  richard
-# Forgot to add to init tests
-#
-# Revision 1.10  2002/06/11 04:59:14  richard
-# enabled testing of bsddb in test_init
-#
-# Revision 1.9  2002/05/23 04:26:05  richard
-# 'I must run unit tests before committing\n' * 100
-#
-# Revision 1.8  2002/05/15 03:27:16  richard
-#  . fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
-#    (thanks dman)
-#  . fixed some sorting issues that were breaking some unit tests under py2.2
-#  . mailgw test output dir was confusing the init test (but only on 2.2 *shrug*)
-#
-# fixed bug in the init unit test that meant only the bsddb test ran if it
-# could (it clobbered the anydbm test)
-#
-# Revision 1.7  2001/10/28 22:51:38  richard
-# Fixed ENOENT/WindowsError thing, thanks Juergen Hermann
-#
-# Revision 1.6  2001/09/29 23:48:06  richard
-# Bug fix for test_init on Windows.
-# More documenation!!
-#
-# Revision 1.5  2001/08/29 06:23:59  richard
-# Disabled the bsddb3 module entirely in the unit testing. See CHANGES for
-# details.
-#
-# Revision 1.4  2001/08/07 00:24:43  richard
-# stupid typo
-#
-# Revision 1.3  2001/08/07 00:15:51  richard
-# Added the copyright/license notice to (nearly) all files at request of
-# Bizar Software.
-#
-# Revision 1.2  2001/08/05 07:45:27  richard
-# Added tests for instance initialisation
-#
-# Revision 1.1  2001/08/05 07:07:58  richard
-# added tests for roundup.init - but they're disabled until I can figure _if_
-# we can run them (import problems).
-#
-#
-#
 # vim: set filetype=python ts=4 sw=4 et si