[Checkins] SVN: Sandbox/nadako/zope.browserresource/src/zope/browserresource/ Add tests for pluggable resource factory mechanism.

Dan Korostelev nadako at gmail.com
Mon Aug 24 07:20:45 EDT 2009


Log message for revision 103136:
  Add tests for pluggable resource factory mechanism.
  Cleanup test code a little.
  Use file instead of image in the icon directive.

Changed:
  U   Sandbox/nadako/zope.browserresource/src/zope/browserresource/metaconfigure.py
  U   Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directives.py
  U   Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directory.py
  U   Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_icondirective.py
  D   Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/testfiles/png

-=-
Modified: Sandbox/nadako/zope.browserresource/src/zope/browserresource/metaconfigure.py
===================================================================
--- Sandbox/nadako/zope.browserresource/src/zope/browserresource/metaconfigure.py	2009-08-24 11:00:40 UTC (rev 103135)
+++ Sandbox/nadako/zope.browserresource/src/zope/browserresource/metaconfigure.py	2009-08-24 11:20:44 UTC (rev 103136)
@@ -150,7 +150,7 @@
         # give this module another name, so we can use the "resource" directive
         # in it that won't conflict with our local variable with the same name.
         from zope.browserresource import metaconfigure
-        metaconfigure.resource(_context, image=file, name=resource, layer=layer)
+        metaconfigure.resource(_context, file=file, name=resource, layer=layer)
     elif resource is None:
         raise ConfigurationError(
             "At least one of the file, and resource "

Modified: Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directives.py
===================================================================
--- Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directives.py	2009-08-24 11:00:40 UTC (rev 103135)
+++ Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directives.py	2009-08-24 11:20:44 UTC (rev 103136)
@@ -16,7 +16,6 @@
 $Id$
 """
 
-import sys
 import os
 import unittest
 from cStringIO import StringIO
@@ -35,7 +34,6 @@
 from zope.security.proxy import removeSecurityProxy, ProxyFactory
 from zope.security.permission import Permission
 from zope.security.interfaces import IPermission
-from zope.testing.doctestunit import DocTestSuite
 from zope.traversing.adapters import DefaultTraversable
 from zope.traversing.interfaces import ITraversable
 
@@ -193,6 +191,34 @@
         self.assertEqual(r._testData(), open(path, 'rb').read())
 
 
+    def testPluggableFactory(self):
+
+        class ImageResource(object):
+            def __init__(self, image, request):
+                pass
+
+        class ImageResourceFactory(object):
+            def __init__(self, path, checker, name):
+                pass
+            def __call__(self, request):
+                return ImageResource(None, request)
+
+        from zope.browserresource.interfaces import IResourceFactoryFactory
+        component.provideUtility(ImageResourceFactory, IResourceFactoryFactory,
+                                 name='gif')
+
+        xmlconfig(StringIO(template %
+            '''
+            <browser:resource
+                name="test.gif"
+                file="%s"
+                />
+            ''' % os.path.join(tests_path, 'testfiles', 'test.gif')
+            ))
+
+        r = component.getAdapter(request, name='test.gif')
+        self.assertTrue(isinstance(r, ImageResource))
+
     def testSkinResource(self):
         self.assertEqual(component.queryAdapter(request, name='test'), None)
 
@@ -215,9 +241,4 @@
         self.assertEqual(r._testData(), open(path, 'rb').read())
 
 def test_suite():
-    return unittest.TestSuite((
-        unittest.makeSuite(Test),
-        DocTestSuite('zope.browserresource.metaconfigure',
-                     setUp=cleanup.setUp,
-                     tearDown=cleanup.tearDown)
-        ))
+    return unittest.makeSuite(Test)

Modified: Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directory.py
===================================================================
--- Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directory.py	2009-08-24 11:00:40 UTC (rev 103135)
+++ Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directory.py	2009-08-24 11:20:44 UTC (rev 103136)
@@ -27,7 +27,7 @@
 from zope.location.interfaces import IContained
 from zope.traversing.browser.absoluteurl import AbsoluteURL
 from zope.traversing.browser.interfaces import IAbsoluteURL
-from zope.component import provideAdapter
+from zope.component import provideAdapter, provideUtility
 
 from zope.testing import cleanup
 
@@ -116,17 +116,29 @@
         self.assertEquals(file(),
                           'http://127.0.0.1/@@/test_files/subdir/test.gif')
 
-    def testCorrectFactories(self):
+    def testPluggableFactories(self):
         path = os.path.join(test_directory, 'testfiles')
         request = TestRequest()
         resource = DirectoryResourceFactory(path, checker, 'files')(request)
 
+        class ImageResource(object):
+            def __init__(self, image, request):
+                pass
+
+        class ImageResourceFactory(object):
+            def __init__(self, path, checker, name):
+                pass
+            def __call__(self, request):
+                return ImageResource(None, request)
+
+        from zope.browserresource.interfaces import IResourceFactoryFactory
+        provideUtility(ImageResourceFactory, IResourceFactoryFactory, 'gif')
+
         image = resource['test.gif']
-        self.assert_(proxy.isinstance(image, FileResource))
+        self.assert_(proxy.isinstance(image, ImageResource))
+
         file = resource['test.txt']
         self.assert_(proxy.isinstance(file, FileResource))
-        file = resource['png']
-        self.assert_(proxy.isinstance(file, FileResource))
 
 def test_suite():
     return makeSuite(Test)

Modified: Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_icondirective.py
===================================================================
--- Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_icondirective.py	2009-08-24 11:00:40 UTC (rev 103135)
+++ Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_icondirective.py	2009-08-24 11:20:44 UTC (rev 103136)
@@ -153,7 +153,7 @@
         xmlconfig(StringIO(template % (
             '''
             <browser:resource name="zmi_icon_res"
-                      image="%s" />
+                      file="%s" />
             <browser:icon name="zmi_icon"
                       for="zope.component.testfiles.views.IC"
                       resource="zmi_icon_res" />
@@ -185,7 +185,7 @@
         config = StringIO(template % (
             '''
             <browser:resource name="zmi_icon_res"
-                      image="%s" />
+                      file="%s" />
             <browser:icon name="zmi_icon"
                       for="zope.component.testfiles.views.IC"
                       file="%s"

Deleted: Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/testfiles/png
===================================================================
--- Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/testfiles/png	2009-08-24 11:00:40 UTC (rev 103135)
+++ Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/testfiles/png	2009-08-24 11:20:44 UTC (rev 103136)
@@ -1,2 +0,0 @@
-test
-data



More information about the Checkins mailing list