61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
| import py
 | |
| try:
 | |
|     import docutils
 | |
| except ImportError:
 | |
|     py.test.skip("docutils not present")
 | |
| 
 | |
| from py.__.rest import directive
 | |
| from py.__.misc import rest
 | |
| from py.__.rest.latex import process_rest_file
 | |
| 
 | |
| datadir = py.magic.autopath().dirpath().join("data")
 | |
| testdir = py.test.ensuretemp("rest")
 | |
| 
 | |
| def test_graphviz_html():
 | |
|     if not py.path.local.sysfind("dot"):
 | |
|         py.test.skip("graphviz needed")
 | |
|     directive.set_backend_and_register_directives("html")
 | |
|     #for reasons that elude me rest.process expects svnwcs???
 | |
|     if not py.path.local.sysfind("svn"):
 | |
|         py.test.skip("svn needed")
 | |
|     txt = py.path.svnwc(datadir.join("graphviz.txt"))
 | |
|     html = txt.new(ext="html")
 | |
|     png = datadir.join("example1.png")
 | |
|     rest.process(txt)
 | |
|     assert html.check()
 | |
|     assert png.check()
 | |
|     html_content = html.read()
 | |
|     assert png.basename in html_content
 | |
|     html.remove()
 | |
|     png.remove()
 | |
| 
 | |
| def test_graphviz_pdf():
 | |
|     if not py.path.local.sysfind("dot") or not py.path.local.sysfind("latex"):
 | |
|         py.test.skip("graphviz and latex needed")
 | |
| 
 | |
|     directive.set_backend_and_register_directives("latex")
 | |
|     txt = py.path.local(datadir.join("graphviz.txt"))
 | |
|     pdf = txt.new(ext="pdf")
 | |
|     dotpdf = datadir.join("example1.pdf")
 | |
|     process_rest_file(txt)
 | |
|     assert pdf.check()
 | |
|     assert dotpdf.check()
 | |
|     pdf.remove()
 | |
|     dotpdf.remove()
 | |
| 
 | |
| def test_own_links():
 | |
|     def callback(name, text):
 | |
|         assert name == "foo"
 | |
|         return "bar xyz", "http://codespeak.net/noclue"
 | |
|     directive.register_linkrole("foo", callback)
 | |
|     txt = testdir.join("link-role.txt")
 | |
|     txt.write("""
 | |
| :foo:`whatever`
 | |
| """)
 | |
|     html = txt.new(ext="html")
 | |
|     rest.process(txt)
 | |
|     assert html.check()
 | |
|     htmlcontent = html.read()
 | |
|     assert "http://codespeak.net/noclue" in htmlcontent
 | |
|     assert "bar xyz" in htmlcontent
 |