[Zope3-dev] Re: strange behavior of intid-utility

Jürgen Kartnaller juergen at kartnaller.at
Sat Nov 18 07:44:02 EST 2006


Hi Tom.

The NotYet exception tells you, that the object you (or in this case the 
IntId utility) want to get a key refence for is not "Not Yet" connected 
to a database.

Your specific case is reported here : 
http://zope.org/Collectors/Zope3-dev/463

Jürgen

Tom Gross wrote:
> Here is the traceback:
> 
> Error in test test_withoutintids 
> (myproduct.ftests.test_wf.WorkflowTestCase)
> Traceback (most recent call last):
>  File "/usr/lib/python2.4/unittest.py", line 260, in run
>    testMethod()
>  File "/mnt/zope/ldev/var/zope/lib/python/myproduct/ftests.py", line 20, 
> in test_withoutintids
>    basic='mgr:mgrpw')
>  File 
> "/mnt/zope/ldev/app/zope3/lib/python/zope/app/testing/functional.py", 
> line 357, in publish
>    publish(request, handle_errors=handle_errors)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/publisher/publish.py", 
> line 133, in publish
>    result = publication.callObject(request, obj)
>  File 
> "/mnt/zope/ldev/app/zope3/lib/python/zope/app/publication/zopepublication.py", 
> line 161, in callObject
>    return mapply(ob, request.getPositionalArguments(), request)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/publisher/publish.py", 
> line 108, in mapply
>    return debug_call(obj, args)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/publisher/publish.py", 
> line 114, in debug_call
>    return obj(*args)
>  File 
> "/mnt/zope/ldev/app/zope3/lib/python/zope/app/container/browser/adding.py", 
> line 142, in action
>    content = factory()
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/component/factory.py", 
> line 37, in __call__
>    return self._callable(*args, **kw)
>  File 
> "/mnt/zope/ldev/app/zope3/lib/python/zope/app/workflow/stateful/definition.py", 
> line 115, in __init__
>    self.__states[self.getInitialStateName()] = initial
>  File 
> "/mnt/zope/ldev/app/zope3/lib/python/zope/app/workflow/definition.py", 
> line 87, in __setitem__
>    setitem(self, self.__data.__setitem__, name, object)
>  File 
> "/mnt/zope/ldev/app/zope3/lib/python/zope/app/container/contained.py", 
> line 593, in setitem
>    notify(event)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/event/__init__.py", line 
> 23, in notify
>    subscriber(event)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/component/event.py", 
> line 26, in dispatch
>    for ignored in zope.component.subscribers(event, None):
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/component/_api.py", line 
> 130, in subscribers
>    return sitemanager.subscribers(objects, interface)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/component/registry.py", 
> line 290, in subscribers
>    return self.adapters.subscribers(objects, provided)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/interface/adapter.py", 
> line 535, in subscribers
>    subscription(*objects)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/component/event.py", 
> line 33, in objectEventNotify
>    adapters = zope.component.subscribers((event.object, event), None)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/component/_api.py", line 
> 130, in subscribers
>    return sitemanager.subscribers(objects, interface)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/component/registry.py", 
> line 290, in subscribers
>    return self.adapters.subscribers(objects, provided)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/interface/adapter.py", 
> line 535, in subscribers
>    subscription(*objects)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/app/intid/__init__.py", 
> line 163, in addIntIdSubscriber
>    key = IKeyReference(ob, None)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/app/component/hooks.py", 
> line 96, in adapter_hook
>    return siteinfo.adapter_hook(interface, object, name, default)
>  File "/mnt/zope/ldev/app/zope3/lib/python/zope/security/adapter.py", 
> line 88, in __call__
>    adapter = self.factory(*args)
>  File 
> "/mnt/zope/ldev/app/zope3/lib/python/zope/app/keyreference/persistent.py", 
> line 41, in __init__
>    raise zope.app.keyreference.interfaces.NotYet(object)
> NotYet: <zope.app.workflow.stateful.definition.State object at 0xb47b786c>
> 
> 
> Philipp von Weitershausen wrote:
>> Tom Gross wrote:
>>>    I have a site with some utilities. One is a 
>>> zope.app.intid.UniqueIdUtility, which seems to be the cause of the 
>>> problem (see the test). A NotYet-Exception is raised, when I try to 
>>> add a zope.app.workflow.StatefulProcessDefinition-object to the 
>>> container with the utilities. I can add a 
>>> StatefulProcessDefinition-object to an empty container. I'm using 
>>> Zope 3.3 and Python 2.4.3.
>>
>> Got a traceback handy? (Remember: any error description should *always 
>> be acocmpanied by a traceback, otherwise it's not very useful)
>>
>> I have a suspicion as to what this is about (something's missing a 
>> __parent__ attribute), but I'd like to see the traceback first for 
>> confirmation. Yes, I could execute the test somehow, but that would 
>> take me a couple of minutes on my slow machine, and you already know 
>> what the error is, so you can just as well describe it to me in detail 
>> :). Note that providing a test is highly appreciated as it helps with 
>> the reproduceability of the problem...
>>
>>
> 



More information about the Zope3-dev mailing list