import pytest import os import resumejson_converter from jinja2.exceptions import TemplateSyntaxError from resumejson_converter.generators.html import generate as generate_html 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 def test_generate_html(): with pytest.raises(TypeError): generate_html() def test_generate_html_one_parameters(): with pytest.raises(TypeError): generate_html("resume") def test_generate_html(gen_template_html): resume_path = "{}/example/resume.json".format( os.path.dirname(resumejson_converter.__file__)) template_path = gen_template_html resume = ujson.load(resume_path) assert generate_html(resume, template_path) == "John Doe
" def test_generate_html_incorect_path(): with pytest.raises(IOError): generate_html("resume", "/tmp/template") def test_generate_html_incorrect_template(gen_incorrect_template_html): resume_path = "{}/example/resume.json".format( os.path.dirname(resumejson_converter.__file__)) template_path = gen_incorrect_template_html resume = ujson.load(resume_path) with pytest.raises(TemplateSyntaxError): generate_html(resume, template_path) def test_generate_html_out_path_without_right(gen_template_html): resume_path = "{}/example/resume.json".format( os.path.dirname(resumejson_converter.__file__)) template_path = gen_template_html resume = ujson.load(resume_path) with pytest.raises(IOError): generate_html(resume, template_path, "/my_cv.html")