def test_unicode__decode_errors(self): """ Test that the decode_errors attribute is respected. """ renderer = Renderer() renderer.default_encoding = "ascii" s = "déf" renderer.decode_errors = "ignore" self.assertEquals(renderer.unicode(s), "df") renderer.decode_errors = "replace" # U+FFFD is the official Unicode replacement character. self.assertEquals(renderer.unicode(s), u'd\ufffd\ufffdf')
def test_read__decode_errors(self): filename = 'nonascii.mustache' renderer = Renderer() self.assertRaises(UnicodeDecodeError, self._read, renderer, filename) renderer.decode_errors = 'ignore' actual = self._read(renderer, filename) self.assertEquals(actual, 'non-ascii: ')
def test_render__nonascii_template(self): """ Test passing a non-unicode template with non-ascii characters. """ renderer = Renderer() template = "déf" # Check that decode_errors and default_encoding are both respected. renderer.decode_errors = 'ignore' renderer.default_encoding = 'ascii' self.assertEquals(renderer.render(template), "df") renderer.default_encoding = 'utf_8' self.assertEquals(renderer.render(template), u"déf")