From a609b1cb2b43fd17e03efa62314f679b47ae6cb5 Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Fri, 24 Feb 2023 03:53:13 -0600 Subject: add utils tests, small refactor --- tests/test_configuration.py | 70 ++++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 33 deletions(-) (limited to 'tests/test_configuration.py') diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 0db8094..68f7808 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -1,16 +1,16 @@ import pytest from pytest import LogCaptureFixture from typing import Any, Callable -from logging import DEBUG, INFO, WARNING, ERROR +from logging import ERROR from pyssg.configuration import get_static_config, get_parsed_config # this test is a bit sketchy, as the way the datetimes are calculated could vary # by milliseconds or even have a difference in seconds def test_static_default(rss_date_fmt: str, - sitemap_date_fmt: str, - get_fmt_time: Callable[..., str], - version: str) -> None: + sitemap_date_fmt: str, + get_fmt_time: Callable[..., str], + version: str) -> None: rss_run_date: str = get_fmt_time(rss_date_fmt) sitemap_run_date: str = get_fmt_time(sitemap_date_fmt) sc_dict: dict[str, Any] = {'fmt': {'rss_date': rss_date_fmt, @@ -22,35 +22,13 @@ def test_static_default(rss_date_fmt: str, assert static_config == sc_dict -def test_simple(test_dir: str) -> None: - yaml_dict: dict[str, Any] = {'define': '$PYSSG_HOME/pyssg/site_example/', - 'title': 'Example site', - 'path': { - 'src': '/tmp/pyssg/pyssg/site_example/src', - 'dst': '/tmp/pyssg/pyssg/site_example/dst', - 'plt': '/tmp/pyssg/pyssg/site_example/plt', - 'db': '/tmp/pyssg/pyssg/site_example/.files'}, - 'url': { - 'main': 'https://example.com', - 'static': 'https://static.example.com', - 'default_image': 'images/default.png'}, - 'fmt': { - 'date': '%a, %b %d, %Y @ %H:%M %Z', - 'list_date': '%b %d', - 'list_sep_date': '%B %Y'}, - 'dirs': { - '/': { - 'cfg': { - 'plt': 'page.html', - 'tags': False, - 'index': False, - 'rss': False, - 'sitemap': False, - 'exclude_dirs': []}}}} - yaml_path: str = f'{test_dir}/io_files/simple.yaml' +def test_simple(test_dir: str, + simple_yaml: str, + simple_dict: dict[str, Any]) -> None: + yaml_path: str = f'{test_dir}/io_files/{simple_yaml}' yaml: list[dict[str, Any]] = get_parsed_config(yaml_path) assert len(yaml) == 1 - assert yaml[0] == yaml_dict + assert yaml[0] == simple_dict def test_simple_mising_key(test_dir: str, @@ -67,10 +45,10 @@ def test_simple_mising_key(test_dir: str, def test_simple_mising_dirs(test_dir: str, - caplog: LogCaptureFixture) -> None: + caplog: LogCaptureFixture) -> None: err: tuple[str, int, str] = ('pyssg.configuration', ERROR, - 'config doesn\'t have any dirs configs (dirs.*)') + 'config doesn\'t have any dirs (dirs.*)') yaml_path: str = f'{test_dir}/io_files/simple_missing_dirs.yaml' with pytest.raises(SystemExit) as system_exit: get_parsed_config(yaml_path) @@ -90,3 +68,29 @@ def test_simple_root_dir(test_dir: str, assert system_exit.type == SystemExit assert system_exit.value.code == 1 assert caplog.record_tuples[-1] == err + + +# this really just tests that both documents in the yaml file are read, +# multiple.yaml is just simple.yaml with the same document twice, +# shouldn't be an issue as the yaml package handles this +def test_multiple(test_dir: str, simple_dict: dict[str, Any]) -> None: + yaml_path: str = f'{test_dir}/io_files/multiple.yaml' + yaml: list[dict[str, Any]] = get_parsed_config(yaml_path) + assert len(yaml) == 2 + assert yaml[0] == simple_dict + assert yaml[1] == simple_dict + + +# also, this just tests that the checks for a well formed config file are +# processed for all documents +def test_multiple_one_doc_error(test_dir: str, + caplog: LogCaptureFixture) -> None: + err: tuple[str, int, str] = ('pyssg.configuration', + ERROR, + 'config doesn\'t have any dirs (dirs.*)') + yaml_path: str = f'{test_dir}/io_files/multiple_one_doc_error.yaml' + with pytest.raises(SystemExit) as system_exit: + get_parsed_config(yaml_path) + assert system_exit.type == SystemExit + assert system_exit.value.code == 1 + assert caplog.record_tuples[-1] == err -- cgit v1.2.3-54-g00ecf