[Checkins] SVN: grokcore.resource/trunk/src/grokcore/resource/ No longer go up the mro in order to find parent's resources.
Jan-Jaap Driessen
cvs-admin at zope.org
Tue May 8 23:04:02 UTC 2012
Log message for revision 125739:
No longer go up the mro in order to find parent's resources.
Changed:
U grokcore.resource/trunk/src/grokcore/resource/event.py
U grokcore.resource/trunk/src/grokcore/resource/tests/fixtures.py
U grokcore.resource/trunk/src/grokcore/resource/tests/test_functional.py
-=-
Modified: grokcore.resource/trunk/src/grokcore/resource/event.py
===================================================================
--- grokcore.resource/trunk/src/grokcore/resource/event.py 2012-05-08 19:54:10 UTC (rev 125738)
+++ grokcore.resource/trunk/src/grokcore/resource/event.py 2012-05-08 23:03:59 UTC (rev 125739)
@@ -5,35 +5,20 @@
import grokcore.resource.directives
-
@grokcore.component.subscribe(
grokcore.resource.interfaces.IResourcesIncluder,
zope.app.publication.interfaces.IBeforeTraverseEvent)
def handle_inclusion(includer, event):
includer = zope.security.proxy.removeSecurityProxy(includer)
- needs = set()
- # XXX Need to fix this.
- for class_ in includer.__class__.__mro__:
- if grokcore.resource.interfaces.IResourcesIncluder.implementedBy(class_):
- father = zope.security.proxy.removeSecurityProxy(class_)
- for resources in \
- grokcore.resource.directives.include.bind().get(father):
- needs.update(resources)
- for resource in needs:
- resource.need()
+ for resources in grokcore.resource.directives.include.bind().get(includer):
+ for resource in resources:
+ resource.need()
@grokcore.component.subscribe(
grokcore.resource.interfaces.IResourcesIncluder,
zope.contentprovider.interfaces.IBeforeUpdateEvent)
def handle_inclusion(includer, event):
includer = zope.security.proxy.removeSecurityProxy(includer)
- needs = set()
- # XXX Need to fix this.
- for class_ in includer.__class__.__mro__:
- if grokcore.resource.interfaces.IResourcesIncluder.implementedBy(class_):
- father = zope.security.proxy.removeSecurityProxy(class_)
- for resources in \
- grokcore.resource.directives.include.bind().get(father):
- needs.update(resources)
- for resource in needs:
- resource.need()
+ for resources in grokcore.resource.directives.include.bind().get(includer):
+ for resource in resources:
+ resource.need()
Modified: grokcore.resource/trunk/src/grokcore/resource/tests/fixtures.py
===================================================================
--- grokcore.resource/trunk/src/grokcore/resource/tests/fixtures.py 2012-05-08 19:54:10 UTC (rev 125738)
+++ grokcore.resource/trunk/src/grokcore/resource/tests/fixtures.py 2012-05-08 23:03:59 UTC (rev 125739)
@@ -20,7 +20,7 @@
grokcore.resource.include(css_a)
grokcore.view.template('index')
-class ViewWithExtraResource(MyView):
+class ViewWithOwnResource(MyView):
grokcore.resource.include(css_b)
class ViewWithMultipleResources(grokcore.view.View):
Modified: grokcore.resource/trunk/src/grokcore/resource/tests/test_functional.py
===================================================================
--- grokcore.resource/trunk/src/grokcore/resource/tests/test_functional.py 2012-05-08 19:54:10 UTC (rev 125738)
+++ grokcore.resource/trunk/src/grokcore/resource/tests/test_functional.py 2012-05-08 23:03:59 UTC (rev 125739)
@@ -87,16 +87,14 @@
</html>
''', browser.contents)
- def test_stacking(self):
- '''The `include` directive can be stacked, if several resources are
- to be included.'''
+ def test_resources_override_in_subclass(self):
+ '''The `include` directive overrides resources needed in super classes.'''
from zope.app.wsgi.testlayer import Browser
- browser = Browser('http://localhost/@@viewwithextraresource')
+ browser = Browser('http://localhost/@@viewwithownresource')
self.assertEqual('''\
<html>
<head>
- <link rel="stylesheet" type="text/css" href="http://localhost/fanstatic/grokcore.resource.tests/a.css" />
-<link rel="stylesheet" type="text/css" href="http://localhost/fanstatic/grokcore.resource.tests/b.css" />
+ <link rel="stylesheet" type="text/css" href="http://localhost/fanstatic/grokcore.resource.tests/b.css" />
</head>
<body>
More information about the checkins
mailing list