diff --git a/pytex/pytex.py b/pytex/pytex.py index d4a8b18..f6e7b3e 100644 --- a/pytex/pytex.py +++ b/pytex/pytex.py @@ -71,7 +71,7 @@ def feed(template, data, output="", force=0): output_dir = output_p.parent if output_dir and not output_dir.exists(): logger.debug(f"Creating output dir {output_dir}") - output_dir.mkdir_p() + output_dir.mkdir(exist_ok=True) with open(output_p, "w") as output_f: output_f.write(tpl.render(**EXPORT_DICT, **data)) diff --git a/pytex/texenv.py b/pytex/texenv.py index 98e792b..a319c72 100644 --- a/pytex/texenv.py +++ b/pytex/texenv.py @@ -24,7 +24,6 @@ texenv = jinja2.Environment( line_statement_prefix='%-', line_comment_prefix='%#', loader=jinja2.ChoiceLoader([ - # jinja2.PackageLoader("notes_tools.reports", "templates"), jinja2.FileSystemLoader(['./']), ]), extensions=['jinja2.ext.do'] diff --git a/tests/test_pytex.py b/tests/test_pytex.py index 449a807..f8e6485 100644 --- a/tests/test_pytex.py +++ b/tests/test_pytex.py @@ -3,42 +3,56 @@ from pytex import feed, pdflatex, clean import os +from shutil import copyfile +from pathlib import Path +import pytest -TESTDIR = "tests" -GOOD_TEMPLATE = TESTDIR + "/tpl_good.tex" -WRONG_TEMPLATE = TESTDIR + "/tpl_wrong.tex" +TESTDIR = Path("tests") +GOOD_TEMPLATE = TESTDIR / "tpl_good.tex" GOOD_DATA = { "name": "Bob", "repetitions": 4, } -def test_feed_once(): - output = feed(GOOD_TEMPLATE, GOOD_DATA) - os.system(f"rm {output}") -def test_feed_twice(): - output1 = feed(GOOD_TEMPLATE, GOOD_DATA) - output2 = feed(GOOD_TEMPLATE, GOOD_DATA) - os.system(f"rm {output1}") - os.system(f"rm {output2}") +@pytest.fixture() +def prepare_templates(tmpdir): + wdir = tmpdir + good_tpl = Path(GOOD_TEMPLATE) + copyfile(good_tpl, wdir / good_tpl.name) + prev_cwd = Path.cwd() + + os.chdir(wdir) + yield wdir + os.chdir(prev_cwd) + + +def test_feed_once(prepare_templates): + output = feed(GOOD_TEMPLATE.name, GOOD_DATA) + + +def test_feed_twice(prepare_templates): + output1 = feed(GOOD_TEMPLATE.name, GOOD_DATA) + output2 = feed(GOOD_TEMPLATE.name, GOOD_DATA) + + +def test_feed_output(prepare_templates): + dest = "./tests/special_name.tex" + output = feed(GOOD_TEMPLATE.name, GOOD_DATA, dest) + assert output.samefile(dest) -def test_feed_output(): - dest = "./tests/special_name.tex" - output = feed(GOOD_TEMPLATE, GOOD_DATA, dest) - assert(output.samefile(dest)) - os.system(f"rm {output}") def test_feed_output_noforce(): pass # output = feed(GOOD_TEMPLATE, GOOD_DATA, ) # os.system(f"rm {output}") -def test_feed_pdflatex(): - latex_file = feed(GOOD_TEMPLATE, GOOD_DATA) + +def test_feed_pdflatex(prepare_templates): + latex_file = feed(GOOD_TEMPLATE.name, GOOD_DATA) pdflatex(latex_file) - os.system(f"rm {latex_file}") - clean(TESTDIR, ["*.aux", "*.log", "*.pdf"]) + clean(garbages=["*.aux", "*.log", "*.pdf"]) # -----------------------------