Mercurial > p > roundup > code
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' |
