[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