Commit 40a4b23c by Chris Jerdonek

The Loader.load_template() method now accepts only a template_name.

parent a6559835
...@@ -12,33 +12,26 @@ class Loader(object): ...@@ -12,33 +12,26 @@ class Loader(object):
template_path = '.' template_path = '.'
def __init__(self, search_dirs=None, template_encoding=None, template_extension=None): def __init__(self, search_dirs=None, encoding=None, extension=None):
""" """
Construct a template loader. Construct a template loader.
""" """
if template_extension is None: if extension is None:
template_extension = 'mustache' extension = 'mustache'
self.search_dirs = search_dirs self.search_dirs = search_dirs
self.template_encoding = template_encoding self.template_encoding = encoding
self.template_extension = template_extension self.template_extension = extension
def load_template(self, template_name, template_dirs=None, encoding=None, extension=None): def load_template(self, template_name):
""" """
Find and load the given template, and return it as a string. Find and load the given template, and return it as a string.
Raises an IOError if the template cannot be found. Raises an IOError if the template cannot be found.
""" """
if template_dirs is None: template_dirs = self.search_dirs or self.template_path
template_dirs = self.search_dirs or self.template_path
if encoding is not None:
self.template_encoding = encoding
if extension is not None:
self.template_extension = extension
file_name = template_name + '.' + self.template_extension file_name = template_name + '.' + self.template_extension
......
...@@ -63,9 +63,9 @@ class View(object): ...@@ -63,9 +63,9 @@ class View(object):
return attr return attr
def load_template(self, template_name): def load_template(self, template_name):
from pystache import Loader loader = Loader(search_dirs=self.template_path, encoding=self.template_encoding,
return Loader().load_template(template_name, self.template_path, extension=self.template_extension)
encoding=self.template_encoding, extension=self.template_extension) return loader.load_template(template_name)
def get_template(self, template_name): def get_template(self, template_name):
""" """
......
...@@ -15,24 +15,24 @@ class LoaderTestCase(unittest.TestCase): ...@@ -15,24 +15,24 @@ class LoaderTestCase(unittest.TestCase):
self.assertTrue(loader.template_encoding is None) self.assertTrue(loader.template_encoding is None)
self.assertEquals(loader.template_extension, 'mustache') self.assertEquals(loader.template_extension, 'mustache')
loader = Loader(search_dirs=['foo'], template_encoding='utf-8', template_extension='txt') loader = Loader(search_dirs=['foo'], encoding='utf-8', extension='txt')
self.assertEquals(loader.search_dirs, ['foo']) self.assertEquals(loader.search_dirs, ['foo'])
self.assertEquals(loader.template_encoding, 'utf-8') self.assertEquals(loader.template_encoding, 'utf-8')
self.assertEquals(loader.template_extension, 'txt') self.assertEquals(loader.template_extension, 'txt')
def test_template_is_loaded(self): def test_template_is_loaded(self):
loader = Loader() loader = Loader(search_dirs='examples')
template = loader.load_template('simple', 'examples') template = loader.load_template('simple')
self.assertEqual(template, 'Hi {{thing}}!{{blank}}') self.assertEqual(template, 'Hi {{thing}}!{{blank}}')
def test_using_list_of_paths(self): def test_using_list_of_paths(self):
loader = Loader() loader = Loader(search_dirs=['doesnt_exist', 'examples'])
template = loader.load_template('simple', ['doesnt_exist', 'examples']) template = loader.load_template('simple')
self.assertEqual(template, 'Hi {{thing}}!{{blank}}') self.assertEqual(template, 'Hi {{thing}}!{{blank}}')
def test_non_existent_template_fails(self): def test_non_existent_template_fails(self):
loader = Loader() loader = Loader()
self.assertRaises(IOError, loader.load_template, 'simple', 'doesnt_exist') self.assertRaises(IOError, loader.load_template, 'doesnt_exist')
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