comparison test/test_db.py @ 2074:d5d5594c6fb4 maint-0.6

fix mysql unit tests for recent MySQL releases
author Richard Jones <richard@users.sourceforge.net>
date Fri, 12 Mar 2004 00:28:31 +0000
parents 84b6d5b07626
children 6e1e717a9caa
comparison
equal deleted inserted replaced
2072:cc692b8b8fa9 2074:d5d5594c6fb4
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
17 # 17 #
18 # $Id: test_db.py,v 1.90.2.2 2003-11-14 02:47:56 richard Exp $ 18 # $Id: test_db.py,v 1.90.2.3 2004-03-12 00:28:31 richard Exp $
19 19
20 import unittest, os, shutil, time 20 import unittest, os, shutil, time
21 21
22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \ 22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \
23 Interval, DatabaseError, Boolean, Number, Node 23 Interval, DatabaseError, Boolean, Number, Node
812 812
813 813
814 class mysqlDBTestCase(anydbmDBTestCase): 814 class mysqlDBTestCase(anydbmDBTestCase):
815 def setUp(self): 815 def setUp(self):
816 from roundup.backends import mysql 816 from roundup.backends import mysql
817 # remove previous test, ignore errors 817 mysql.db_nuke(config)
818 if os.path.exists(config.DATABASE): 818
819 shutil.rmtree(config.DATABASE)
820 os.makedirs(config.DATABASE + '/files')
821 # open database for testing 819 # open database for testing
820 os.makedirs(config.DATABASE + '/files')
822 self.db = mysql.Database(config, 'admin') 821 self.db = mysql.Database(config, 'admin')
823 setupSchema(self.db, 1, mysql) 822 setupSchema(self.db, 1, mysql)
824 823
825 def tearDown(self): 824 def tearDown(self):
826 from roundup.backends import mysql 825 from roundup.backends import mysql
827 self.db.close() 826 self.db.close()
828 mysql.Database.nuke(config) 827 mysql.db_nuke(config)
829 828
830 class mysqlReadOnlyDBTestCase(anydbmReadOnlyDBTestCase): 829 class mysqlReadOnlyDBTestCase(anydbmReadOnlyDBTestCase):
831 def setUp(self): 830 def setUp(self):
832 from roundup.backends import mysql 831 from roundup.backends import mysql
833 # remove previous test, ignore errors 832 # remove previous test, ignore errors
838 setupSchema(self.db, 0, mysql) 837 setupSchema(self.db, 0, mysql)
839 838
840 def tearDown(self): 839 def tearDown(self):
841 from roundup.backends import mysql 840 from roundup.backends import mysql
842 self.db.close() 841 self.db.close()
843 mysql.Database.nuke(config) 842 mysql.db_nuke(config)
844 843
845 class sqliteDBTestCase(anydbmDBTestCase): 844 class sqliteDBTestCase(anydbmDBTestCase):
846 def setUp(self): 845 def setUp(self):
847 from roundup.backends import sqlite 846 from roundup.backends import sqlite
848 # remove previous test, ignore errors 847 # remove previous test, ignore errors
951 from roundup.backends import mysql 950 from roundup.backends import mysql
952 try: 951 try:
953 # Check if we can run mysql tests 952 # Check if we can run mysql tests
954 import MySQLdb 953 import MySQLdb
955 db = mysql.Database(nodbconfig, 'admin') 954 db = mysql.Database(nodbconfig, 'admin')
956 db.conn.select_db(config.MYSQL_DBNAME)
957 db.sql("SHOW TABLES");
958 tables = db.sql_fetchall()
959 if 0: #tables:
960 # Database should be empty. We don't dare to delete any data
961 raise DatabaseError, "(Database %s contains tables)" % config.MYSQL_DBNAME
962 db.sql("DROP DATABASE %s" % config.MYSQL_DBNAME)
963 db.sql("CREATE DATABASE %s" % config.MYSQL_DBNAME)
964 db.close() 955 db.close()
965 except (MySQLdb.ProgrammingError, DatabaseError), msg: 956 except (MySQLdb.ProgrammingError, DatabaseError), msg:
966 print "Warning! Mysql tests will not be performed", msg 957 print "Warning! Mysql tests will not be performed", msg
967 print "See doc/mysql.txt for more details." 958 print "See doc/mysql.txt for more details."
968 else: 959 else:

Roundup Issue Tracker: http://roundup-tracker.org/