1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
#
# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/)
# This module is free software, and you may redistribute it and/or modify
# under the same terms as Python, so long as this copyright message and
# disclaimer are retained in their original form.
#
# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
# $Id$
import unittest, os, shutil, time, imp
from roundup.hyperdb import DatabaseError
from roundup.backends import get_backend, have_backend
from db_test_base import DBTest, ROTest, config, SchemaTest, ClassicInitTest
class mysqlOpener:
if have_backend('mysql'):
module = get_backend('mysql')
def setUp(self):
self.module.db_nuke(config)
def tearDown(self):
self.db.close()
self.nuke_database()
def nuke_database(self):
self.module.db_nuke(config)
class mysqlDBTest(mysqlOpener, DBTest):
def setUp(self):
mysqlOpener.setUp(self)
DBTest.setUp(self)
class mysqlROTest(mysqlOpener, ROTest):
def setUp(self):
mysqlOpener.setUp(self)
ROTest.setUp(self)
class mysqlSchemaTest(mysqlOpener, SchemaTest):
def setUp(self):
mysqlOpener.setUp(self)
SchemaTest.setUp(self)
class mysqlClassicInitTest(mysqlOpener, ClassicInitTest):
backend = 'mysql'
def setUp(self):
mysqlOpener.setUp(self)
ClassicInitTest.setUp(self)
def tearDown(self):
ClassicInitTest.tearDown(self)
self.nuke_database()
from session_common import RDBMSTest
class mysqlSessionTest(mysqlOpener, RDBMSTest):
def setUp(self):
mysqlOpener.setUp(self)
RDBMSTest.setUp(self)
def tearDown(self):
RDBMSTest.tearDown(self)
mysqlOpener.tearDown(self)
def test_suite():
suite = unittest.TestSuite()
if not have_backend('mysql'):
print "Skipping mysql tests"
return suite
import MySQLdb
try:
# Check if we can connect to the server.
# use db_exists() to make a connection, ignore it's return value
mysqlOpener.module.db_exists(config)
except (MySQLdb.MySQLError, DatabaseError), msg:
print "Skipping mysql tests (%s)"%msg
else:
print 'Including mysql tests'
suite.addTest(unittest.makeSuite(mysqlDBTest))
suite.addTest(unittest.makeSuite(mysqlROTest))
suite.addTest(unittest.makeSuite(mysqlSchemaTest))
suite.addTest(unittest.makeSuite(mysqlClassicInitTest))
suite.addTest(unittest.makeSuite(mysqlSessionTest))
return suite
if __name__ == '__main__':
runner = unittest.TextTestRunner()
unittest.main(testRunner=runner)
# vim: set et sts=4 sw=4 :
|