[Checkins] SVN: z3c.pt/trunk/src/z3c/pt/ Fix errno NameError in TemplateLoader when a bad path is passed; test.

Chris McDonough chrism at plope.com
Fri Aug 8 12:17:53 EDT 2008


Log message for revision 89548:
  Fix errno NameError in TemplateLoader when a bad path is passed; test.
  

Changed:
  U   z3c.pt/trunk/src/z3c/pt/loader.py
  A   z3c.pt/trunk/src/z3c/pt/tests/test_loader.py

-=-
Modified: z3c.pt/trunk/src/z3c/pt/loader.py
===================================================================
--- z3c.pt/trunk/src/z3c/pt/loader.py	2008-08-08 15:44:43 UTC (rev 89547)
+++ z3c.pt/trunk/src/z3c/pt/loader.py	2008-08-08 16:17:53 UTC (rev 89548)
@@ -8,7 +8,11 @@
     """
 
     def __init__(self, search_path=None, auto_reload=False, cachedir=None):
-        self.search_path = search_path is not None and search_path or []
+        if search_path is None:
+            search_path = []
+        if isinstance(search_path, basestring):
+            search_path = [search_path]
+        self.search_path = search_path
         self.auto_reload = auto_reload
         self.cachedir = cachedir
         if cachedir is not None:
@@ -26,7 +30,7 @@
                 return klass(path, auto_reload=self.auto_reload,
                                 cachedir=self.cachedir)
             except OSError, e:
-                if e.errno!=erro.ENOENT:
+                if e.errno != errno.ENOENT:
                     raise
 
         raise ValueError("Can not find template %s" % filename)

Added: z3c.pt/trunk/src/z3c/pt/tests/test_loader.py
===================================================================
--- z3c.pt/trunk/src/z3c/pt/tests/test_loader.py	                        (rev 0)
+++ z3c.pt/trunk/src/z3c/pt/tests/test_loader.py	2008-08-08 16:17:53 UTC (rev 89548)
@@ -0,0 +1,45 @@
+import unittest
+
+class LoadTests:
+    def _makeOne(self, search_path=None, auto_reload=False, cachedir=None):
+        klass = self._getTargetClass()
+        return klass(search_path, auto_reload, cachedir)
+
+    def _getTargetClass(self):
+        from z3c.pt.loader import TemplateLoader
+        return TemplateLoader
+
+    def test_load_relative(self):
+        import os
+        here = os.path.dirname(__file__)
+        loader = self._makeOne(search_path = [here])
+        
+        result = self._load(loader, 'view.pt')
+        self.assertEqual(result.filename, os.path.join(here, 'view.pt'))
+
+    def test_load_relative_badpath_in_searchpath(self):
+        import os
+        here = os.path.dirname(__file__)
+        loader = self._makeOne(search_path = [os.path.join(here, 'none'), here])
+        result = self._load(loader, 'view.pt')
+        self.assertEqual(result.filename, os.path.join(here, 'view.pt'))
+
+    def test_load_abs(self):
+        import os
+        here = os.path.dirname(__file__)
+        loader = self._makeOne()
+        abs = os.path.join(here, 'view.pt')
+        result = self._load(loader, abs)
+        self.assertEqual(result.filename, abs)
+
+class LoadPageTests(unittest.TestCase, LoadTests):
+    def _load(self, loader, filename):
+        return loader.load_page(filename)
+
+class LoadTextTests(unittest.TestCase, LoadTests):
+    def _load(self, loader, filename):
+        return loader.load_text(filename)
+    
+def test_suite():
+    import sys
+    return unittest.findTestCases(sys.modules[__name__])


Property changes on: z3c.pt/trunk/src/z3c/pt/tests/test_loader.py
___________________________________________________________________
Name: svn:eol-style
   + native



More information about the Checkins mailing list