summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordonkopotamus <derek.harland@finq.co.nz>2013-12-20 11:15:33 +1300
committerdonkopotamus <derek.harland@finq.co.nz>2013-12-20 11:15:33 +1300
commit1504fc60e4b676aeec2ccc3121d7462bc885545f (patch)
tree8389509ca40296a8ce94eedbfb0072e4fdab03ad
parent62926b5d9c3bb2d5459d8a2c78b700c33530a333 (diff)
downloadmako-1504fc60e4b676aeec2ccc3121d7462bc885545f.tar.gz
Move calculation of normalised uri to the codepath where it is actually used
- this fixes a bug in the mako-render script which refuses to process a filename that is given as a relative path
-rw-r--r--mako/template.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/mako/template.py b/mako/template.py
index 3a7b7f0..bb5d891 100644
--- a/mako/template.py
+++ b/mako/template.py
@@ -255,16 +255,6 @@ class Template(object):
self.module_id = "memory:" + hex(id(self))
self.uri = self.module_id
- u_norm = self.uri
- if u_norm.startswith("/"):
- u_norm = u_norm[1:]
- u_norm = os.path.normpath(u_norm)
- if u_norm.startswith(".."):
- raise exceptions.TemplateLookupException(
- "Template uri \"%s\" is invalid - "
- "it cannot be relative outside "
- "of the root path." % self.uri)
-
self.input_encoding = input_encoding
self.output_encoding = output_encoding
self.encoding_errors = encoding_errors
@@ -310,6 +300,16 @@ class Template(object):
if module_filename is not None:
path = module_filename
elif module_directory is not None:
+ u_norm = self.uri
+ if u_norm.startswith("/"):
+ u_norm = u_norm[1:]
+ u_norm = os.path.normpath(u_norm)
+ if u_norm.startswith(".."):
+ raise exceptions.TemplateLookupException(
+ "Template uri \"%s\" is invalid - "
+ "it cannot be relative outside "
+ "of the root path." % self.uri)
+
path = os.path.abspath(
os.path.join(
os.path.normpath(module_directory),