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

2010-08-27 Thread Chris Withers
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
___
Zope-Dev maillist  -  Zope-Dev@zope.org
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 )


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

2010-08-26 Thread Marius Gedminas
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


signature.asc
Description: Digital signature
___
Zope-Dev maillist  -  Zope-Dev@zope.org
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 )