[Grok-dev] five.grok - what changed to break this?
sylvain at infrae.com
sylvain at infrae.com
Sat Sep 27 02:04:27 EDT 2008
> Martin Aspeli wrote:
>> I struggle to guess what that adapter may be or why there's two of it,
>> but my guess would be the static/ folder stuff?
> Turns out to be a good guess. I've just checked in a workaround for some
> code that was obviously broken:
> Index: src/five/grok/meta.py
> --- src/five/grok/meta.py (revision 91534)
> +++ src/five/grok/meta.py (working copy)
> @@ -59,16 +59,18 @@
> "resource directory and a module named "
> "'static.py'", module_info.getModule())
> - # FIXME: This is public, we need to set security on resources ?
> - name = module_info.dotted_name
> - resource_factory = components.DirectoryResourceFactory(
> - name, resource_path)
> - adapts = (IDefaultBrowserLayer,)
> - provides = interface.Interface
> + # FIXME: This is public, we need to set security on resources
> + name = module_info.dotted_name
> + resource_factory = components.DirectoryResourceFactory(
> + name, resource_path)
> + adapts = (IDefaultBrowserLayer,)
> + provides = interface.Interface
> - config.action(
> - discriminator=('adapter', adapts, provides, name),
> - callable=component.provideAdapter,
> - args=(resource_factory, adapts, provides, name),
> - )
> - return True
> + config.action(
> + discriminator=('adapter', adapts, provides, name),
> + callable=component.provideAdapter,
> + args=(resource_factory, adapts, provides, name),
> + )
> + return True
> + return False
> \ No newline at end of file
> That is, it was registering the 'static' resource directory adapter even
> when there was no 'static/' directory to be found!
It's done the same in Grok. I think that's if the developer wants to add
a directory afterwards, he don't have to restart his instance.
> I didn't break any tests with this change. I should've written a failing
> test to prove it, but I don't have time for that right now and I need my
> instance to start up. :)
Well, you didn't break any test, since tests are checking that there is
an adapter for a static directory is registered, and it's the case, the
Zope 3 one, which don't work in Zope 2.
More information about the Grok-dev