[Checkins] SVN: z3c.cssresource/trunk/src/z3c/cssresource/ Make
tests for directive and fix abvious bugs.
Stephan Richter
srichter at cosmos.phy.tufts.edu
Mon Aug 14 14:38:53 EDT 2006
Log message for revision 69492:
Make tests for directive and fix abvious bugs.
Changed:
U z3c.cssresource/trunk/src/z3c/cssresource/tests.py
U z3c.cssresource/trunk/src/z3c/cssresource/zcml.py
A z3c.cssresource/trunk/src/z3c/cssresource/zcml.txt
-=-
Modified: z3c.cssresource/trunk/src/z3c/cssresource/tests.py
===================================================================
--- z3c.cssresource/trunk/src/z3c/cssresource/tests.py 2006-08-14 18:25:51 UTC (rev 69491)
+++ z3c.cssresource/trunk/src/z3c/cssresource/tests.py 2006-08-14 18:38:52 UTC (rev 69492)
@@ -19,6 +19,7 @@
import doctest
import unittest
+from zope.app.testing import placelesssetup
from zope.testing.doctestunit import DocFileSuite
def test_suite():
@@ -27,6 +28,11 @@
DocFileSuite('README.txt',
optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
),
+ DocFileSuite('zcml.txt',
+ setUp=placelesssetup.setUp,
+ tearDown=placelesssetup.tearDown,
+ optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
+ ),
))
if __name__ == '__main__':
Modified: z3c.cssresource/trunk/src/z3c/cssresource/zcml.py
===================================================================
--- z3c.cssresource/trunk/src/z3c/cssresource/zcml.py 2006-08-14 18:25:51 UTC (rev 69491)
+++ z3c.cssresource/trunk/src/z3c/cssresource/zcml.py 2006-08-14 18:38:52 UTC (rev 69492)
@@ -19,10 +19,11 @@
import zope.configuration.fields
from zope.component.zcml import handler
from zope.interface import Interface
-from zope.publisher.interfaces.browser import IDefaultBrowserLayer
-from zope.app.publisher.browser import metadirectives
+from zope.publisher.interfaces import browser
+from zope.security.checker import CheckerPublic, NamesChecker
+from zope.app.publisher.browser import metadirectives, resourcemeta
-from z3c.cssresource import cssresource
+import z3c.cssresource
class ICSSResourceDirective(metadirectives.IBasicResourceInformation):
@@ -47,13 +48,18 @@
)
-def cssresource(_context, name, file, layer=IDefaultBrowserLayer,
+def cssresource(_context, name, file, layer=browser.IDefaultBrowserLayer,
permission='zope.Public'):
- factory = cssresource.CSSFileResourceFactory(file, checker, name)
+ if permission == 'zope.Public':
+ permission = CheckerPublic
+ checker = NamesChecker(resourcemeta.allowed_names, permission)
+
+ factory = z3c.cssresource.CSSFileResourceFactory(file, checker, name)
+
_context.action(
- discriminator = ('resource', name, IBrowserRequest, layer),
+ discriminator = ('resource', name, browser.IBrowserRequest, layer),
callable = handler,
args = ('registerAdapter',
factory, (layer,), Interface, name, _context.info),
Added: z3c.cssresource/trunk/src/z3c/cssresource/zcml.txt
===================================================================
--- z3c.cssresource/trunk/src/z3c/cssresource/zcml.txt 2006-08-14 18:25:51 UTC (rev 69491)
+++ z3c.cssresource/trunk/src/z3c/cssresource/zcml.txt 2006-08-14 18:38:52 UTC (rev 69492)
@@ -0,0 +1,61 @@
+==========================
+``css-resource`` Directive
+==========================
+
+This package provides a new directive to use the special resource
+directive. Let's register it first:
+
+ >>> from zope.configuration import xmlconfig
+ >>> context = xmlconfig.string('''
+ ... <configure i18n_domain="zope">
+ ... <include package="z3c.cssresource" file="meta.zcml" />
+ ... </configure>
+ ... ''')
+
+Now we can register a resource:
+
+ >>> import tempfile
+ >>> fn = tempfile.mktemp('.css')
+ >>> open(fn, 'w').write('''\
+ ... /* zope-global-replace: "../img1" "++resource++/img" */
+ ... h1 {
+ ... color: red;
+ ... background: url('../img1/mybackground.gif');
+ ... }
+ ...
+ ... h2 {
+ ... color: red;
+ ... background: url('../img2/mybackground.gif');
+ ... }
+ ... /* zope-global-replace: "../img2" "++resource++/img" */
+ ... ''')
+
+ >>> context = xmlconfig.string('''
+ ... <configure xmlns="http://namespaces.zope.org/browser" i18n_domain="zope">
+ ... <css-resource
+ ... name="test.css"
+ ... file="%s" />
+ ... </configure>
+ ... ''' %fn, context=context)
+
+Now let's see whether the adapter has been registered:
+
+ >>> import zope.component
+ >>> import zope.interface
+ >>> from zope.publisher.browser import TestRequest
+ >>> resource = zope.component.getAdapter(
+ ... TestRequest(), zope.interface.Interface, name='test.css')
+
+Now run it:
+
+ >>> print resource.GET()
+ h1 {
+ color: red;
+ background: url('++resource++/img/mybackground.gif');
+ }
+ <BLANKLINE>
+ h2 {
+ color: red;
+ background: url('++resource++/img/mybackground.gif');
+ }
+ <BLANKLINE>
Property changes on: z3c.cssresource/trunk/src/z3c/cssresource/zcml.txt
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the Checkins
mailing list