tests: increase coverage

This commit is contained in:
Sina Atalay 2024-06-01 15:56:48 +03:00
parent e3c30139a7
commit 7c6856a7e1
3 changed files with 43 additions and 2 deletions

View File

@ -141,4 +141,4 @@ source = ['rendercv']
relative_files = true relative_files = true
# don't include jinja templates in the coverage report: # don't include jinja templates in the coverage report:
omit = ["*.j2.*"] omit = ["*.j2.*", "rendercv/__main__.py"]

View File

@ -41,6 +41,11 @@ def test_error():
cli.error("This is an error message.") cli.error("This is an error message.")
def test_error_without_text():
with pytest.raises(typer.Exit):
cli.error()
def test_information(): def test_information():
cli.information("This is an information message.") cli.information("This is an information message.")
@ -102,6 +107,14 @@ def test_get_error_message_and_location_and_value_from_a_custom_error():
"end_date": "INVALID END DATE", "end_date": "INVALID END DATE",
}, },
), ),
(
dm.ExperienceEntry,
{
"company": "CERN",
"position": "Researcher",
"highlights": "This is not a list.",
},
),
( (
dm.PublicationEntry, dm.PublicationEntry,
{ {
@ -139,6 +152,15 @@ def test_get_error_message_and_location_and_value_from_a_custom_error():
}, },
}, },
), ),
(
dm.RenderCVDataModel,
{
"cv": {
"name": "John Doe",
},
"design": {"theme": "UPPERCASE"},
},
),
], ],
) )
def test_handle_validation_error(data_model_class, invalid_model): def test_handle_validation_error(data_model_class, invalid_model):

View File

@ -170,6 +170,12 @@ def test_read_input_file_invalid_file(tmp_path):
dm.read_input_file(invalid_file_path) dm.read_input_file(invalid_file_path)
def test_read_input_file_that_doesnt_exist(tmp_path):
non_existent_file_path = tmp_path / "non_existent_file.yaml"
with pytest.raises(FileNotFoundError):
dm.read_input_file(non_existent_file_path)
@pytest.mark.parametrize( @pytest.mark.parametrize(
"theme", "theme",
dm.available_themes, dm.available_themes,
@ -645,7 +651,7 @@ def test_custom_theme_with_broken_init_file(tmp_path, testdata_directory_path):
custom_theme_path = tmp_path / "dummytheme" custom_theme_path = tmp_path / "dummytheme"
shutil.copytree(reference_custom_theme_path, custom_theme_path, dirs_exist_ok=True) shutil.copytree(reference_custom_theme_path, custom_theme_path, dirs_exist_ok=True)
# remove the __init__.py file: # overwrite the __init__.py file (syntax error)
init_file = custom_theme_path / "__init__.py" init_file = custom_theme_path / "__init__.py"
init_file.write_text("invalid python code", encoding="utf-8") init_file.write_text("invalid python code", encoding="utf-8")
@ -658,6 +664,19 @@ def test_custom_theme_with_broken_init_file(tmp_path, testdata_directory_path):
} }
) )
# overwrite the __init__.py file (import error)
init_file = custom_theme_path / "__init__.py"
init_file.write_text("from ... import test", encoding="utf-8")
os.chdir(tmp_path)
with pytest.raises(pydantic.ValidationError):
dm.RenderCVDataModel(
**{ # type: ignore
"cv": {"name": "John Doe"},
"design": {"theme": "dummytheme"},
}
)
def test_locale_catalog(): def test_locale_catalog():
data_model = dm.get_a_sample_data_model("John Doe") data_model = dm.get_a_sample_data_model("John Doe")