import pytest import os from pathlib import Path import resumejson_converter from jinja2.exceptions import TemplateSyntaxError from resumejson_converter.generators.html import generate as generate_html from resumejson_converter.generators.pdf import generate as generate_pdf from resumejson_converter.utils import json as ujson @pytest.fixture(scope="session") def gen_template_html(tmpdir_factory): tmp_file = tmpdir_factory.mktemp( "resumejson_converter_test" ).join("template.html") with open(tmp_file, "w") as f: f.write("

{{ resume.basics.name }}

") return tmp_file @pytest.fixture(scope="session") def gen_incorrect_template_html(tmpdir_factory): tmp_file = tmpdir_factory.mktemp( "resumejson_converter_test" ).join("template.html") with open(tmp_file, "w") as f: f.write("

{{ resume.basics.name }

") return tmp_file @pytest.fixture(scope="session") def gen_dest_path(tmpdir_factory): return tmpdir_factory.mktemp("out").join("out.pdf") def test_generate_pdf(): with pytest.raises(TypeError): generate_html() def test_generate_pdf_generated( gen_template_html, gen_incorrect_template_html): resume_path = "{}/example/resume.json".format( os.path.dirname(resumejson_converter.__file__)) template_path = gen_template_html resume = ujson.load(resume_path) html = generate_html(resume, template_path) generate_pdf(html, gen_incorrect_template_html) assert Path(gen_incorrect_template_html).is_file