def test_load__template__correct_loader(self): """ Test that reader.unicode() is called correctly. This test tests that the correct reader is called with the correct arguments. This is a catch-all test to supplement the other test cases. It tests SpecLoader.load() independent of reader.unicode() being implemented correctly (and tested). """ class MockLoader(Loader): def __init__(self): self.s = None self.encoding = None # Overrides the existing method. def unicode(self, s, encoding=None): self.s = s self.encoding = encoding return u"foo" loader = MockLoader() custom_loader = SpecLoader() custom_loader.loader = loader view = TemplateSpec() view.template = "template-foo" view.template_encoding = "encoding-foo" # Check that our unicode() above was called. self._assert_template(custom_loader, view, u'foo') self.assertEqual(loader.s, "template-foo") self.assertEqual(loader.encoding, "encoding-foo")
def test_load__template__unicode_non_ascii(self): """ Test the template attribute: non-ascii unicode string. """ custom = TemplateSpec() custom.template = u"é" spec_loader = self._make_specloader() self._assert_template(spec_loader, custom, u"é")
def test_load__template__type_unicode(self): """ Test the template attribute: unicode string. """ custom = TemplateSpec() custom.template = u"abc" spec_loader = self._make_specloader() self._assert_template(spec_loader, custom, u"abc")
def test_load__template__with_template_encoding(self): """ Test the template attribute: with template encoding attribute. """ custom = TemplateSpec() custom.template = u'é'.encode('utf-8') spec_loader = self._make_specloader() self.assertRaises(UnicodeDecodeError, self._assert_template, spec_loader, custom, u'é') custom.template_encoding = 'utf-8' self._assert_template(spec_loader, custom, u'é')
def test_template_path_for_partials(self): """ Test that View.template_rel_path is respected for partials. """ spec = TemplateSpec() spec.template = "Partial: {{>tagless}}" renderer1 = Renderer() renderer2 = Renderer(search_dirs=EXAMPLES_DIR) actual = renderer1.render(spec) self.assertString(actual, u"Partial: ") actual = renderer2.render(spec) self.assertEqual(actual, "Partial: No tags...")