40 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
| import py
 | |
| from py.__.rest.rst import *
 | |
| from py.__.rest.transform import *
 | |
| 
 | |
| def convert_to_html(tree):
 | |
|     handler = HTMLHandler()
 | |
|     t = RestTransformer(tree)
 | |
|     t.parse(handler)
 | |
|     return handler.html
 | |
| 
 | |
| class HTMLHandler(py.__.rest.transform.HTMLHandler):
 | |
|     def startDocument(self):
 | |
|         pass
 | |
|     endDocument = startDocument
 | |
| 
 | |
| def test_transform_basic_html():
 | |
|     for rest, expected in ((Rest(Title('foo')), '<h1>foo</h1>'),
 | |
|                            (Rest(Paragraph('foo')), '<p>foo</p>'),
 | |
|                            (Rest(SubParagraph('foo')),
 | |
|                             '<p class="sub">foo</p>'),
 | |
|                            (Rest(LiteralBlock('foo\tbar')),
 | |
|                             '<pre>foo\tbar</pre>'),
 | |
|                            (Rest(Paragraph(Link('foo',
 | |
|                                                 'http://www.foo.com/'))),
 | |
|                             '<p><a href="http://www.foo.com/">foo</a></p>')):
 | |
|         html = convert_to_html(rest)
 | |
|         assert html == expected
 | |
| 
 | |
| def test_transform_list_simple():
 | |
|     rest = Rest(ListItem('foo'), ListItem('bar'))
 | |
|     html = convert_to_html(rest)
 | |
|     assert html == '<ul>\n  <li>foo</li>\n  <li>bar</li></ul>'
 | |
| 
 | |
| def test_transform_list_nested():
 | |
|     rest = Rest(ListItem('foo'), ListItem('bar', ListItem('baz')))
 | |
|     html = convert_to_html(rest)
 | |
|     assert html == ('<ul>\n  <li>foo</li>\n  <li>bar\n    <ul>'
 | |
|                     '\n      <li>baz</li></ul></li></ul>')
 | |
| 
 |