[Checkins] SVN: megrok.resource/trunk/src/megrok/resource/ Added a test for including non-grokked resource libraries and fixed the directive "include" accordingly.
Souheil CHELFOUH
souheil at chelfouh.com
Fri Feb 19 04:48:09 EST 2010
Log message for revision 109140:
Added a test for including non-grokked resource libraries and fixed the directive "include" accordingly.
Changed:
U megrok.resource/trunk/src/megrok/resource/README.txt
U megrok.resource/trunk/src/megrok/resource/directives.py
-=-
Modified: megrok.resource/trunk/src/megrok/resource/README.txt
===================================================================
--- megrok.resource/trunk/src/megrok/resource/README.txt 2010-02-19 08:49:06 UTC (rev 109139)
+++ megrok.resource/trunk/src/megrok/resource/README.txt 2010-02-19 09:48:09 UTC (rev 109140)
@@ -205,9 +205,22 @@
... return u""
Traceback (most recent call last):
...
- ValueError: You can only include IInclusions components.
+ ValueError: You can only include IInclusion or ResourceLibrary components.
+It should accept non-grokked ResourceLibraries as valid inclusions::
+ >>> class OtherResources(resource.ResourceLibrary):
+ ... resource.path('ftests/css')
+ ... resource.resource('a.css')
+
+ >>> class TolerantView(view.View):
+ ... grok.context(Interface)
+ ... resource.include(OtherResources)
+ ...
+ ... def render(self):
+ ... return u""
+
+
Remote inclusion
-----------------
Modified: megrok.resource/trunk/src/megrok/resource/directives.py
===================================================================
--- megrok.resource/trunk/src/megrok/resource/directives.py 2010-02-19 08:49:06 UTC (rev 109139)
+++ megrok.resource/trunk/src/megrok/resource/directives.py 2010-02-19 09:48:09 UTC (rev 109140)
@@ -3,15 +3,18 @@
import martian
from hurry.resource import ResourceInclusion
from hurry.resource.interfaces import IInclusion
+from megrok.resource.components import ResourceLibrary
from megrok.resource.interfaces import IResourcesIncluder
from zope.interface import classImplements
from zope.interface.declarations import addClassAdvisor
def validateInclusion(directive, value):
- if not IInclusion.providedBy(value):
+ if (not IInclusion.providedBy(value) and
+ not martian.util.check_subclass(value, ResourceLibrary)):
raise ValueError(
- "You can only include IInclusions components.")
+ "You can only include IInclusion or"
+ " ResourceLibrary components.")
class use_hash(martian.Directive):
More information about the checkins
mailing list