From 28c2ae9102d4204b3f0a79419eec1e72dbbc529a Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Tue, 21 Feb 2023 21:02:23 -0600 Subject: add configuration testing, small refactor --- tests/conftest.py | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 8 deletions(-) (limited to 'tests/conftest.py') diff --git a/tests/conftest.py b/tests/conftest.py index 1beffc6..b44fbf6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,31 +1,60 @@ import os import sys -from typing import Callable import pytest -from logging import getLogger, DEBUG +from typing import Callable +from pytest import MonkeyPatch +from argparse import ArgumentParser +from datetime import datetime, timezone +from importlib.metadata import version as v +from logging import Logger, getLogger, DEBUG from pyssg.arg_parser import get_parser from pyssg.custom_logger import setup_logger -@pytest.fixture -def test_dir(): - return os.path.dirname(os.path.abspath(__file__)) +@pytest.fixture(scope='session') +def version(): + return v('pyssg') + + +@pytest.fixture(scope='session') +def rss_date_fmt(): + return '%a, %d %b %Y %H:%M:%S GMT' + + +@pytest.fixture(scope='session') +def sitemap_date_fmt(): + return '%Y-%m-%d' + + +@pytest.fixture(scope='session') +def test_dir() -> str: + return str(os.path.dirname(os.path.abspath(__file__))) + + +@pytest.fixture(scope='session') +def test_resource() -> str: + return 'tests.io_files' @pytest.fixture(scope='session') -def arg_parser(): +def simple_yaml() -> str: + return 'simple.yaml' + + +@pytest.fixture(scope='session') +def arg_parser() -> ArgumentParser: return get_parser() @pytest.fixture(scope='session') -def logger(): +def logger() -> Logger: setup_logger(__name__, DEBUG) return getLogger(__name__) @pytest.fixture -def capture_stdout(monkeypatch: Callable) -> dict[str, str | int]: +def capture_stdout(monkeypatch: MonkeyPatch) -> dict[str, str | int]: buffer: dict[str, str | int] = {'stdout': '', 'write_calls': 0} def fake_writer(s): @@ -34,3 +63,10 @@ def capture_stdout(monkeypatch: Callable) -> dict[str, str | int]: monkeypatch.setattr(sys.stdout, 'write', fake_writer) return buffer + + +@pytest.fixture +def get_fmt_time() -> Callable[..., str]: + def fmt_time(fmt: str) -> str: + return datetime.now(tz=timezone.utc).strftime(fmt) + return fmt_time -- cgit v1.2.3-54-g00ecf