57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
from __future__ import generators
 | 
						|
 | 
						|
import py
 | 
						|
from py.__.rest.latex import process_configfile, process_rest_file
 | 
						|
try:
 | 
						|
    import docutils
 | 
						|
except ImportError:
 | 
						|
    py.test.skip("docutils not present")
 | 
						|
 | 
						|
 | 
						|
def setup_module(mod):
 | 
						|
    if not py.path.local.sysfind("gs") or \
 | 
						|
           not py.path.local.sysfind("dot") or \
 | 
						|
           not py.path.local.sysfind("latex"):
 | 
						|
        py.test.skip("ghostscript, graphviz and latex needed")
 | 
						|
    mod.data = py.magic.autopath().dirpath().join("data")
 | 
						|
 | 
						|
class TestRst2Pdf(object):
 | 
						|
    def _process_rest_file(self):
 | 
						|
        data = py.magic.autopath().dirpath().join("data")
 | 
						|
        part2 = data.join("part1.txt")
 | 
						|
        pdf = part2.new(ext="pdf")
 | 
						|
        process_rest_file(part2)
 | 
						|
        assert pdf.check()
 | 
						|
        pdf.remove()
 | 
						|
 | 
						|
    def _process_configfile(self):
 | 
						|
        data = py.magic.autopath().dirpath().join("data")
 | 
						|
        config = data.join("example.rst2pdfconfig")
 | 
						|
        pdf = config.new(ext="pdf")
 | 
						|
        tex = data.join('example.tex')
 | 
						|
        process_configfile(config, debug=True)
 | 
						|
        assert pdf.check()
 | 
						|
        assert tex.check()
 | 
						|
        texcontent = tex.read()
 | 
						|
        assert "Generated by" in texcontent
 | 
						|
        assert "Docutils" in texcontent
 | 
						|
        process_configfile(config, debug=False)
 | 
						|
        assert pdf.check()
 | 
						|
        assert not tex.check()
 | 
						|
        pdf.remove()
 | 
						|
 | 
						|
    def _process_all(self):
 | 
						|
        # fallback test: only checks that no exception is raised
 | 
						|
        def rec(p):
 | 
						|
            return p.check(dotfile=0)
 | 
						|
 | 
						|
        for x in data.visit("*.rst2pdfconfig", rec=rec):
 | 
						|
            process_configfile(x)
 | 
						|
        for x in data.visit("*.txt", rec=rec):
 | 
						|
            process_rest_file(x)
 | 
						|
 | 
						|
    def test_rst2pdf(self):
 | 
						|
        self._process_rest_file()
 | 
						|
        self._process_configfile()
 | 
						|
        self._process_all()
 |