[Zope-dev] testing, DemoStorage and Zope2.app()

Chris Withers chris at simplistix.co.uk
Wed Oct 18 05:29:39 EDT 2006


Hi All,

I've been having fun with unit tests:

http://mail.zope.org/pipermail/zope3-dev/2006-October/020757.html

http://mail.zope.org/pipermail/zope3-dev/2006-October/020775.html

But Jim finally pointed me in the right direction:

http://mail.zope.org/pipermail/zope3-dev/2006-October/020789.html

So, stacking DemoStorages sounds like exactly what I want to do, with 
one DemoStorage for each test layer.

A couple of questions:

1. Should I do a transaction.commit() after each layer's setup, or will 
a DemoStorage stacked onto another DemoStorage as follows:

storage = DemoStorage(base=base_storage)

...still see all changes made to the base even if they're not committed?

2. How do I go about weaving the storage into the Zope2.app() stuff? In
    particular:

    - in a layer's setUp() method, how do I replace the DB used by the
      current Zope2.app() with the same storage but wrapped in a new
      DemoStorage?

    - in a layer's tearDown() method, how do I toss the DemoStorage
      created in the layer's setUp and replace it with the original one?

3. Is storage = DemoStorage(base=base_storage) and the dance needed for
    question 2 going to be quicker that transaction.commit() at the end
    of the layer setup and transaction.abort() at the end of every unit
    test?

cheers,

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk


More information about the Zope-Dev mailing list