[z3-checkins] r5753 - in z3/Five/branch/dc-experiments: . tests
dreamcatcher at codespeak.net
dreamcatcher at codespeak.net
Wed Jul 28 17:02:09 MEST 2004
Author: dreamcatcher
Date: Wed Jul 28 17:02:09 2004
New Revision: 5753
Modified:
z3/Five/branch/dc-experiments/resource.py
z3/Five/branch/dc-experiments/tests/test_five.py
Log:
Fix DirectoryResource contained resources url.
Modified: z3/Five/branch/dc-experiments/resource.py
==============================================================================
--- z3/Five/branch/dc-experiments/resource.py (original)
+++ z3/Five/branch/dc-experiments/resource.py Wed Jul 28 17:02:09 2004
@@ -12,6 +12,7 @@
"""
import os
+import urllib
from Acquisition import Explicit, aq_inner, aq_parent
from ComputedAttribute import ComputedAttribute
@@ -44,7 +45,8 @@
container = self.__parent__
url = str(getViewProviding(container, IAbsoluteURL, self.request))
- if not '++resource++' in url:
+ url = urllib.unquote(url)
+ if not isinstance(container, DirectoryResource):
name = '++resource++%s' % name
return "%s/%s" % (url, name)
@@ -202,6 +204,7 @@
factory = self.resource_factories.get(ext, self.default_factory)
resource = factory(name, filename)(self.request)
resource.__name__ = name
+ resource.__parent__ = self
# XXX __of__ wrapping is usually done on traversal.
# However, we don't want to subclass Traversable (or do we?)
# The right thing should probably be a specific (and very simple)
Modified: z3/Five/branch/dc-experiments/tests/test_five.py
==============================================================================
--- z3/Five/branch/dc-experiments/tests/test_five.py (original)
+++ z3/Five/branch/dc-experiments/tests/test_five.py Wed Jul 28 17:02:09 2004
@@ -20,7 +20,7 @@
from Products.FiveTest.classes import Adaptable, Origin
from Products.FiveTest.interfaces import IAdapted, IDestination
from Products.FiveTest.browser import SimpleContentView
-from Products.Five.resource import Resource
+from Products.Five.resource import Resource, PageTemplateResource
from Products.Five.traversable import FakeRequest
from Products import FiveTest
@@ -181,9 +181,13 @@
def test_resource_directory(self):
base = 'testoid/++resource++fivetest_resources/%s'
+ base_url = 'test_folder_1_/%s' % base
for r in dir_resource_names:
resource = self.folder.unrestrictedTraverse(base % r)
self.assert_(isinstance(resource, Resource))
+ # PageTemplateResource's __call__ renders the template
+ if not isinstance(resource, PageTemplateResource):
+ self.assertEquals(resource(), base_url % r)
abs_url = self.folder.unrestrictedTraverse(base % '')()
expected = 'http://nohost/test_folder_1_/testoid/++resource++fivetest_resources'
self.assertEquals(abs_url, expected)
More information about the z3-checkins
mailing list