[py-svn] r32467 - py/dist/py/rest
cfbolz at codespeak.net
cfbolz at codespeak.net
Mon Sep 18 21:38:52 CEST 2006
Author: cfbolz
Date: Mon Sep 18 21:38:51 2006
New Revision: 32467
Modified:
py/dist/py/rest/convert.py
py/dist/py/rest/latex.py
Log:
improve error messages somewhat: print errors when a necessary executable is
not found
Modified: py/dist/py/rest/convert.py
==============================================================================
--- py/dist/py/rest/convert.py (original)
+++ py/dist/py/rest/convert.py Mon Sep 18 21:38:51 2006
@@ -1,6 +1,7 @@
import py
from py.__.process.cmdexec import ExecutionFailed
+from py.__.rest.testing.shared_helpers import is_on_path
# utility functions to convert between various formats
format_to_dotargument = {"png": "png",
@@ -11,16 +12,17 @@
def ps2eps(ps):
# XXX write a pure python version
+ if not is_on_path("ps2epsi") and not is_on_path("ps2eps"):
+ raise SystemExit("neither ps2eps nor ps2epsi found")
try:
eps = ps.new(ext=".eps")
- py.process.cmdexec("ps2epsi %s %s" % (ps, eps))
+ py.process.cmdexec("ERROR: ps2epsi %s %s" % (ps, eps))
except ExecutionFailed:
- try:
- py.process.cmdexec("ps2eps -l -f %s" % ps)
- except ExecutionFailed:
- raise OSError("neither ps2eps nor ps2epsi found")
+ py.process.cmdexec("ERROR: ps2eps -l -f %s" % ps)
def ps2pdf(ps, compat_level="1.2"):
+ if not is_on_path("gs"):
+ raise SystemExit("ERROR: gs not found")
pdf = ps.new(ext=".pdf")
options = dict(OPTIONS="-dSAFER -dCompatibilityLevel=%s" % compat_level,
infile=ps, outfile=pdf)
@@ -32,15 +34,21 @@
def eps2pdf(eps):
# XXX write a pure python version
+ if not is_on_path("epstopdf"):
+ raise SystemExit("ERROR: epstopdf not found")
py.process.cmdexec("epstopdf %s" % eps)
def dvi2eps(dvi, dest=None):
if dest is None:
dest = eps.new(ext=".eps")
command = 'dvips -q -E -n 1 -D 600 -p 1 -o %s %s' % (dest, dvi)
+ if not is_on_path("dvips"):
+ raise SystemExit("ERROR: dvips not found")
py.process.cmdexec(command)
def convert_dot(fn, new_extension):
+ if not is_on_path("dot"):
+ raise SystemExit("ERROR: dot not found")
result = fn.new(ext=new_extension)
print result
arg = "-T%s" % (format_to_dotargument[new_extension], )
Modified: py/dist/py/rest/latex.py
==============================================================================
--- py/dist/py/rest/latex.py (original)
+++ py/dist/py/rest/latex.py Mon Sep 18 21:38:51 2006
@@ -1,6 +1,8 @@
import py
from docutils.core import publish_cmdline
+from py.__.process.cmdexec import ExecutionFailed
+from py.__.rest.testing.shared_helpers import is_on_path
font_to_package = {"times": "times", "helvetica": "times",
"new century schoolbock": "newcent", "avant garde": "newcent",
@@ -106,6 +108,8 @@
old.chdir()
def process_rest_file(restfile, stylesheet=None, debug=False, rest_options=None):
+ if not is_on_path("pdflatex"):
+ raise SystemExit("ERROR: pdflatex not found")
old = py.path.local()
f = py.path.local(restfile)
path = f.dirpath()
@@ -127,7 +131,15 @@
publish_cmdline(writer_name='latex', argv=options)
i = 0
while i < 10: # there should never be as many as five reruns, but to be sure
- latexoutput = py.process.cmdexec("pdflatex %s" % (tex, ))
+ try:
+ latexoutput = py.process.cmdexec("pdflatex %s" % (tex, ))
+ except ExecutionFailed, e:
+ print "ERROR: pdflatex execution failed"
+ print "pdflatex stdout:"
+ print e.out
+ print "pdflatex stderr:"
+ print e.err
+ raise SystemExit
if debug:
print latexoutput
if py.std.re.search("LaTeX Warning:.*Rerun", latexoutput) is None:
More information about the pytest-commit
mailing list