comparison test/test_db.py @ 1486:f5f60c75a458

added test for error in sqlite backend, and fixed *dbm backend error
author Richard Jones <richard@users.sourceforge.net>
date Mon, 03 Mar 2003 21:05:19 +0000
parents 405e91b5be46
children 2fc7d4a8c9e7
comparison
equal deleted inserted replaced
1485:8a1975bdde6e 1486:f5f60c75a458
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.72 2003-02-27 11:07:39 richard Exp $ 18 # $Id: test_db.py,v 1.73 2003-03-03 21:05:19 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 23 Interval, DatabaseError, Boolean, Number, Node
24 from roundup import date, password 24 from roundup import date, password
25 from roundup.indexer import Indexer 25 from roundup.indexer import Indexer
26 26
27 def setupSchema(db, create, module): 27 def setupSchema(db, create, module):
28 status = module.Class(db, "status", name=String()) 28 status = module.Class(db, "status", name=String())
651 def testFilteringMany(self): 651 def testFilteringMany(self):
652 ae, filt = self.filteringSetup() 652 ae, filt = self.filteringSetup()
653 ae(filt(None, {'nosy': '2', 'status': '1'}, ('+','id'), (None,None)), 653 ae(filt(None, {'nosy': '2', 'status': '1'}, ('+','id'), (None,None)),
654 ['3']) 654 ['3'])
655 655
656 def testNode1(self):
657 node1 = self.db.user.getnode('1')
658 name = node1.username
659 self.db.user.set('1', username = name+name)
660 name1 = node1.username
661 self.db.rollback()
662 node2 = self.db.user.getnode('1')
663 self.assertEqual(name, node1.username)
664 self.assertEqual(name, node2.username)
665
666 def testNode2(self):
667 node1 = Node(self.db.user, '1')
668 name = node1.username
669 self.db.user.set('1', username = name+name)
670 name1 = node1.username
671 self.db.rollback()
672 node2 = Node(self.db.user, '1')
673 self.assertEqual(name, node1.username)
674 self.assertEqual(name, node2.username)
675
676
656 # TODO test auditors and reactors 677 # TODO test auditors and reactors
657 678
658 class anydbmReadOnlyDBTestCase(MyTestCase): 679 class anydbmReadOnlyDBTestCase(MyTestCase):
659 def setUp(self): 680 def setUp(self):
660 from roundup.backends import anydbm 681 from roundup.backends import anydbm
893 ] 914 ]
894 # return unittest.TestSuite(l) 915 # return unittest.TestSuite(l)
895 916
896 from roundup import backends 917 from roundup import backends
897 p = [] 918 p = []
898 if hasattr(backends, 'mysql'): 919 # if hasattr(backends, 'mysql'):
899 from roundup.backends import mysql 920 # from roundup.backends import mysql
900 try: 921 # try:
901 # Check if we can run mysql tests 922 # # Check if we can run mysql tests
902 import MySQLdb 923 # import MySQLdb
903 db = mysql.Database(nodbconfig, 'admin') 924 # db = mysql.Database(nodbconfig, 'admin')
904 db.conn.select_db(config.MYSQL_DBNAME) 925 # db.conn.select_db(config.MYSQL_DBNAME)
905 db.sql("SHOW TABLES"); 926 # db.sql("SHOW TABLES");
906 tables = db.sql_fetchall() 927 # tables = db.sql_fetchall()
907 if tables: 928 # if tables:
908 # Database should be empty. We don't dare to delete any data 929 # # Database should be empty. We don't dare to delete any data
909 raise DatabaseError, "(Database %s contains tables)" % config.MYSQL_DBNAME 930 # raise DatabaseError, "(Database %s contains tables)" % config.MYSQL_DBNAME
910 db.sql("DROP DATABASE %s" % config.MYSQL_DBNAME) 931 # db.sql("DROP DATABASE %s" % config.MYSQL_DBNAME)
911 db.sql("CREATE DATABASE %s" % config.MYSQL_DBNAME) 932 # db.sql("CREATE DATABASE %s" % config.MYSQL_DBNAME)
912 db.close() 933 # db.close()
913 except (MySQLdb.ProgrammingError, DatabaseError), msg: 934 # except (MySQLdb.ProgrammingError, DatabaseError), msg:
914 print "Warning! Mysql tests will not be performed", msg 935 # print "Warning! Mysql tests will not be performed", msg
915 print "See doc/mysql.txt for more details." 936 # print "See doc/mysql.txt for more details."
916 else: 937 # else:
917 p.append('mysql') 938 # p.append('mysql')
918 l.append(unittest.makeSuite(mysqlDBTestCase, 'test')) 939 # l.append(unittest.makeSuite(mysqlDBTestCase, 'test'))
919 l.append(unittest.makeSuite(mysqlReadOnlyDBTestCase, 'test')) 940 # l.append(unittest.makeSuite(mysqlReadOnlyDBTestCase, 'test'))
920 #return unittest.TestSuite(l) 941 #return unittest.TestSuite(l)
921 942
922 if hasattr(backends, 'gadfly'): 943 if hasattr(backends, 'gadfly'):
923 p.append('gadfly') 944 p.append('gadfly')
924 l.append(unittest.makeSuite(gadflyDBTestCase, 'test')) 945 l.append(unittest.makeSuite(gadflyDBTestCase, 'test'))

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