mirror of https://github.com/eyhc1/rendercv.git
tests: add new tests
This commit is contained in:
parent
c1767b7bf6
commit
6096b67679
|
@ -1,3 +1,4 @@
|
||||||
|
import copy
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
|
@ -169,33 +170,260 @@ def test_live_progress_reporter_class():
|
||||||
progress.finish_the_current_step()
|
progress.finish_the_current_step()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"folder_name",
|
||||||
|
["markdown"] + dm.available_themes,
|
||||||
|
)
|
||||||
|
def test_copy_templates(tmp_path, folder_name):
|
||||||
|
copied_path = cli.copy_templates(
|
||||||
|
folder_name=folder_name,
|
||||||
|
copy_to=tmp_path,
|
||||||
|
)
|
||||||
|
assert copied_path.exists()
|
||||||
|
|
||||||
|
|
||||||
runner = typer.testing.CliRunner()
|
runner = typer.testing.CliRunner()
|
||||||
|
|
||||||
|
|
||||||
@time_machine.travel("2024-01-01")
|
|
||||||
def test_render_command(tmp_path, input_file_path):
|
def test_render_command(tmp_path, input_file_path):
|
||||||
# copy input file to the temporary directory to create the output directory there:
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
input_file_path = shutil.copy(input_file_path, tmp_path)
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
|
||||||
result = runner.invoke(cli.app, ["render", str(input_file_path)])
|
result = runner.invoke(cli.app, ["render", str(input_file_path)])
|
||||||
|
|
||||||
assert result.exit_code == 0
|
output_folder_path = tmp_path / "rendercv_output"
|
||||||
|
pdf_file_path = output_folder_path / "John_Doe_CV.pdf"
|
||||||
|
latex_file_path = output_folder_path / "John_Doe_CV.tex"
|
||||||
|
markdown_file_path = output_folder_path / "John_Doe_CV.md"
|
||||||
|
html_file_path = output_folder_path / "John_Doe_CV_PASTETOGRAMMARLY.html"
|
||||||
|
png_file_path = output_folder_path / "John_Doe_CV_1.png"
|
||||||
|
|
||||||
|
assert output_folder_path.exists()
|
||||||
|
assert pdf_file_path.exists()
|
||||||
|
assert latex_file_path.exists()
|
||||||
|
assert markdown_file_path.exists()
|
||||||
|
assert html_file_path.exists()
|
||||||
|
assert png_file_path.exists()
|
||||||
assert "Your CV is rendered!" in result.stdout
|
assert "Your CV is rendered!" in result.stdout
|
||||||
|
|
||||||
|
|
||||||
def test_render_command_with_use_local_latex_option(tmp_path, input_file_path):
|
def test_render_command_with_different_output_path(tmp_path, input_file_path):
|
||||||
# copy input file to the temporary directory to create the output directory there:
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
input_file_path = shutil.copy(input_file_path, tmp_path)
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
|
||||||
|
output_folder_path = tmp_path / "test"
|
||||||
|
|
||||||
|
result = runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--output-folder-name",
|
||||||
|
"test",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result.exit_code == 0
|
||||||
|
assert output_folder_path.exists()
|
||||||
|
assert "Your CV is rendered!" in result.stdout
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_custom_latex_path(tmp_path, input_file_path):
|
||||||
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
|
||||||
|
latex_file_path = tmp_path / "test.tex"
|
||||||
|
|
||||||
runner.invoke(
|
runner.invoke(
|
||||||
cli.app,
|
cli.app,
|
||||||
["render", str(input_file_path), "--use-local-latex-command", "pdflatex"],
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--latex-path",
|
||||||
|
str(latex_file_path),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
assert latex_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_custom_pdf_path(tmp_path, input_file_path):
|
||||||
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
|
||||||
|
pdf_file_path = tmp_path / "test.pdf"
|
||||||
|
|
||||||
|
runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--pdf-path",
|
||||||
|
str(pdf_file_path),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assert pdf_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_custom_markdown_path(tmp_path, input_file_path):
|
||||||
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
|
||||||
|
markdown_file_path = tmp_path / "test.md"
|
||||||
|
|
||||||
|
runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--markdown-path",
|
||||||
|
str(markdown_file_path),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assert markdown_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_custom_html_path(tmp_path, input_file_path):
|
||||||
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
|
||||||
|
html_file_path = tmp_path / "test.html"
|
||||||
|
|
||||||
|
runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--html-path",
|
||||||
|
str(html_file_path),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assert html_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_custom_png_path(tmp_path, input_file_path):
|
||||||
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
|
||||||
|
png_file_path = tmp_path / "test.png"
|
||||||
|
|
||||||
|
runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--png-path",
|
||||||
|
str(png_file_path),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assert png_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_custom_png_path_multiple_pages(tmp_path):
|
||||||
|
# create a new input file (for a CV with multiple pages) in the temporary directory:
|
||||||
|
os.chdir(tmp_path)
|
||||||
|
runner.invoke(cli.app, ["new", "John Doe"])
|
||||||
|
input_file_path = tmp_path / "John_Doe_CV.yaml"
|
||||||
|
|
||||||
|
png_file_path = tmp_path / "test.png"
|
||||||
|
runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--png-path",
|
||||||
|
str(png_file_path),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
png_page1_file_path = tmp_path / "test_1.png"
|
||||||
|
png_page2_file_path = tmp_path / "test_2.png"
|
||||||
|
|
||||||
|
assert png_page1_file_path.exists()
|
||||||
|
assert png_page2_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_dont_generate_markdown(tmp_path, input_file_path):
|
||||||
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
markdown_file_path = tmp_path / "rendercv_output" / "John_Doe_CV.md"
|
||||||
|
runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--dont-generate-markdown",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assert not markdown_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_dont_generate_html(tmp_path, input_file_path):
|
||||||
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
html_file_path = tmp_path / "rendercv_output" / "John_Doe_CV_PASTETOGRAMMARLY.html"
|
||||||
|
runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--dont-generate-html",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assert not html_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_render_command_with_dont_generate_png(tmp_path, input_file_path):
|
||||||
|
# copy input file to the temporary directory to create the output directory there:
|
||||||
|
input_file_path = shutil.copy(input_file_path, tmp_path)
|
||||||
|
png_file_path = tmp_path / "rendercv_output" / "John_Doe_CV_1.png"
|
||||||
|
runner.invoke(
|
||||||
|
cli.app,
|
||||||
|
[
|
||||||
|
"render",
|
||||||
|
str(input_file_path),
|
||||||
|
"--dont-generate-png",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
assert not png_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
def test_new_command(tmp_path):
|
def test_new_command(tmp_path):
|
||||||
# change the current working directory to the temporary directory:
|
# change the current working directory to the temporary directory:
|
||||||
os.chdir(tmp_path)
|
os.chdir(tmp_path)
|
||||||
result = runner.invoke(cli.app, ["new", "John Doe"])
|
runner.invoke(cli.app, ["new", "John Doe"])
|
||||||
assert result.exit_code == 0
|
|
||||||
assert "Your RenderCV input file has been created" in result.stdout
|
markdown_source_files_path = tmp_path / "markdown"
|
||||||
|
theme_source_files_path = tmp_path / "classic"
|
||||||
|
input_file_path = tmp_path / "John_Doe_CV.yaml"
|
||||||
|
|
||||||
|
assert markdown_source_files_path.exists()
|
||||||
|
assert theme_source_files_path.exists()
|
||||||
|
assert input_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_new_command_with_dont_create_theme_source_files(tmp_path):
|
||||||
|
# change the current working directory to the temporary directory:
|
||||||
|
os.chdir(tmp_path)
|
||||||
|
runner.invoke(cli.app, ["new", "John Doe", "--dont-create-theme-source-files"])
|
||||||
|
|
||||||
|
theme_source_files_path = tmp_path / "classic"
|
||||||
|
|
||||||
|
assert not theme_source_files_path.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_new_command_with_dont_create_markdown_source_files(tmp_path):
|
||||||
|
# change the current working directory to the temporary directory:
|
||||||
|
os.chdir(tmp_path)
|
||||||
|
runner.invoke(cli.app, ["new", "John Doe", "--dont-create-markdown-source-files"])
|
||||||
|
|
||||||
|
markdown_source_files_path = tmp_path / "markdown"
|
||||||
|
|
||||||
|
assert not markdown_source_files_path.exists()
|
||||||
|
|
|
@ -380,6 +380,17 @@ def test_generate_markdown_file(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_if_generate_markdown_file_can_create_a_new_directory(
|
||||||
|
tmp_path, rendercv_data_model
|
||||||
|
):
|
||||||
|
new_directory = tmp_path / "new_directory"
|
||||||
|
new_directory.mkdir()
|
||||||
|
|
||||||
|
latex_file_path = r.generate_markdown_file(rendercv_data_model, new_directory)
|
||||||
|
|
||||||
|
assert latex_file_path.exists()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"theme_name",
|
"theme_name",
|
||||||
dm.available_themes,
|
dm.available_themes,
|
||||||
|
|
Loading…
Reference in New Issue