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
|