1
0
mirror of synced 2026-01-01 09:02:59 -05:00
Files
airbyte/tools/ci_common_utils/tests/test_logger.py
Maksym Pavlenok d3b0c998b8 🎉 CI secrets: full migration to GSM (#8561)
* add python packages for CI scripts

* add tox config for all subpackages

* draft version

* init venv for scripts

* fix venv

* remove used comments

* fix run test

* change base folder

* update secret format

* update docs

* remove an unused file

* remove github secrets logic fully

* fix base_folder balue

* add functions desc
2021-12-15 15:08:46 +02:00

46 lines
1.4 KiB
Python

import re
from datetime import datetime, timedelta
import pytest
from ci_common_utils import Logger
LOG_RE = re.compile(
r'^\[(\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}\.\d{6})\] -'
r'\s+(\w+)\s+- \[.*tests/test_logger.py:(\d+)\] # (.+)')
LOGGER = Logger()
TEST_MESSAGE = 'sbhY=)9\'v-}LT=)jjF66(XrZh=]>7Xp"?/zCz,=eu8K47u8'
def check_output(msg: str, expected_line_number: int, expected_log_level: str):
m = LOG_RE.match(msg)
assert m is not None, f"incorrect message format, pattern: {LOG_RE.pattern}"
date_time, log_level, line_number, msg = m.groups()
assert int(line_number) == expected_line_number
assert expected_log_level == log_level
assert expected_log_level == log_level
dt = datetime.strptime(date_time, '%d/%m/%Y %H:%M:%S.%f')
now = datetime.now()
delta = timedelta(seconds=1)
assert now - delta < dt < now
@pytest.mark.parametrize('log_func,expected_log_level,expected_code', (
(LOGGER.debug, 'DEBUG', 0),
(LOGGER.warning, 'WARNING', 0),
(LOGGER.info, 'INFO', 0),
(LOGGER.error, 'ERROR', 1)
))
def test_log_message(capfd, log_func, expected_log_level, expected_code):
assert log_func(TEST_MESSAGE) == expected_code
_, err = capfd.readouterr()
check_output(err, 36, expected_log_level)
def test_critical_message(capfd):
with pytest.raises(SystemExit) as (err):
LOGGER.critical(TEST_MESSAGE)
_, err = capfd.readouterr()
check_output(err, 43, 'CRITICAL')