Jim Fulton wrote:
Look at zc.selenium, which does this.


I'm struggling a little bit with making the leap to Zope 2 and ZopeTestCase, though. I think the approach zc.selenium takes is a bit more complex than what I need, because it seems to be doing some of the Selenium controlling itself. The way I've used Selenium in Java before uses a simple client driver (which has a Python version) talking to the Selenium RC, which deals with opening the browser etc.

In this case, we used a base class for JUnit tests that did a database clean-down to a known good state before each test run. If I can do the basic test setup in a standard layer and do the "reset database to the layer's setup state" before each test, I think we'd be good. I don't particularly need to do the reset from within a Selenium test (i.e. with a browser URL) or run tests from an HTML table.

I think the main problem is that I'm not terribly familiar with how DemoStorage works, or how the Zope server (in a test case) ends up getting its database. I'm worried that I may be asking the "wrong" questions here, but to my mind, the three questions would be:

- how can I use DemoStorage to snapshot a known state and then return to it at all

 - how can I ensure that this is the storage that the Zope server sees

- how can I actually access a server that's running inside a ZopeTestCase over a URL, i.e. ensure that it binds to a port and serves requests for the duration of the test run


Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to