[Checkins] SVN: Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directives.py Cover the "resourceDirectory" directive. Clean up some more test code.

Dan Korostelev nadako at gmail.com
Mon Aug 24 07:37:52 EDT 2009


Log message for revision 103138:
  Cover the "resourceDirectory" directive. Clean up some more test code.

Changed:
  U   Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directives.py

-=-
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:29:57 UTC (rev 103137)
+++ Sandbox/nadako/zope.browserresource/src/zope/browserresource/tests/test_directives.py	2009-08-24 11:37:52 UTC (rev 103138)
@@ -43,6 +43,7 @@
 from zope.component.testfiles.views import R1, IV
 from zope.browserresource.file import FileResource
 from zope.browserresource.i18nfile import I18nFileResource
+from zope.browserresource.directory import DirectoryResource
 from zope.testing import cleanup
 
 tests_path = os.path.join(
@@ -149,19 +150,17 @@
             ))
 
         r = component.getAdapter(request, name='index.html')
-        self.assertEquals(r.__class__, FileResource)
+        self.assertTrue(isinstance(r, FileResource))
         r = ProxyFactory(r)
         self.assertEqual(r.__name__, "index.html")
 
         # Make sure we can access available attrs and not others
         for n in ('GET', 'HEAD', 'publishTraverse', 'request', '__call__'):
             getattr(r, n)
-        self.assertEqual(r.__name__, "index.html")
 
         self.assertRaises(Exception, getattr, r, '_testData')
 
         r = removeSecurityProxy(r)
-        self.assert_(r.__class__ is FileResource)
         self.assertEqual(r._testData(), open(path, 'rb').read())
 
 
@@ -193,6 +192,42 @@
         r = component.getAdapter(request, name='test.gif')
         self.assertTrue(isinstance(r, ImageResource))
 
+    def testDirectory(self):
+        path = os.path.join(tests_path, 'testfiles', 'subdir')
+
+        self.assertEqual(component.queryAdapter(request, name='dir'), None)
+
+        xmlconfig(StringIO(template %
+            '''
+            <browser:resourceDirectory
+                name="dir"
+                directory="%s"
+                />
+            ''' % path
+            ))
+
+        r = component.getAdapter(request, name='dir')
+        self.assertTrue(isinstance(r, DirectoryResource))
+        r = ProxyFactory(r)
+        self.assertEqual(r.__name__, "dir")
+
+        # Make sure we can access available attrs and not others
+        for n in ('publishTraverse', 'browserDefault', 'request', '__call__',
+                  'get', '__getitem__'):
+            getattr(r, n)
+
+        self.assertRaises(Exception, getattr, r, 'directory_factory')
+
+        inexistent_dir = StringIO(template %
+            '''
+            <browser:resourceDirectory
+                name="dir"
+                directory="does-not-exist"
+                />
+            ''')
+
+        self.assertRaises(ConfigurationError, xmlconfig, inexistent_dir)
+
     def test_SkinResource(self):
         self.assertEqual(component.queryAdapter(request, name='test'), None)
 
@@ -211,7 +246,6 @@
         self.assertEqual(component.queryAdapter(request, name='test'), None)
 
         r = component.getAdapter(TestRequest(skin=ITestSkin), name='test')
-        r = removeSecurityProxy(r)
         self.assertEqual(r._testData(), open(path, 'rb').read())
 
 



More information about the Checkins mailing list