[Checkins] SVN: zope.app.publisher/trunk/ see CHANGES
Jodok Batlogg
jodok.batlogg at lovelysystems.com
Thu Oct 23 12:42:29 EDT 2008
Log message for revision 92506:
see CHANGES
Changed:
U zope.app.publisher/trunk/CHANGES.txt
U zope.app.publisher/trunk/setup.py
U zope.app.publisher/trunk/src/zope/app/publisher/browser/resource.py
U zope.app.publisher/trunk/src/zope/app/publisher/browser/tests/test_resource.py
-=-
Modified: zope.app.publisher/trunk/CHANGES.txt
===================================================================
--- zope.app.publisher/trunk/CHANGES.txt 2008-10-23 16:12:46 UTC (rev 92505)
+++ zope.app.publisher/trunk/CHANGES.txt 2008-10-23 16:42:28 UTC (rev 92506)
@@ -2,11 +2,18 @@
Changes
=======
-3.5.2 (Unreleased)
+3.5.3 (Unreleased)
==================
- ...
+3.5.2a1 (2008-10-23)
+====================
+
+- Added a hook to specify a different BaseURL for resources. This makes sense
+ if you want to put resources on a Content Delivery Network. All you need to
+ do is to register an named Adapter 'resource' that implements IAbsoluteURL.
+
3.5.1 (2008-10-13)
==================
Modified: zope.app.publisher/trunk/setup.py
===================================================================
--- zope.app.publisher/trunk/setup.py 2008-10-23 16:12:46 UTC (rev 92505)
+++ zope.app.publisher/trunk/setup.py 2008-10-23 16:42:28 UTC (rev 92506)
@@ -19,7 +19,7 @@
open('CHANGES.txt').read())
setup(name='zope.app.publisher',
- version = '3.5.2dev',
+ version = '3.5.2a1',
url='http://pypi.python.org/pypi/zope.app.publisher/',
author='Zope Corporation and Contributors',
author_email='zope-dev at zope.org',
Modified: zope.app.publisher/trunk/src/zope/app/publisher/browser/resource.py
===================================================================
--- zope.app.publisher/trunk/src/zope/app/publisher/browser/resource.py 2008-10-23 16:12:46 UTC (rev 92505)
+++ zope.app.publisher/trunk/src/zope/app/publisher/browser/resource.py 2008-10-23 16:42:28 UTC (rev 92506)
@@ -16,6 +16,7 @@
$Id$
"""
from zope.component import getMultiAdapter
+from zope.component import queryMultiAdapter
from zope.component.interfaces import IResource
from zope.interface import implements
from zope.traversing.browser.interfaces import IAbsoluteURL
@@ -38,5 +39,11 @@
name = name[12:]
site = getSite()
- url = str(getMultiAdapter((site, self.request), IAbsoluteURL))
+ base = queryMultiAdapter((site, self.request), IAbsoluteURL,
+ name="resource")
+ if base is None:
+ url = str(getMultiAdapter((site, self.request), IAbsoluteURL))
+ else:
+ url = str(base)
+
return self._createUrl(url, name)
Modified: zope.app.publisher/trunk/src/zope/app/publisher/browser/tests/test_resource.py
===================================================================
--- zope.app.publisher/trunk/src/zope/app/publisher/browser/tests/test_resource.py 2008-10-23 16:12:46 UTC (rev 92505)
+++ zope.app.publisher/trunk/src/zope/app/publisher/browser/tests/test_resource.py 2008-10-23 16:42:28 UTC (rev 92506)
@@ -17,11 +17,15 @@
"""
import unittest
+from zope import component
+
from zope.publisher.browser import TestRequest
+from zope.app.component.interfaces import ISite
from zope.app.publisher.browser.resource import Resource
from zope.app.publisher.browser.tests import support
from zope.app.testing.placelesssetup import PlacelessSetup
+from zope.traversing.browser.interfaces import IAbsoluteURL
class TestResource(support.SiteHandler, PlacelessSetup, unittest.TestCase):
@@ -45,7 +49,21 @@
r.__name__ = 'foo'
self.assertEquals(r(), 'http://127.0.0.1/x/y/@@/foo')
+ def testResourceUrl(self):
+ # fake IAbsoluteURL adapter
+ def resourceBase(site, request):
+ return 'http://cdn.example.com'
+ component.provideAdapter(resourceBase, (ISite, TestRequest),
+ IAbsoluteURL, 'resource')
+ req = TestRequest()
+ r = Resource(req)
+ req._vh_root = support.site
+ r.__parent__ = support.site
+ r.__name__ = 'foo'
+ self.assertEquals(r(), 'http://cdn.example.com/@@/foo')
+
+
def test_suite():
return unittest.makeSuite(TestResource)
More information about the Checkins
mailing list