示例#1
0
 def test_basic(self):
   source = (
       '%div\n'
       '  text\n'
       )
   renderer = Renderer(source)
   html = renderer.render()
   self.assertEqual('<div>text</div>', html)
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
  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_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)
示例#6
0
 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)
示例#7
0
 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)
示例#8
0
 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)
示例#9
0
 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)
示例#10
0
 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)
示例#12
0
 def test_basic(self):
     source = ('%div\n' '  text\n')
     renderer = Renderer(source)
     html = renderer.render()
     self.assertEqual('<div>text</div>', html)
示例#13
0
 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)