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