[Zope] unit testing and committing transactions
Stefan H. Holek
stefan at epy.co.at
Mon Mar 22 19:41:26 EST 2004
On Dienstag, Mär 23, 2004, at 00:03 Europe/Vienna, Karl Anderson wrote:
>
> def makeNewDB():
> """
> Overwrite the custom_zodb DemoStorage with a new one, then call
> startup
> to make a new DB. This is needed when we want a clean slate after
> a transaction has been committed.
> """
> m = imp.find_module('custom_zodb', [TESTING_HOME])
> m = imp.load_module('Zope.custom_zodb', m[0], m[1], m[2])
> m.Storage = DemoStorage(quota=(1<<20))
> # call the app startup manually - it won't be called by
> Zope.startup()
> # more than once. This only works after a call to Zope.app().
> Zope.App.startup.startup()
>
You can replace the above with 'import Testing'. This modifies the
configuration and Zope.app() will do the right thing (tm). Neat, huh?
> class testFoo(unittest.TestCase):
> def setUp(self):
> self.app = Zope.app()
> self.app._setObject('foo', OFS.ObjectManager.ObjectManager())
> get_transaction().commit()
>
As a simple hack you can define a tearDown() method like so:
def tearDown(self):
self.app._delObject('foo')
get_transaction().commit()
self.app._p_jar.close()
> def testPass(self):
> self.assertEqual(1,1)
>
> def testPass1(self):
> self.assertEqual(1,1)
>
>
You may also be interested in the ZopeTestCase package which takes care
of all these things for you: <http://zope.org/Members/shh/ZopeTestCase>
Stefan
--
The time has come to start talking about whether the emperor is as well
dressed as we are supposed to think he is. /Pete McBreen/
More information about the Zope
mailing list