diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py index 2ce63ae6a..3a31fa586 100644 --- a/tests/test_build_latex.py +++ b/tests/test_build_latex.py @@ -23,7 +23,7 @@ from sphinx.config import Config from sphinx.errors import SphinxError from sphinx.testing.util import strip_escseq from sphinx.util import docutils -from sphinx.util.osutil import ensuredir +from sphinx.util.osutil import cd, ensuredir from sphinx.writers.latex import LaTeXTranslator @@ -54,15 +54,16 @@ def kpsetest(*filenames): def compile_latex_document(app, filename='python.tex'): # now, try to run latex over it try: - ensuredir(app.config.latex_engine) - # keep a copy of latex file for this engine in case test fails - copyfile(filename, app.config.latex_engine + '/' + filename) - args = [app.config.latex_engine, - '--halt-on-error', - '--interaction=nonstopmode', - '-output-directory=%s' % app.config.latex_engine, - filename] - subprocess.run(args, stdout=PIPE, stderr=PIPE, cwd=app.outdir, check=True) + with cd(app.outdir): + ensuredir(app.config.latex_engine) + # keep a copy of latex file for this engine in case test fails + copyfile(filename, app.config.latex_engine + '/' + filename) + args = [app.config.latex_engine, + '--halt-on-error', + '--interaction=nonstopmode', + '-output-directory=%s' % app.config.latex_engine, + filename] + subprocess.run(args, stdout=PIPE, stderr=PIPE, check=True) except OSError: # most likely the latex executable was not found raise pytest.skip.Exception except CalledProcessError as exc: