diff options
author | neodarz <neodarz@neodarz.net> | 2019-08-04 11:54:08 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2019-08-04 11:54:08 +0200 |
commit | 01b15786a8ae02d364ff79011473bde90eb42e76 (patch) | |
tree | b8b3b776d10bc56a992e6a5d407554987f4b66c0 /tests/generators | |
parent | 532e7042a7b6d0f5725778de950745bc7f227df2 (diff) | |
download | resumejson_converter-01b15786a8ae02d364ff79011473bde90eb42e76.tar.xz resumejson_converter-01b15786a8ae02d364ff79011473bde90eb42e76.zip |
Add some tests
Diffstat (limited to 'tests/generators')
-rw-r--r-- | tests/generators/html/test_generate_html.py | 72 | ||||
-rw-r--r-- | tests/generators/pdf/test_generate_pdf.py | 55 |
2 files changed, 127 insertions, 0 deletions
diff --git a/tests/generators/html/test_generate_html.py b/tests/generators/html/test_generate_html.py new file mode 100644 index 0000000..f1ce676 --- /dev/null +++ b/tests/generators/html/test_generate_html.py @@ -0,0 +1,72 @@ +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("<p>{{ resume.basics.name }}</p>") + 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("<p>{{ resume.basics.name }</p>") + 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) == "<p>John Doe</p>" + + +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") diff --git a/tests/generators/pdf/test_generate_pdf.py b/tests/generators/pdf/test_generate_pdf.py new file mode 100644 index 0000000..738508c --- /dev/null +++ b/tests/generators/pdf/test_generate_pdf.py @@ -0,0 +1,55 @@ +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("<p>{{ resume.basics.name }}</p>") + 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("<p>{{ resume.basics.name }</p>") + 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 |