comparison test/test_mysql.py @ 2075:b1704ba7be41

make mysql / postgresql work again. beginnings of otk/session store in rdbmses
author Richard Jones <richard@users.sourceforge.net>
date Fri, 12 Mar 2004 04:09:00 +0000
parents f9316d2cd5ba
children c091cacdc505
comparison
equal deleted inserted replaced
2073:261c2e6ceb1e 2075:b1704ba7be41
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_mysql.py,v 1.6 2003-11-14 00:11:19 richard Exp $ 18 # $Id: test_mysql.py,v 1.7 2004-03-12 04:09:00 richard Exp $
19 19
20 import unittest, os, shutil, time, imp 20 import unittest, os, shutil, time, imp
21 21
22 from roundup.hyperdb import DatabaseError 22 from roundup.hyperdb import DatabaseError
23 from roundup import init, backends 23 from roundup import init, backends
31 config.MYSQL_DBPASSWORD = 'rounduptest' 31 config.MYSQL_DBPASSWORD = 'rounduptest'
32 config.MYSQL_DBNAME = 'rounduptest' 32 config.MYSQL_DBNAME = 'rounduptest'
33 config.MYSQL_DATABASE = (config.MYSQL_DBHOST, config.MYSQL_DBUSER, 33 config.MYSQL_DATABASE = (config.MYSQL_DBHOST, config.MYSQL_DBUSER,
34 config.MYSQL_DBPASSWORD, config.MYSQL_DBNAME) 34 config.MYSQL_DBPASSWORD, config.MYSQL_DBNAME)
35 35
36 class nodbconfig(config):
37 MYSQL_DATABASE = (config.MYSQL_DBHOST, config.MYSQL_DBUSER, config.MYSQL_DBPASSWORD)
38
39 class mysqlOpener: 36 class mysqlOpener:
40 if hasattr(backends, 'mysql'): 37 if hasattr(backends, 'mysql'):
41 from roundup.backends import mysql as module 38 from roundup.backends import mysql as module
39
40 def setUp(self):
41 self.module.db_nuke(config)
42 42
43 def tearDown(self): 43 def tearDown(self):
44 self.db.close() 44 self.db.close()
45 self.nuke_database() 45 self.nuke_database()
46 46
47 def nuke_database(self): 47 def nuke_database(self):
48 self.module.db_nuke(config) 48 self.module.db_nuke(config)
49 49
50 class mysqlDBTest(mysqlOpener, DBTest): 50 class mysqlDBTest(mysqlOpener, DBTest):
51 pass 51 def setUp(self):
52 mysqlOpener.setUp(self)
53 DBTest.setUp(self)
52 54
53 class mysqlROTest(mysqlOpener, ROTest): 55 class mysqlROTest(mysqlOpener, ROTest):
54 pass 56 def setUp(self):
57 mysqlOpener.setUp(self)
58 ROTest.setUp(self)
55 59
56 class mysqlSchemaTest(mysqlOpener, SchemaTest): 60 class mysqlSchemaTest(mysqlOpener, SchemaTest):
57 pass 61 def setUp(self):
62 mysqlOpener.setUp(self)
63 SchemaTest.setUp(self)
58 64
59 class mysqlClassicInitTest(mysqlOpener, ClassicInitTest): 65 class mysqlClassicInitTest(mysqlOpener, ClassicInitTest):
60 backend = 'mysql' 66 backend = 'mysql'
61 extra_config = ''' 67 extra_config = '''
62 MYSQL_DBHOST = 'localhost' 68 MYSQL_DBHOST = 'localhost'
63 MYSQL_DBUSER = 'rounduptest' 69 MYSQL_DBUSER = 'rounduptest'
64 MYSQL_DBPASSWORD = 'rounduptest' 70 MYSQL_DBPASSWORD = 'rounduptest'
65 MYSQL_DBNAME = 'rounduptest' 71 MYSQL_DBNAME = 'rounduptest'
66 MYSQL_DATABASE = (MYSQL_DBHOST, MYSQL_DBUSER, MYSQL_DBPASSWORD, MYSQL_DBNAME) 72 MYSQL_DATABASE = (MYSQL_DBHOST, MYSQL_DBUSER, MYSQL_DBPASSWORD, MYSQL_DBNAME)
67 ''' 73 '''
68 if hasattr(backends, 'mysql'): 74 def setUp(self):
69 from roundup.backends import mysql as module 75 mysqlOpener.setUp(self)
76 ClassicInitTest.setUp(self)
70 def tearDown(self): 77 def tearDown(self):
71 ClassicInitTest.tearDown(self) 78 ClassicInitTest.tearDown(self)
72 self.nuke_database() 79 self.nuke_database()
73 80
74 def test_suite(): 81 def test_suite():
79 from roundup.backends import mysql 86 from roundup.backends import mysql
80 try: 87 try:
81 # Check if we can run mysql tests 88 # Check if we can run mysql tests
82 import MySQLdb 89 import MySQLdb
83 db = mysql.Database(config, 'admin') 90 db = mysql.Database(config, 'admin')
84 db.conn.select_db(config.MYSQL_DBNAME)
85 db.sql("SHOW TABLES");
86 tables = db.sql_fetchall()
87 # TODO: reinstate the check here
88 if 0: #tables:
89 # Database should be empty. We don't dare to delete any data
90 raise DatabaseError, "Database %s contains tables"%\
91 config.MYSQL_DBNAME
92 db.sql("DROP DATABASE %s" % config.MYSQL_DBNAME)
93 db.sql("CREATE DATABASE %s" % config.MYSQL_DBNAME)
94 db.close() 91 db.close()
95 except (MySQLdb.ProgrammingError, DatabaseError), msg: 92 except (MySQLdb.ProgrammingError, DatabaseError), msg:
96 print "Skipping mysql tests (%s)"%msg 93 print "Skipping mysql tests (%s)"%msg
97 else: 94 else:
98 print 'Including mysql tests' 95 print 'Including mysql tests'

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