mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 15:27:17 +00:00
* implement log storage at backend * handle process id during removal. During one process we can write logs from different packages in different times (e.g. check and update later) and we would like to store all logs belong to the same process * set package context in main functions * implement logs support in interface * filter out logs posting http logs * add timestamp to log records * hide getting logs under reporter permission List of breaking changes: * `ahriman.core.lazy_logging.LazyLogging` has been renamed to `ahriman.core.log.LazyLogging` * `ahriman.core.configuration.Configuration.from_path` does not have `quiet` attribute now * `ahriman.core.configuration.Configuration` class does not have `load_logging` method now * `ahriman.core.status.client.Client.load` requires `report` argument now
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
import logging
|
|
|
|
from pytest_mock import MockerFixture
|
|
|
|
from ahriman.core.configuration import Configuration
|
|
from ahriman.core.log import Log
|
|
|
|
|
|
def test_load(configuration: Configuration, mocker: MockerFixture) -> None:
|
|
"""
|
|
must load logging
|
|
"""
|
|
logging_mock = mocker.patch("ahriman.core.log.log.fileConfig")
|
|
http_log_mock = mocker.patch("ahriman.core.log.http_log_handler.HttpLogHandler.load")
|
|
|
|
Log.load(configuration, quiet=False, report=False)
|
|
logging_mock.assert_called_once_with(configuration.logging_path)
|
|
http_log_mock.assert_called_once_with(configuration, report=False)
|
|
|
|
|
|
def test_load_fallback(configuration: Configuration, mocker: MockerFixture) -> None:
|
|
"""
|
|
must fallback to stderr without errors
|
|
"""
|
|
mocker.patch("ahriman.core.log.log.fileConfig", side_effect=PermissionError())
|
|
Log.load(configuration, quiet=False, report=False)
|
|
|
|
|
|
def test_load_quiet(configuration: Configuration, mocker: MockerFixture) -> None:
|
|
"""
|
|
must disable logging in case if quiet flag set
|
|
"""
|
|
disable_mock = mocker.patch("logging.disable")
|
|
Log.load(configuration, quiet=True, report=False)
|
|
disable_mock.assert_called_once_with(logging.WARNING)
|