sources for test_directive.py [rev. 38799]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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")
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):
        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_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