65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
| import py
 | |
| 
 | |
| from py.__.rest.testing.setup import getdata
 | |
| docutils = py.test.importorskip("docutils")
 | |
| from py.__.rest import directive
 | |
| from py.__.misc import rest
 | |
| from py.__.rest.latex import process_rest_file
 | |
| 
 | |
| def setup_module(mod):
 | |
|     mod.datadir = getdata()
 | |
|     mod.testdir = py.test.ensuretemp("rest")
 | |
| 
 | |
| class TestGraphviz(object):
 | |
|     def _graphviz_html(self):
 | |
|         if not py.path.local.sysfind("dot"):
 | |
|             py.test.skip("graphviz needed")
 | |
|         directive.set_backend_and_register_directives("html")
 | |
|         if not py.path.local.sysfind("svn"):
 | |
|             py.test.skip("svn needed")
 | |
|         txt = 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 _graphviz_pdf(self):
 | |
|         for exe in 'dot latex epstopdf ps2eps'.split():
 | |
|             if  not py.path.local.sysfind(exe):
 | |
|                 py.test.skip("%r needed" %(exe,))
 | |
| 
 | |
|         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_graphviz(self):
 | |
|         self._graphviz_html()
 | |
|         self._graphviz_pdf()
 | |
| 
 | |
| 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
 |