From 6c50657e5b11b2da3d829e5518f37fa868639f65 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Wed, 14 Aug 2024 00:35:41 -0500 Subject: [PATCH] added some utils functions --- src/ad_test/utils.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/ad_test/utils.py b/src/ad_test/utils.py index 9559108..468ad82 100644 --- a/src/ad_test/utils.py +++ b/src/ad_test/utils.py @@ -1,4 +1,5 @@ import asyncio +import re from typing import List import pytest @@ -15,3 +16,26 @@ def get_load_order(caplog: pytest.LogCaptureFixture) -> List[str]: if record.name == 'AppDaemon._app_management': if 'Determined module load order' in record.msg: return record.args[0] + + +def get_logger_records(caplog: pytest.LogCaptureFixture, name: str): + for record in caplog.records: + if record.name == name: + yield record + + +def get_app_orders(caplog: pytest.LogCaptureFixture, phase: str) -> List[str]: + for record in get_logger_records(caplog, 'AppDaemon._app_management'): + if re.search(f'App {phase} order', record.msg): + return record.args[0] + + +def get_loaded_apps(caplog: pytest.LogCaptureFixture): + for record in get_logger_records(caplog, 'AppDaemon._app_management'): + if re.search('Apps to be loaded', record.msg): + return record.args[0] + + +def count_error_lines(caplog: pytest.LogCaptureFixture) -> int: + error_log_lines = [msg for name, lvl, msg in caplog.record_tuples if name.startswith('Error')] + return len(error_log_lines)