diff options
author | Chris Jerdonek <chris.jerdonek@gmail.com> | 2012-03-22 07:57:43 -0700 |
---|---|---|
committer | Chris Jerdonek <chris.jerdonek@gmail.com> | 2012-03-22 07:57:43 -0700 |
commit | 70b597e803d3e59ec5dc606665800ee180b32140 (patch) | |
tree | 54d2e604ad0cbdf664ab3155d2ef786b487287ae | |
parent | 08b5173cf445e373426cc98e247251515dfee912 (diff) | |
download | pystache-70b597e803d3e59ec5dc606665800ee180b32140.tar.gz |
Changed CustomizedTemplate attributes and added custom_template.Loader tests.
Added CustomizedTemplate.template_rel_path and renamed CustomizedTemplate.template_directory
to CustomizedTemplate.template_rel_directory. Added unit tests to test
the custom_template.Loader constructor.
-rw-r--r-- | pystache/custom_template.py | 17 | ||||
-rw-r--r-- | tests/test_custom_template.py | 63 |
2 files changed, 52 insertions, 28 deletions
diff --git a/pystache/custom_template.py b/pystache/custom_template.py index ce594fb..0b30470 100644 --- a/pystache/custom_template.py +++ b/pystache/custom_template.py @@ -29,10 +29,10 @@ class CustomizedTemplate(object): template: the template to use, as a unicode string. - template_path: the path to the template file, relative to the + template_rel_path: the path to the template file, relative to the directory containing the module defining the class. - template_dir: the directory containing the template file, relative + template_rel_directory: the directory containing the template file, relative to the directory containing the module defining the class. template_extension: the template file extension. Defaults to "mustache". @@ -41,12 +41,12 @@ class CustomizedTemplate(object): """ template = None + # TODO: remove template_path. template_path = None - - template_directory = None + template_rel_path = None + template_rel_directory = None template_name = None template_extension = None - template_encoding = None @@ -126,7 +126,6 @@ class Loader(object): """ - # TODO: unit test this. def __init__(self, search_dirs, template_locator=None, reader=None): if reader is None: reader = Reader() @@ -143,10 +142,10 @@ class Loader(object): Return the relative template path as a (dir, file_name) pair. """ - if view.template_path is not None: - return os.path.split(view.template_path) + if view.template_rel_path is not None: + return os.path.split(view.template_rel_path) - template_dir = view.template_directory + template_dir = view.template_rel_directory # Otherwise, we don't know the directory. diff --git a/tests/test_custom_template.py b/tests/test_custom_template.py index 5db4c79..a159fcd 100644 --- a/tests/test_custom_template.py +++ b/tests/test_custom_template.py @@ -6,6 +6,7 @@ Unit tests of view.py. """ import os.path +import sys import unittest from examples.simple import Simple @@ -14,8 +15,9 @@ from examples.lambdas import Lambdas from examples.inverted import Inverted, InvertedLists from pystache import Renderer from pystache import View -from pystache.reader import Reader from pystache.custom_template import Loader +from pystache.locator import Locator +from pystache.reader import Reader from .common import AssertIsMixin from .common import DATA_DIR from .data.views import SampleView @@ -56,7 +58,7 @@ class ViewTestCase(unittest.TestCase): def test_template_path_for_partials(self): """ - Test that View.template_path is respected for partials. + Test that View.template_rel_path is respected for partials. """ class TestView(View): @@ -139,18 +141,41 @@ class LoaderTests(unittest.TestCase, AssertIsMixin): locator = Loader(search_dirs=[DATA_DIR]) return locator - # TODO: fully test constructor. - def test_init__reader(self): - reader = "reader" # in practice, this is a reader instance. - locator = Loader(search_dirs=None, template_locator=None, reader=reader) - - self.assertIs(locator.reader, reader) - def _assert_template_location(self, view, expected): locator = self._make_locator() actual = locator.get_relative_template_location(view) self.assertEquals(actual, expected) + def test_init__defaults(self): + loader = Loader([]) + + # Check the reader attribute. + reader = loader.reader + self.assertEquals(reader.decode_errors, 'strict') + self.assertEquals(reader.encoding, sys.getdefaultencoding()) + + # Check the template_locator attribute. + locator = loader.template_locator + self.assertEquals(locator.template_extension, 'mustache') + + def test_init__search_dirs(self): + search_dirs = ['a', 'b'] + loader = Loader(search_dirs) + + self.assertEquals(loader.search_dirs, ['a', 'b']) + + def test_init__reader(self): + reader = Reader() + loader = Loader([], reader=reader) + + self.assertIs(loader.reader, reader) + + def test_init__locator(self): + locator = Locator() + loader = Loader([], template_locator=locator) + + self.assertIs(loader.template_locator, locator) + def test_get_relative_template_location(self): """ Test get_relative_template_location(): default behavior (no attributes set). @@ -159,31 +184,31 @@ class LoaderTests(unittest.TestCase, AssertIsMixin): view = SampleView() self._assert_template_location(view, (None, 'sample_view.mustache')) - def test_get_relative_template_location__template_path__file_name_only(self): + def test_get_relative_template_location__template_rel_path__file_name_only(self): """ - Test get_relative_template_location(): template_path attribute. + Test get_relative_template_location(): template_rel_path attribute. """ view = SampleView() - view.template_path = 'template.txt' + view.template_rel_path = 'template.txt' self._assert_template_location(view, ('', 'template.txt')) - def test_get_relative_template_location__template_path__file_name_with_directory(self): + def test_get_relative_template_location__template_rel_path__file_name_with_directory(self): """ - Test get_relative_template_location(): template_path attribute. + Test get_relative_template_location(): template_rel_path attribute. """ view = SampleView() - view.template_path = 'foo/bar/template.txt' + view.template_rel_path = 'foo/bar/template.txt' self._assert_template_location(view, ('foo/bar', 'template.txt')) - def test_get_relative_template_location__template_directory(self): + def test_get_relative_template_location__template_rel_directory(self): """ - Test get_relative_template_location(): template_directory attribute. + Test get_relative_template_location(): template_rel_directory attribute. """ view = SampleView() - view.template_directory = 'foo' + view.template_rel_directory = 'foo' self._assert_template_location(view, ('foo', 'sample_view.mustache')) @@ -213,7 +238,7 @@ class LoaderTests(unittest.TestCase, AssertIsMixin): locator = self._make_locator() view = SampleView() - view.template_path = 'foo/bar.txt' + view.template_rel_path = 'foo/bar.txt' self.assertTrue(locator.get_relative_template_location(view)[0] is not None) actual = locator.get_template_path(view) |