[Zope-dev] testing problem with path expressions in page templates

Chris Withers chris at simplistix.co.uk
Fri Aug 27 11:31:25 EDT 2010


Marius Gedminas wrote:
>> What adapter might that be and what's the "right" way to get it 
>> registered in a unit test?
> 
> DefaultTraversable, I think, and
> 
>         from zope.app.testing import setup
>         setup.setUpTraversal()
> 
> Various other features need various other components, e.g. if your
> template tries to use @@absolute_url, in addition to the above, you'll need
> 
>         provideAdapter(zope.traversing.namespace.view,
>                        adapts=(None, None),
>                        provides=ITraversable,
>                        name='view')
> 
> similarly for resources you do something like
> 
>         ztapi.provideView(Interface, Interface, ITraversable, 'resource',
>                           zope.traversing.namespace.resource)
>         ztapi.browserResource('style.css', ResourceStub)
> 
> and let's not even start talking about forms and widgets.
> 
> I'm not sure rendering page templates in unit tests is worth the pain.

Actually, it wasn't that bad:

from Products.Five import zcml

class Tests(unittest.TestCase):

     def setUp(self):
         cleanup.cleanUp()
         zcml._initialized = False
         zcml.load_site()

     def tearDown(self):
         cleanup.cleanUp()

cheers,

Chris

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


More information about the Zope-Dev mailing list