[Zope3-dev] Re: Keening for the poultry
jürgen Kartnaller
j.kartnaller at cable.vol.at
Thu Oct 13 12:53:17 EDT 2005
Hi Tres.
I just want to show you what I have so far.
See the attached test file.
I took me really a lot of time to figure out all these things.
Currently I'm at a point where the view is missing the activeTool which
is set up in __init__.
How should a zope rookie be able to write such a test if the zope pro
gives up :)
Jürgen
Tres Seaver wrote:
> I have been trying to write a doctest for the "tools" stuff to show
> Jürgen Kartnaller how[1], so he could write a test for the bug he found
> in tool deletion[2].
>
> While writing the test, I found myself mourning for the huge flock of
> assorted fowl I was slaughtering, trying to get the planets aligned[3]
> so that the SiteManagerView could actually install a tool implmentation.
Hugh, this sentence really needs a dictionary for a non native english
speaker :)
>
> I have finally given up, and ask abjectly for elightenment from the
> hierarchs of Z3. Please see the attached doctest and setup code for my
> efforts so far,
>
> [1] http://article.gmane.org/gmane.comp.web.zope.zope3/14477
>
> [2] http://article.gmane.org/gmane.comp.web.zope.zope3/14459
>
> [3] No, I'm not mixing metaphors: the ritual slaughter is precisely
> intended to cause the planets to realign themselves.
>
> Removing-bloody-apron-and-picking-down-out-of-my-ears'ly,
>
>
> Tres.
> --
> ===================================================================
> Tres Seaver +1 202-558-7113 tseaver at palladion.com
> Palladion Software "Excellence by Design" http://palladion.com
-------------- next part --------------
==============
The Tools View
==============
>>> from zope.app import zapi
>>> from zope.app.component.browser.tools import SiteManagementView
>>> from zope import interface
>>> class IFooUtil(interface.Interface):
... pass
>>> class FooUtil(object):
... interface.implements(IFooUtil)
>>> from zope.component.interfaces import IFactory
>>> from zope.component.factory import Factory
>>> from zope import component
>>> from zope.app.security import protectclass
>>> protectclass.protectName(Factory, '__call__', 'zope.public')
>>> factory = Factory(FooUtil,
... 'Utility for foo',
... 'This factory creates a foo utility.')
>>> component.provideUtility(factory, IFactory, 'IFooUtil')
>>> from zope.publisher.browser import TestRequest
>>> request = TestRequest()
>>> view = SiteManagementView('context', request)
>>> view.getTools()
[]
>>> view.update()
u''
>>> request.form['ADD-TOOL-SUBMIT']='submit'
>>> request.form['type_name']='IFooUtil'
>>> request.form['id']='foo1'
>>> view.update()
>>> component.getUtility(IFooUtil, 'foo1') is not None
True
More information about the Zope3-dev
mailing list