Commit 114548ef authored by Paszkiet Kamil's avatar Paszkiet Kamil Committed by Anas Nashif
Browse files

scripts: twister_blackbox: Added the ability to clear log from the code

clear_log is used as a fixture by pytest. We need to be able to call
it from the code level. Example of use in the file
test_harwaremap.py line 157.

Signed-off-by: default avatarPaszkiet Kamil <kamilx.paszkiet@intel.com>
parent 117dc552
Loading
Loading
Loading
Loading
+5 −0
Changes for scripts/tests/twister_blackbox/conftest.py: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -37,6 +37,11 @@ def zephyr_test_directory():

@pytest.fixture
def clear_log():
    # clear_log is used by pytest fixture
    # However, clear_log_in_test is prepared to be used directly in the code, wherever required
    clear_log_in_test()

def clear_log_in_test():
    # Required to fix the pytest logging error
    # See: https://github.com/pytest-dev/pytest/issues/5502
    loggers = [logging.getLogger()] \
+2 −10
Changes for scripts/tests/twister_blackbox/test_hardwaremap.py: 2 added lines, 10 removed lines.
Original line number Diff line number Diff line
@@ -5,14 +5,13 @@
"""
Blackbox tests for twister's command line functions
"""
import logging
import importlib
import mock
import os
import pytest
import sys

from conftest import ZEPHYR_BASE, testsuite_filename_mock
from conftest import ZEPHYR_BASE, testsuite_filename_mock, clear_log_in_test
from twisterlib.testplan import TestPlan

sys.path.insert(0, os.path.join(ZEPHYR_BASE, "scripts/pylib/twister/twisterlib"))
@@ -155,14 +154,7 @@ class TestHardwaremap:
                        os.remove(path)

                    assert str(sys_exit.value) == '0'
                    loggers = [logging.getLogger()] + \
                              list(logging.Logger.manager.loggerDict.values()) + \
                              [logging.getLogger(name) for \
                               name in logging.root.manager.loggerDict]
                    for logger in loggers:
                        handlers = getattr(logger, 'handlers', [])
                        for handler in handlers:
                            logger.removeHandler(handler)
                    clear_log_in_test()

    @pytest.mark.parametrize(
        ('manufacturer', 'product', 'serial', 'runner'),