Lennart Regebro wrote:
> On the actual problem, this is a big red flag for me:
> 'isinstance(zapi.getSiteManager(), FiveSiteManager)': True,
> Fails. So, it's not a FivesiteManager. What is it? None, or something else?
It's the global site manager if not the FiveSiteManager.
> Since this seems to be a cleanup issue, my guess is: Something else.
> Probably another one of the site tests doesn't clean up (and that's
> probably my fault).
Nope, it's really nobody's fault but mine. And the site tests weren't
sure. So, before I explain this issue in detail, let me say: I've already fixed
the Five repo after remembering a peculiarity in Zope 3.1+ last night. I just
the time yet to merge it to the Zope repo, will do that first thing I'm back in
check-in range (on the road right now).
So, here's the deal:
zope.component doesn't have a clue about local sites. All it knows is the
manager. However, it *does* provide a hook so that other software can influence
site manager is found. zope.app.component (notice the app here) provides such a
knows about the site in the thread local. That's how zope.component in the end
find local sites, because it calls the hook.
Now, in Zope X3 3.0, the hooks were set via ZCML using the <hook /> directive.
directive was ripped out in Zope 3.1 and replaced by a simple function,
zope.app.component.hooks.setHooks(). This function is called upon Zope startup
zope.app.appsetup.appsetup.config() so that the hooks are set when Zope is
clean-up function is registered with the general test clean-up facility in Zope
clears the hook. So, a unit test would normally not see the hooks *if* it is
a test that has used e.g. placelesssetup.tearDown().
So, in the end, it was actually a problem of cleaning up too much, not too
already had to deal with this problem in the utility tests and solved it there,
didn't remember it when I initially wrote the functional test. That's why my
efforts were futile back then.
I guess this needs to be handled a better way, but I leave it to Stephan (who I
responsible for the hooks handling) to decide what to do.
This message was sent using IMP, the Internet Messaging Program.
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -