Commit 5f1c034d by Chris Jerdonek

Added View.load_template() to eliminate some cut-and-paste.

 * Template._render_partial() now calls View.load_template().

 * View.get_template() now calls View.load_template().

 * Added test case test_view.py to test View.load_template().

 * Removed trailing white space from view.py.

 * Removed trailing white space from test_view.py.
parent d8067382
...@@ -159,8 +159,7 @@ class Template(object): ...@@ -159,8 +159,7 @@ class Template(object):
@modifiers.set('>') @modifiers.set('>')
def _render_partial(self, template_name): def _render_partial(self, template_name):
from pystache import Loader markup = self.view.load_template(template_name)
markup = Loader().load_template(template_name, self.view.template_path, encoding=self.view.template_encoding, extension=self.view.template_extension)
template = Template(markup, self.view) template = Template(markup, self.view)
return template.render() return template.render()
......
...@@ -41,11 +41,15 @@ class View(object): ...@@ -41,11 +41,15 @@ class View(object):
else: else:
return attr return attr
def load_template(self, template_name):
from pystache import Loader
return Loader().load_template(template_name, self.template_path,
encoding=self.template_encoding, extension=self.template_extension)
def get_template(self, template_name): def get_template(self, template_name):
if not self.template: if not self.template:
from pystache import Loader
template_name = self._get_template_name(template_name) template_name = self._get_template_name(template_name)
self.template = Loader().load_template(template_name, self.template_path, encoding=self.template_encoding, extension=self.template_extension) self.template = self.load_template(template_name)
return self.template return self.template
......
...@@ -22,6 +22,14 @@ class TestView(unittest.TestCase): ...@@ -22,6 +22,14 @@ class TestView(unittest.TestCase):
view = Simple(thing='world') view = Simple(thing='world')
self.assertEquals(view.render(), "Hi world!") self.assertEquals(view.render(), "Hi world!")
def test_load_template(self):
"""
Test View.load_template().
"""
template = Simple().load_template("escaped")
self.assertEquals(template, "<h1>{{title}}</h1>")
def test_template_load_from_multiple_path(self): def test_template_load_from_multiple_path(self):
path = Simple.template_path path = Simple.template_path
Simple.template_path = ('examples/nowhere','examples',) Simple.template_path = ('examples/nowhere','examples',)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment