On 5/22/13, [email protected] <[email protected]> wrote: > Author: astaric > Date: Wed May 22 15:47:48 2013 > New Revision: 1485255 > > URL: http://svn.apache.org/r1485255 > Log: > Force trac to use separate db connections for different environments when > running tests. > > Unittests in python2.7 run in the same process and share the same > connection > pool. This basically means that all tests share the same in-memory > database,
yes but , considering the fact that tests are executed in sequential order , there's no harm done for well-written test cases > and calling reset_db in teardown methods destroys data prepared in __init__ > of other tests. Test data must not be prepared on __init__ . Disposing test data in tearDown is quite convenient to isolate test case execution . If test data is created by test case #1 and it's not disposed afterwards then it might be messing around until the end of the test run thus polluting test reports by introducing false negative results . This is a terrible headache wrt test code , which btw , I'm suffering now with RPC plugin test suite ... so please, do not alter that behavior (i.e. clean in-memory DB expected as TC pre/post-condition ) . > Trac tests do not do prepare data in __init__, indeed , for a good reason ... > but when run > with a product env, which stores config values to database, this behavior > causes multiple tests to fail. > then why not to ensure that such values are configured at the beginning of each test case inside setUp method . > We workaround this issue by monkey patching trac's ConnectionPool. We force > it to establish a separate connection for each DatabaseManager. > ... this starts to make sense to me ... but, isn't it the very same DB in the end ? in any case , please beware of the facts above in spite of emitting test reports we can trust . [...] -- Regards, Olemis.
