changeset 7999:310e19beba3e

fix: report filename if template file is invalid A file name like .#issue.search.html causes a crash because _find returns None not a tuple and unpacking fails. Trap the TypeError and raise ValueError with message that includes the basename of the file.
author John Rouillard <rouilj@ieee.org>
date Sun, 26 May 2024 11:14:10 -0400
parents 851ddd72f9ce
children 683af7c57ce5
files roundup/cgi/engine_chameleon.py roundup/cgi/engine_zopetal.py
diffstat 2 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/roundup/cgi/engine_chameleon.py	Sun May 26 00:33:43 2024 -0400
+++ b/roundup/cgi/engine_chameleon.py	Sun May 26 11:14:10 2024 -0400
@@ -14,7 +14,12 @@
         self.loader = chameleon.PageTemplateLoader(template_dir)
 
     def load(self, tplname):
-        src, filename = self._find(tplname)
+        try:
+            src, filename = self._find(tplname)
+        except TypeError as e:
+            raise ValueError("Unable to load template file basename: %s: %s" % (
+                tplname, e))
+
         return RoundupPageTemplate(self.loader.load(src))
 
 
--- a/roundup/cgi/engine_zopetal.py	Sun May 26 00:33:43 2024 -0400
+++ b/roundup/cgi/engine_zopetal.py	Sun May 26 11:14:10 2024 -0400
@@ -22,7 +22,11 @@
 
     def load(self, tplname):
         # find the source
-        src, filename = self._find(tplname)
+        try:
+            src, filename = self._find(tplname)
+        except TypeError as e:
+            raise ValueError("Unable to load template file basename: %s: %s" % (
+                tplname, e))
 
         # has it changed?
         try:

Roundup Issue Tracker: http://roundup-tracker.org/