twister: test: update test case

update test cases for twister
1. test_errors.py add protection.
2. test_handlers.py change call to status
3. test_testsuite.py change call to status

The log traces for TwisterException objects only.
And the stack trace output follow the same rules for all exceptions,
but StatusAttributeError with its dedicated handlers.

Signed-off-by: Hake Huang <hake.huang@oss.nxp.com>
This commit is contained in:
Hake Huang 2024-11-15 21:33:24 +08:00 committed by Benjamin Cabé
parent 798768e40d
commit afba775304
4 changed files with 8 additions and 7 deletions

View file

@ -11,9 +11,7 @@ logger.setLevel(logging.DEBUG)
class TwisterException(Exception): class TwisterException(Exception):
def __init__(self, message="TwisterException"): def __init__(self, message="TwisterException"):
super().__init__(message) super().__init__(message)
for line in traceback.format_stack(): logger.error(''.join(["Twister call stack dump:\n"] + traceback.format_stack()[:-1]))
logger.info(line.strip())
logger.warning("======call stack dump end============")
class TwisterRuntimeError(TwisterException): class TwisterRuntimeError(TwisterException):
pass pass

View file

@ -28,8 +28,8 @@ def test_configurationerror():
def test_status_value_error(): def test_status_value_error():
harness = Test() harness = Test()
expected_err = 'Test assigned status None,' \ expected_err = 'Test assigned status OK,' \
' which could not be cast to a TwisterStatus.' ' which could not be cast to a TwisterStatus.'
with pytest.raises(StatusAttributeError, match=expected_err): with pytest.raises(StatusAttributeError, match=expected_err):
harness.status = None harness.status = "OK"

View file

@ -131,7 +131,7 @@ def test_handler_final_handle_actions(mocked_instance):
handler.suite_name_check = True handler.suite_name_check = True
harness = twisterlib.harness.Test() harness = twisterlib.harness.Test()
harness.status = 'NONE' harness.status = TwisterStatus.NONE
harness.detected_suite_names = mock.Mock() harness.detected_suite_names = mock.Mock()
harness.matched_run_id = False harness.matched_run_id = False
harness.run_id_exists = True harness.run_id_exists = True

View file

@ -648,6 +648,9 @@ def test_scan_testsuite_path(
def mock_stat(filename, *args, **kwargs): def mock_stat(filename, *args, **kwargs):
result = mock.Mock() result = mock.Mock()
# as we may call os.stat in code
# some protection need add here
if filename in sizes:
type(result).st_size = sizes[filename] type(result).st_size = sizes[filename]
return result return result