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é
commit afba775304
4 changed files with 8 additions and 7 deletions

View file

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

View file

@ -28,8 +28,8 @@ def test_configurationerror():
def test_status_value_error():
harness = Test()
expected_err = 'Test assigned status None,' \
expected_err = 'Test assigned status OK,' \
' which could not be cast to a TwisterStatus.'
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
harness = twisterlib.harness.Test()
harness.status = 'NONE'
harness.status = TwisterStatus.NONE
harness.detected_suite_names = mock.Mock()
harness.matched_run_id = False
harness.run_id_exists = True

View file

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