comparison test/test_mysql.py @ 4448:2784c239e6c8

clear the cache on commit for rdbms backends: Don't carry over cached values from one transaction to the next (there may be other changes from other transactions) see new ConcurrentDBTest for a read-modify-update cycle that fails with the old caching behavior.
author Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
date Fri, 22 Oct 2010 14:14:26 +0000
parents 2eae5848912d
children 34dce76bb202
comparison
equal deleted inserted replaced
4447:9d37875416c3 4448:2784c239e6c8
21 21
22 from roundup.hyperdb import DatabaseError 22 from roundup.hyperdb import DatabaseError
23 from roundup.backends import get_backend, have_backend 23 from roundup.backends import get_backend, have_backend
24 24
25 from db_test_base import DBTest, ROTest, config, SchemaTest, ClassicInitTest 25 from db_test_base import DBTest, ROTest, config, SchemaTest, ClassicInitTest
26 from db_test_base import ConcurrentDBTest
26 27
27 28
28 class mysqlOpener: 29 class mysqlOpener:
29 if have_backend('mysql'): 30 if have_backend('mysql'):
30 module = get_backend('mysql') 31 module = get_backend('mysql')
61 ClassicInitTest.setUp(self) 62 ClassicInitTest.setUp(self)
62 def tearDown(self): 63 def tearDown(self):
63 ClassicInitTest.tearDown(self) 64 ClassicInitTest.tearDown(self)
64 self.nuke_database() 65 self.nuke_database()
65 66
67 class mysqlConcurrencyTest(mysqlOpener, ConcurrentDBTest):
68 backend = 'mysql'
69 def setUp(self):
70 mysqlOpener.setUp(self)
71 ClassicInitTest.setUp(self)
72 def tearDown(self):
73 ClassicInitTest.tearDown(self)
74 self.nuke_database()
75
66 from session_common import RDBMSTest 76 from session_common import RDBMSTest
67 class mysqlSessionTest(mysqlOpener, RDBMSTest): 77 class mysqlSessionTest(mysqlOpener, RDBMSTest):
68 def setUp(self): 78 def setUp(self):
69 mysqlOpener.setUp(self) 79 mysqlOpener.setUp(self)
70 RDBMSTest.setUp(self) 80 RDBMSTest.setUp(self)
90 suite.addTest(unittest.makeSuite(mysqlDBTest)) 100 suite.addTest(unittest.makeSuite(mysqlDBTest))
91 suite.addTest(unittest.makeSuite(mysqlROTest)) 101 suite.addTest(unittest.makeSuite(mysqlROTest))
92 suite.addTest(unittest.makeSuite(mysqlSchemaTest)) 102 suite.addTest(unittest.makeSuite(mysqlSchemaTest))
93 suite.addTest(unittest.makeSuite(mysqlClassicInitTest)) 103 suite.addTest(unittest.makeSuite(mysqlClassicInitTest))
94 suite.addTest(unittest.makeSuite(mysqlSessionTest)) 104 suite.addTest(unittest.makeSuite(mysqlSessionTest))
105 suite.addTest(unittest.makeSuite(mysqlConcurrencyTest))
95 return suite 106 return suite
96 107
97 if __name__ == '__main__': 108 if __name__ == '__main__':
98 runner = unittest.TextTestRunner() 109 runner = unittest.TextTestRunner()
99 unittest.main(testRunner=runner) 110 unittest.main(testRunner=runner)

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