Re: testing problem with path expressions in page templates

Marius Gedminas <[email protected]>
Newsgroups gmane.comp.web.zope.devel
Message-ID <20100827013103.GA20781@platonas>
On Fri, Aug 27, 2010 at 12:47:11AM +0100, Chris Withers wrote:
> When trying to test a template in a unit test, I get the following 
> exception:
...
> LocationError: ('No traversable adapter found', {'content': <MyObject>, 
> 'args': ()})
...
> Now, the same template works just fine when used "for real", so I figure 
> some standard traversal adapter hasn't been registered when the test runs.
> 
> 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.

Marius Gedminas
-- 
http://pov.lt/ -- Zope 3/BlueBream consulting and development

_______________________________________________
Zope-Dev maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkx3FVMACgkQkVdEXeem14/7kwCfcHl+ZHkwlrHhf1jbX6mXMmZD
XaQAoIhd44gchdMKPNQ8pEV0h0mSIbtB
=FquR
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.