def test_basic(self): source = ( '%div\n' ' text\n' ) renderer = Renderer(source) html = renderer.render() self.assertEqual('<div>text</div>', html)
def test_with_newlines_indentation_and_condensing(self): source = ('%-div\n' ' %p text\n' ' text2\n') renderer = Renderer(source, newline_string='\n', indent_string=' ') html = renderer.render() self.assertEqual(('<div><p>\n' ' text\n' ' </p>\n' ' text2</div>'), html)
def test_with_newlines(self): source = ('%div\n' ' %p text\n' ' text2\n') renderer = Renderer(source, newline_string='\n') html = renderer.render() self.assertEqual(('<div>\n' '<p>\n' 'text\n' '</p>\n' 'text2\n' '</div>'), html)
def test_full_example(self): with open('tests/full_example.haml', 'r') as source_haml: renderer = Renderer(source_haml.read(), '\n', ' ') rendered_html = renderer.render() with open('tests/full_example.html', 'r') as expected_html: expected_html = expected_html.read().strip() self.maxDiff = None self.assertMultiLineEqual(expected_html, rendered_html)
def test_with_preformatted(self): source = ( '%pre\n' ' |line1\n' ' |line2\n' ) renderer = Renderer(source, newline_string='\n', indent_string=' ') html = renderer.render() self.assertEqual(( '<pre>' 'line1\n' 'line2\n' '</pre>'), html)
def test_with_newlines_indentation_and_condensing(self): source = ( '%-div\n' ' %p text\n' ' text2\n' ) renderer = Renderer(source, newline_string='\n', indent_string=' ') html = renderer.render() self.assertEqual(( '<div><p>\n' ' text\n' ' </p>\n' ' text2</div>' ), html)
def test_with_newlines(self): source = ( '%div\n' ' %p text\n' ' text2\n' ) renderer = Renderer(source, newline_string='\n') html = renderer.render() self.assertEqual(( '<div>\n' '<p>\n' 'text\n' '</p>\n' 'text2\n' '</div>' ), html)
def test_with_hyperlink_condensed(self): source = ('%-div\n' ' %p text\n' ' text2\n' ' %-a(href="#") link\n' ' %div content') renderer = Renderer(source, newline_string='\n', indent_string=' ') html = renderer.render() self.assertEqual(('<div><p>\n' ' text\n' ' </p>\n' ' text2\n' ' <a href="#">link</a>\n' ' <div>\n' ' content\n' ' </div></div>'), html)
def test_with_hyperlink_condensed(self): source = ( '%-div\n' ' %p text\n' ' text2\n' ' %-a(href="#") link\n' ' %div content' ) renderer = Renderer(source, newline_string='\n', indent_string=' ') html = renderer.render() self.assertEqual(( '<div><p>\n' ' text\n' ' </p>\n' ' text2\n' ' <a href="#">link</a>\n' ' <div>\n' ' content\n' ' </div></div>' ), html)
def preprocess(self, source, name, filename=None): """Preprocesses the template from HAML to Jinja-style HTML.""" if (not name or os.path.splitext(name)[1] not in self.environment.haml_file_extensions): return source try: renderer = Renderer( source, indent_string=self.environment.haml_indent_string, newline_string=self.environment.haml_newline_string) except TemplateSyntaxError, e: raise TemplateSyntaxError(e.message, e.lineno, name=name, filename=filename)
def test_basic(self): source = ('%div\n' ' text\n') renderer = Renderer(source) html = renderer.render() self.assertEqual('<div>text</div>', html)
def test_with_preformatted(self): source = ('%pre\n' ' |line1\n' ' |line2\n') renderer = Renderer(source, newline_string='\n', indent_string=' ') html = renderer.render() self.assertEqual(('<pre>' 'line1\n' 'line2\n' '</pre>'), html)