Files
slic/ci-reports/markdown/json-tree-view.txt
2025-07-22 12:16:36 +00:00

2999 lines
137 KiB
Plaintext

📁 ci-reports/markdown/pytest-report.json
├── created: 1753186596.1935027
├── duration: 0.7543473243713379
├── exitcode: 2
├── root: /workspace/tligui_y/slic
├── environment
├── summary
│ ├── passed: 38
│ ├── failed: 33
│ ├── xfailed: 2
│ ├── skipped: 1
│ ├── error: 1
│ ├── total: 75
│ └── collected: 75
├── collectors
│ ├── -
│ │ ├── nodeid:
│ │ ├── outcome: passed
│ │ └── result
│ │ └── -
│ │ ├── nodeid: .
│ │ └── type: Dir
│ ├── -
│ │ ├── nodeid: ci-reports/allure/data
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports/allure/export
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports/allure/history
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports/allure/plugin/behaviors
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports/allure/plugin/packages
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports/allure/plugin/screen-diff
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports/allure/plugin
│ │ ├── outcome: passed
│ │ └── result
│ │ ├── -
│ │ │ ├── nodeid: ci-reports/allure/plugin/behaviors
│ │ │ └── type: Dir
│ │ ├── -
│ │ │ ├── nodeid: ci-reports/allure/plugin/packages
│ │ │ └── type: Dir
│ │ └── -
│ │ ├── nodeid: ci-reports/allure/plugin/screen-diff
│ │ └── type: Dir
│ ├── -
│ │ ├── nodeid: ci-reports/allure/widgets
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports/allure
│ │ ├── outcome: passed
│ │ └── result
│ │ ├── -
│ │ │ ├── nodeid: ci-reports/allure/data
│ │ │ └── type: Dir
│ │ ├── -
│ │ │ ├── nodeid: ci-reports/allure/export
│ │ │ └── type: Dir
│ │ ├── -
│ │ │ ├── nodeid: ci-reports/allure/history
│ │ │ └── type: Dir
│ │ ├── -
│ │ │ ├── nodeid: ci-reports/allure/plugin
│ │ │ └── type: Dir
│ │ └── -
│ │ ├── nodeid: ci-reports/allure/widgets
│ │ └── type: Dir
│ ├── -
│ │ ├── nodeid: ci-reports/coverage
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports/markdown
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: ci-reports
│ │ ├── outcome: passed
│ │ └── result
│ │ ├── -
│ │ │ ├── nodeid: ci-reports/allure
│ │ │ └── type: Dir
│ │ ├── -
│ │ │ ├── nodeid: ci-reports/coverage
│ │ │ └── type: Dir
│ │ └── -
│ │ ├── nodeid: ci-reports/markdown
│ │ └── type: Dir
│ ├── -
│ │ ├── nodeid: functions
│ │ ├── outcome: passed
│ │ └── result
│ ├── -
│ │ ├── nodeid: tests/test_broken_fct.py
│ │ ├── outcome: failed
│ │ ├── result
│ │ └── longrepr:
│ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493
│ │ : in importtestmodule
│ │ mod = import_path(
│ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:58
│ │ 7: in import_path
│ │ importlib.import_module(module_name)
│ │ .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in
│ │ import_module
│ │ return _bootstrap._gcd_import(name, package, level)
│ │ <frozen importlib._bootstrap>:1014: in _gcd_import
│ │ ???
│ │ <frozen importlib._bootstrap>:991: in _find_and_load
│ │ ???
│ │ <frozen importlib._bootstrap>:975: in _find_and_load_unlocked
│ │ ???
│ │ <frozen importlib._bootstrap>:671: in _load_unlocked
│ │ ???
│ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rew
│ │ rite.py:175: in exec_module
│ │ source_stat, co = _rewrite_test(fn, self.config)
│ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rew
│ │ rite.py:355: in _rewrite_test
│ │ tree = ast.parse(source, filename=strfn)
│ │ .pixi/envs/default/lib/python3.8/ast.py:47: in parse
│ │ return compile(source, filename, mode, flags,
│ │ E File "/workspace/tligui_y/slic/tests/test_broken_fct.py", line
│ │ 8
│ │ E def test_valid_2():
│ │ E ^
│ │ E SyntaxError: invalid syntax
│ ├── -
│ │ ├── nodeid: tests/test_collector_error.py
│ │ ├── outcome: failed
│ │ ├── result
│ │ └── longrepr: ImportError while importing test module
│ │ '/workspace/tligui_y/slic/tests/test_collector_error.py'.
│ │ Hint: make sure your test modules/packages have valid Python names.
│ │ Traceback:
│ │ .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in
│ │ import_module
│ │ return _bootstrap._gcd_import(name, package, level)
│ │ tests/test_collector_error.py:1: in <module>
│ │ from no_existing_module.math_utils import *
│ │ E ModuleNotFoundError: No module named 'no_existing_module'
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py
│ │ ├── outcome: passed
│ │ └── result
│ │ ├── -
│ │ │ ├── nodeid: tests/test_io_utils.py::test_write_file
│ │ │ ├── type: Function
│ │ │ └── lineno: 9
│ │ ├── -
│ │ │ ├── nodeid: tests/test_io_utils.py::test_read_file
│ │ │ ├── type: Function
│ │ │ └── lineno: 15
│ │ ├── -
│ │ │ ├── nodeid: tests/test_io_utils.py::test_cause_io_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 22
│ │ ├── -
│ │ │ ├── nodeid: tests/test_io_utils.py::test_file_not_found
│ │ │ ├── type: Function
│ │ │ └── lineno: 26
│ │ ├── -
│ │ │ ├── nodeid: tests/test_io_utils.py::test_permission_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 30
│ │ ├── -
│ │ │ ├── nodeid: tests/test_io_utils.py::test_mock_open_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 37
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_io_utils.py::test_file_handle_closed_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 45
│ │ ├── -
│ │ │ ├── nodeid: tests/test_io_utils.py::test_os_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 51
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_io_utils.py::test_write_file_in_readonly_mode
│ │ │ ├── type: Function
│ │ │ └── lineno: 58
│ │ └── -
│ │ ├── nodeid: tests/test_io_utils.py::test_file_not_found_error
│ │ ├── type: Function
│ │ └── lineno: 67
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py
│ │ ├── outcome: passed
│ │ └── result
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_broken
│ │ │ ├── type: Function
│ │ │ └── lineno: 13
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_call_missing_function
│ │ │ ├── type: Function
│ │ │ └── lineno: 17
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4]
│ │ │ ├── type: Function
│ │ │ └── lineno: 22
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6]
│ │ │ ├── type: Function
│ │ │ └── lineno: 22
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7]
│ │ │ ├── type: Function
│ │ │ └── lineno: 22
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8]
│ │ │ ├── type: Function
│ │ │ └── lineno: 22
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9]
│ │ │ ├── type: Function
│ │ │ └── lineno: 22
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│ │ │ ├── type: Function
│ │ │ └── lineno: 36
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│ │ │ ├── type: Function
│ │ │ └── lineno: 36
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│ │ │ ├── type: Function
│ │ │ └── lineno: 36
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_addition_fail
│ │ │ ├── type: Function
│ │ │ └── lineno: 48
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_division_zero
│ │ │ ├── type: Function
│ │ │ └── lineno: 52
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_multiply_xfail
│ │ │ ├── type: Function
│ │ │ └── lineno: 56
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_runtime_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 61
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_memory_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 65
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_timeout_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 69
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_recursion_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 73
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_floating_point_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 79
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_math_utils.py::test_floating_point_overflow
│ │ │ ├── type: Function
│ │ │ └── lineno: 83
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_value_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 87
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_wrong_argument_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 91
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_unhandled_exception
│ │ │ ├── type: Function
│ │ │ └── lineno: 95
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_custom_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 99
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_stop_iteration_direct
│ │ │ ├── type: Function
│ │ │ └── lineno: 103
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_generator_exit_direct
│ │ │ ├── type: Function
│ │ │ └── lineno: 107
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_malformed_code
│ │ │ ├── type: Function
│ │ │ └── lineno: 111
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_sys_exit
│ │ │ ├── type: Function
│ │ │ └── lineno: 115
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_broken_function
│ │ │ ├── type: Function
│ │ │ └── lineno: 119
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py::test_import_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 125
│ │ └── -
│ │ ├── nodeid:
│ │ │ tests/test_math_utils.py::test_module_not_found_error
│ │ ├── type: Function
│ │ └── lineno: 129
│ ├── -
│ │ ├── nodeid: tests/test_param.py
│ │ ├── outcome: passed
│ │ └── result
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_basic_ids
│ │ │ ├── type: Function
│ │ │ └── lineno: 3
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_basic_ids
│ │ │ ├── type: Function
│ │ │ └── lineno: 3
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_with_reason_and_marks
│ │ │ ├── type: Function
│ │ │ └── lineno: 11
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_with_reason_and_marks
│ │ │ ├── type: Function
│ │ │ └── lineno: 11
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_param.py::test_multiple_positional_args[1-2]
│ │ │ ├── type: Function
│ │ │ └── lineno: 19
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_param.py::test_multiple_positional_args[3-4]
│ │ │ ├── type: Function
│ │ │ └── lineno: 19
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_non_literal_with_id
│ │ │ ├── type: Function
│ │ │ └── lineno: 27
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_timedistance_v1
│ │ │ ├── type: Function
│ │ │ └── lineno: 43
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_timedistance_v1
│ │ │ ├── type: Function
│ │ │ └── lineno: 43
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_sum_positive
│ │ │ ├── type: Function
│ │ │ └── lineno: 55
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_sum_positive
│ │ │ ├── type: Function
│ │ │ └── lineno: 55
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_sum_positive
│ │ │ ├── type: Function
│ │ │ └── lineno: 55
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_dynamic
│ │ │ ├── type: Function
│ │ │ └── lineno: 65
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_dynamic
│ │ │ ├── type: Function
│ │ │ └── lineno: 65
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_dynamic
│ │ │ ├── type: Function
│ │ │ └── lineno: 65
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_element_type[\U0001f525]
│ │ │ ├── type: Function
│ │ │ └── lineno: 74
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_element_type[\U0001f4a7]
│ │ │ ├── type: Function
│ │ │ └── lineno: 74
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_element_type[\U0001f30d]
│ │ │ ├── type: Function
│ │ │ └── lineno: 74
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_combination
│ │ │ ├── type: Function
│ │ │ └── lineno: 78
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_combination
│ │ │ ├── type: Function
│ │ │ └── lineno: 78
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_combination
│ │ │ ├── type: Function
│ │ │ └── lineno: 78
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_combination
│ │ │ ├── type: Function
│ │ │ └── lineno: 78
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_indirect_fixture[1]
│ │ │ ├── type: Function
│ │ │ └── lineno: 89
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_indirect_fixture[2]
│ │ │ ├── type: Function
│ │ │ └── lineno: 89
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py::test_addition
│ │ │ ├── type: Function
│ │ │ └── lineno: 94
│ │ └── -
│ │ ├── nodeid: tests/test_param.py::test_basic_error
│ │ ├── type: Function
│ │ └── lineno: 99
│ ├── -
│ │ ├── nodeid: tests/test_string_utils.py
│ │ ├── outcome: passed
│ │ └── result
│ │ ├── -
│ │ │ ├── nodeid: tests/test_string_utils.py::test_uppercase_normal
│ │ │ ├── type: Function
│ │ │ └── lineno: 9
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_string_utils.py::test_uppercase_type_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 13
│ │ ├── -
│ │ │ ├── nodeid: tests/test_string_utils.py::test_reverse_string
│ │ │ ├── type: Function
│ │ │ └── lineno: 17
│ │ ├── -
│ │ │ ├── nodeid: tests/test_string_utils.py::test_warning_emit
│ │ │ ├── type: Function
│ │ │ └── lineno: 21
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_string_utils.py::test_unicode_decode_error
│ │ │ ├── type: Function
│ │ │ └── lineno: 25
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_string_utils.py::test_unicode_decode_surrogateesc
│ │ │ │ ape
│ │ │ ├── type: Function
│ │ │ └── lineno: 29
│ │ ├── -
│ │ │ ├── nodeid: tests/test_string_utils.py::test_syntax_warning
│ │ │ ├── type: Function
│ │ │ └── lineno: 33
│ │ ├── -
│ │ │ ├── nodeid:
│ │ │ │ tests/test_string_utils.py::test_xfail_uppercase_digits
│ │ │ ├── type: Function
│ │ │ └── lineno: 37
│ │ └── -
│ │ ├── nodeid:
│ │ │ tests/test_string_utils.py::test_keyboard_interrupt_direct
│ │ ├── type: Function
│ │ └── lineno: 49
│ ├── -
│ │ ├── nodeid: tests
│ │ ├── outcome: passed
│ │ └── result
│ │ ├── -
│ │ │ ├── nodeid: tests/test_broken_fct.py
│ │ │ └── type: Module
│ │ ├── -
│ │ │ ├── nodeid: tests/test_collector_error.py
│ │ │ └── type: Module
│ │ ├── -
│ │ │ ├── nodeid: tests/test_io_utils.py
│ │ │ └── type: Module
│ │ ├── -
│ │ │ ├── nodeid: tests/test_math_utils.py
│ │ │ └── type: Module
│ │ ├── -
│ │ │ ├── nodeid: tests/test_param.py
│ │ │ └── type: Module
│ │ └── -
│ │ ├── nodeid: tests/test_string_utils.py
│ │ └── type: Module
│ └── -
│ ├── nodeid: .
│ ├── outcome: passed
│ └── result
│ ├── -
│ │ ├── nodeid: ci-reports
│ │ └── type: Dir
│ ├── -
│ │ ├── nodeid: functions
│ │ └── type: Package
│ └── -
│ ├── nodeid: tests
│ └── type: Dir
├── tests
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_write_file
│ │ ├── lineno: 9
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_write_file
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.003127171192318201
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.000460044015198946
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00023637502454221249
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_read_file
│ │ ├── lineno: 15
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_read_file
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00045256479643285275
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00029500690288841724
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00014071795158088207
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_cause_io_error
│ │ ├── lineno: 22
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_cause_io_error
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011181505396962166
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00016287202015519142
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/functions/io_utils.py
│ │ │ │ ├── lineno: 10
│ │ │ │ └── message: OSError: Forced IO Error for testing
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ │ ├── lineno: 25
│ │ │ │ │ └── message:
│ │ │ │ └── -
│ │ │ │ ├── path: functions/io_utils.py
│ │ │ │ ├── lineno: 10
│ │ │ │ └── message: OSError
│ │ │ └── longrepr: def test_cause_io_error():
│ │ │ # Raises manual IOError to simulate IO failure
│ │ │ > cause_io_error()
│ │ │
│ │ │ tests/test_io_utils.py:25:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ def cause_io_error():
│ │ │ > raise IOError("Forced IO Error for testing")
│ │ │ E OSError: Forced IO Error for testing
│ │ │
│ │ │ functions/io_utils.py:10: OSError
│ │ └── teardown
│ │ ├── duration: 0.00013995193876326084
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_file_not_found
│ │ ├── lineno: 26
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_file_not_found
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00012210989370942116
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00018649897538125515
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/functions/io_utils.py
│ │ │ │ ├── lineno: 2
│ │ │ │ └── message: FileNotFoundError: [Errno 2] No such file or
│ │ │ │ directory: 'nonexistent.file'
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ │ ├── lineno: 29
│ │ │ │ │ └── message:
│ │ │ │ └── -
│ │ │ │ ├── path: functions/io_utils.py
│ │ │ │ ├── lineno: 2
│ │ │ │ └── message: FileNotFoundError
│ │ │ └── longrepr: def test_file_not_found():
│ │ │ # Reading non-existing file raises FileNotFoundError
│ │ │ > read_file("nonexistent.file")
│ │ │
│ │ │ tests/test_io_utils.py:29:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ path = 'nonexistent.file'
│ │ │
│ │ │ def read_file(path):
│ │ │ > with open(path, "r", encoding="utf-8") as f:
│ │ │ E FileNotFoundError: [Errno 2] No such file or directory:
│ │ │ 'nonexistent.file'
│ │ │
│ │ │ functions/io_utils.py:2: FileNotFoundError
│ │ └── teardown
│ │ ├── duration: 0.00013819406740367413
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_permission_error
│ │ ├── lineno: 30
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_permission_error
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.000188145088031888
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00016653095372021198
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_io_utils.py
│ │ │ │ ├── lineno: 34
│ │ │ │ └── message: PermissionError: Permission denied
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ │ ├── lineno: 36
│ │ │ │ │ └── message:
│ │ │ │ ├── -
│ │ │ │ │ ├── path: functions/io_utils.py
│ │ │ │ │ ├── lineno: 2
│ │ │ │ │ └── message: in read_file
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ ├── lineno: 34
│ │ │ │ └── message: PermissionError
│ │ │ └── longrepr: monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
│ │ │ at 0x7f4653b9f460>
│ │ │
│ │ │ def test_permission_error(monkeypatch):
│ │ │ # Patch open to raise PermissionError simulating access
│ │ │ denial
│ │ │ def raise_perm_error(*args, **kwargs):
│ │ │ raise PermissionError("Permission denied")
│ │ │ monkeypatch.setattr("builtins.open", raise_perm_error)
│ │ │ > read_file("anyfile.txt")
│ │ │
│ │ │ tests/test_io_utils.py:36:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │ functions/io_utils.py:2: in read_file
│ │ │ with open(path, "r", encoding="utf-8") as f:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ args = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}
│ │ │
│ │ │ def raise_perm_error(*args, **kwargs):
│ │ │ > raise PermissionError("Permission denied")
│ │ │ E PermissionError: Permission denied
│ │ │
│ │ │ tests/test_io_utils.py:34: PermissionError
│ │ └── teardown
│ │ ├── duration: 0.00015965220518410206
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_mock_open_error
│ │ ├── lineno: 37
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_mock_open_error
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001903099473565817
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.003129048040136695
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path:
│ │ │ │ │ /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/un
│ │ │ │ │ ittest/mock.py
│ │ │ │ ├── lineno: 1140
│ │ │ │ └── message: OSError: Mocked IOError
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ │ ├── lineno: 43
│ │ │ │ │ └── message:
│ │ │ │ ├── -
│ │ │ │ │ ├── path: .pixi/envs/default/lib/python3.8/unittest/mock.py
│ │ │ │ │ ├── lineno: 1081
│ │ │ │ │ └── message: in __call__
│ │ │ │ ├── -
│ │ │ │ │ ├── path: .pixi/envs/default/lib/python3.8/unittest/mock.py
│ │ │ │ │ ├── lineno: 1085
│ │ │ │ │ └── message: in _mock_call
│ │ │ │ └── -
│ │ │ │ ├── path: .pixi/envs/default/lib/python3.8/unittest/mock.py
│ │ │ │ ├── lineno: 1140
│ │ │ │ └── message: OSError
│ │ │ └── longrepr: monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
│ │ │ at 0x7f4653f9adf0>
│ │ │
│ │ │ def test_mock_open_error(monkeypatch):
│ │ │ # Mock open() to raise IOError simulating read error
│ │ │ mocked_open = mock.mock_open()
│ │ │ mocked_open.side_effect = IOError("Mocked IOError")
│ │ │ monkeypatch.setattr("builtins.open", mocked_open)
│ │ │ > with open("file.txt", "r") as f:
│ │ │
│ │ │ tests/test_io_utils.py:43:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │ .pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in
│ │ │ __call__
│ │ │ return self._mock_call(*args, **kwargs)
│ │ │ .pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in
│ │ │ _mock_call
│ │ │ return self._execute_mock_call(*args, **kwargs)
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ self = <MagicMock name='open' spec='builtin_function_or_method'
│ │ │ id='139940033308416'>
│ │ │ args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked
│ │ │ IOError')
│ │ │
│ │ │ def _execute_mock_call(self, /, *args, **kwargs):
│ │ │ # separate from _increment_mock_call so that awaited
│ │ │ functions are
│ │ │ # executed separately from their call, also AsyncMock
│ │ │ overrides this method
│ │ │
│ │ │ effect = self.side_effect
│ │ │ if effect is not None:
│ │ │ if _is_exception(effect):
│ │ │ > raise effect
│ │ │ E OSError: Mocked IOError
│ │ │
│ │ │ .pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError
│ │ └── teardown
│ │ ├── duration: 0.000293264864012599
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_file_handle_closed_error
│ │ ├── lineno: 45
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_file_handle_closed_error
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.000146408099681139
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00018175807781517506
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_io_utils.py
│ │ │ │ ├── lineno: 50
│ │ │ │ └── message: ValueError: I/O operation on closed file
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ ├── lineno: 50
│ │ │ │ └── message: ValueError
│ │ │ └── longrepr: def test_file_handle_closed_error():
│ │ │ # Accessing closed file raises ValueError
│ │ │ f = io.StringIO("content")
│ │ │ f.close()
│ │ │ > f.read()
│ │ │ E ValueError: I/O operation on closed file
│ │ │
│ │ │ tests/test_io_utils.py:50: ValueError
│ │ └── teardown
│ │ ├── duration: 0.00016809883527457714
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_os_error
│ │ ├── lineno: 51
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_os_error
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0002402861136943102
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00017652916721999645
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_io_utils.py
│ │ │ │ ├── lineno: 55
│ │ │ │ └── message: OSError: Simulated OSError
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ │ ├── lineno: 57
│ │ │ │ │ └── message:
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ ├── lineno: 55
│ │ │ │ └── message: OSError
│ │ │ └── longrepr: monkeypatch = <_pytest.monkeypatch.MonkeyPatch object
│ │ │ at 0x7f4653f6c0d0>
│ │ │
│ │ │ def test_os_error(monkeypatch):
│ │ │ # Patch os.remove to raise OSError simulating filesystem
│ │ │ error
│ │ │ def raise_os_error(path):
│ │ │ raise OSError("Simulated OSError")
│ │ │ monkeypatch.setattr("os.remove", raise_os_error)
│ │ │ > os.remove("file.txt")
│ │ │
│ │ │ tests/test_io_utils.py:57:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ path = 'file.txt'
│ │ │
│ │ │ def raise_os_error(path):
│ │ │ > raise OSError("Simulated OSError")
│ │ │ E OSError: Simulated OSError
│ │ │
│ │ │ tests/test_io_utils.py:55: OSError
│ │ └── teardown
│ │ ├── duration: 0.00016252393834292889
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_write_file_in_readonly_mode
│ │ ├── lineno: 58
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_write_file_in_readonly_mode
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0005913102068006992
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0008393789175897837
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00013577588833868504
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_io_utils.py::test_file_not_found_error
│ │ ├── lineno: 67
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_file_not_found_error
│ │ │ ├── test_io_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011547398753464222
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00016303407028317451
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_io_utils.py
│ │ │ │ ├── lineno: 70
│ │ │ │ └── message: FileNotFoundError: [Errno 2] No such file or
│ │ │ │ directory: 'no_such_file.txt'
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_io_utils.py
│ │ │ │ ├── lineno: 70
│ │ │ │ └── message: FileNotFoundError
│ │ │ └── longrepr: def test_file_not_found_error():
│ │ │ # Raises FileNotFoundError when opening a non-existent
│ │ │ file
│ │ │ > open("no_such_file.txt", "r")
│ │ │ E FileNotFoundError: [Errno 2] No such file or directory:
│ │ │ 'no_such_file.txt'
│ │ │
│ │ │ tests/test_io_utils.py:70: FileNotFoundError
│ │ └── teardown
│ │ ├── duration: 0.0001443119253963232
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_broken
│ │ ├── lineno: 13
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_broken
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00013014301657676697
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001509960275143385
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 16
│ │ │ │ └── message: NameError: name 'want_the_test_to_fail' is not
│ │ │ │ defined
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 16
│ │ │ │ └── message: NameError
│ │ │ └── longrepr: def test_broken():
│ │ │ # simulating a broken or faulty test implementation that
│ │ │ will cause the test to error
│ │ │ > want_the_test_to_fail
│ │ │ E NameError: name 'want_the_test_to_fail' is not defined
│ │ │
│ │ │ tests/test_math_utils.py:16: NameError
│ │ └── teardown
│ │ ├── duration: 0.00013376190327107906
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_call_missing_function
│ │ ├── lineno: 17
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_call_missing_function
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00012259790673851967
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.000153364147990942
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 20
│ │ │ │ └── message: AttributeError: module 'functions.math_utils' has
│ │ │ │ no attribute 'non_existent_function'
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 20
│ │ │ │ └── message: AttributeError
│ │ │ └── longrepr: def test_call_missing_function():
│ │ │ # Accessing a missing function attribute raises
│ │ │ AttributeError
│ │ │ > getattr(math_utils, "non_existent_function")()
│ │ │ E AttributeError: module 'functions.math_utils' has no
│ │ │ attribute 'non_existent_function'
│ │ │
│ │ │ tests/test_math_utils.py:20: AttributeError
│ │ └── teardown
│ │ ├── duration: 0.00014212308451533318
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4]
│ │ ├── lineno: 22
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_addition_pass[2-2-4]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 2-2-4
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.000274997903034091
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014888704754412174
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00014776107855141163
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6]
│ │ ├── lineno: 22
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_addition_pass[1-5-6]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 1-5-6
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0002465848810970783
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014202878810465336
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00013178098015487194
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7]
│ │ ├── lineno: 22
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_addition_pass[3-4-7]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 3-4-7
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00024101301096379757
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014324416406452656
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00013298401609063148
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8]
│ │ ├── lineno: 22
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_addition_pass[3-5-8]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 3-5-8
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0002320348285138607
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00013249111361801624
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001308009959757328
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9]
│ │ ├── lineno: 22
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_addition_pass[3-6-9]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 3-6-9
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00024029891937971115
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00013662106357514858
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001331409439444542
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│ │ ├── lineno: 36
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_addition_pass_id
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── a=2,b=2,expected=4
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0002354609314352274
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014643697068095207
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00013262894935905933
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│ │ ├── lineno: 36
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_addition_pass_id
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── a=1,b=5,expected=6
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.000231041107326746
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00013674492947757244
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00013268901966512203
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_pass_id
│ │ ├── lineno: 36
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_addition_pass_id
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── a=3,b=4,expected=7
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00023625511676073074
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00013280101120471954
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001279059797525406
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_addition_fail
│ │ ├── lineno: 48
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_addition_fail
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00010489183478057384
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0004359888844192028
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 51
│ │ │ │ └── message: assert 4 == 5
│ │ │ │ + where 4 = addition(2, 2)
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 51
│ │ │ │ └── message: AssertionError
│ │ │ └── longrepr: def test_addition_fail():
│ │ │ # Assertion failure: expected incorrect result
│ │ │ > assert addition(2, 2) == 5
│ │ │ E assert 4 == 5
│ │ │ E + where 4 = addition(2, 2)
│ │ │
│ │ │ tests/test_math_utils.py:51: AssertionError
│ │ └── teardown
│ │ ├── duration: 0.0001498139463365078
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_division_zero
│ │ ├── lineno: 52
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_division_zero
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00012319395318627357
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00015292898751795292
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/functions/math_utils.py
│ │ │ │ ├── lineno: 5
│ │ │ │ └── message: ZeroDivisionError: division by zero
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ │ ├── lineno: 55
│ │ │ │ │ └── message:
│ │ │ │ └── -
│ │ │ │ ├── path: functions/math_utils.py
│ │ │ │ ├── lineno: 5
│ │ │ │ └── message: ZeroDivisionError
│ │ │ └── longrepr: def test_division_zero():
│ │ │ # Will raise ZeroDivisionError if not handled in
│ │ │ division
│ │ │ > division(1, 0)
│ │ │
│ │ │ tests/test_math_utils.py:55:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ a = 1, b = 0
│ │ │
│ │ │ def division(a, b):
│ │ │ > return a / b
│ │ │ E ZeroDivisionError: division by zero
│ │ │
│ │ │ functions/math_utils.py:5: ZeroDivisionError
│ │ └── teardown
│ │ ├── duration: 0.00013719499111175537
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_multiply_xfail
│ │ ├── lineno: 56
│ │ ├── outcome: xfailed
│ │ ├── keywords
│ │ │ ├── test_multiply_xfail
│ │ │ ├── xfail
│ │ │ ├── pytestmark
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00013488414697349072
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0002619961742311716
│ │ │ ├── outcome: skipped
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 60
│ │ │ │ └── message: assert 4 == 5
│ │ │ │ + where 4 = multiply(2, 2)
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 60
│ │ │ │ └── message: AssertionError
│ │ │ └── longrepr: @pytest.mark.xfail(reason="Expected failure")
│ │ │ def test_multiply_xfail():
│ │ │ # Expected fail test (xfail): incorrect expected
│ │ │ multiply result
│ │ │ > assert multiply(2, 2) == 5
│ │ │ E assert 4 == 5
│ │ │ E + where 4 = multiply(2, 2)
│ │ │
│ │ │ tests/test_math_utils.py:60: AssertionError
│ │ └── teardown
│ │ ├── duration: 0.00013590720482170582
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_runtime_error
│ │ ├── lineno: 61
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_runtime_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011499808169901371
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001471762079745531
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 64
│ │ │ │ └── message: RuntimeError: Forced runtime error
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 64
│ │ │ │ └── message: RuntimeError
│ │ │ └── longrepr: def test_runtime_error():
│ │ │ # Test raises an uncaught RuntimeError
│ │ │ > raise RuntimeError("Forced runtime error")
│ │ │ E RuntimeError: Forced runtime error
│ │ │
│ │ │ tests/test_math_utils.py:64: RuntimeError
│ │ └── teardown
│ │ ├── duration: 0.00013177492655813694
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_memory_error
│ │ ├── lineno: 65
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_memory_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011880905367434025
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001535271294414997
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 68
│ │ │ │ └── message: MemoryError: Simulated memory error
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 68
│ │ │ │ └── message: MemoryError
│ │ │ └── longrepr: def test_memory_error():
│ │ │ # Manually raise MemoryError to simulate out-of-memory
│ │ │ condition
│ │ │ > raise MemoryError("Simulated memory error")
│ │ │ E MemoryError: Simulated memory error
│ │ │
│ │ │ tests/test_math_utils.py:68: MemoryError
│ │ └── teardown
│ │ ├── duration: 0.00013314909301698208
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_timeout_error
│ │ ├── lineno: 69
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_timeout_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011596689000725746
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014621810987591743
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 72
│ │ │ │ └── message: TimeoutError: Simulated timeout error
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 72
│ │ │ │ └── message: TimeoutError
│ │ │ └── longrepr: def test_timeout_error():
│ │ │ # Manually raise TimeoutError simulating timeout
│ │ │ conditions
│ │ │ > raise TimeoutError("Simulated timeout error")
│ │ │ E TimeoutError: Simulated timeout error
│ │ │
│ │ │ tests/test_math_utils.py:72: TimeoutError
│ │ └── teardown
│ │ ├── duration: 0.00013434002175927162
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_recursion_error
│ │ ├── lineno: 73
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_recursion_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011664209887385368
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0007643799763172865
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 77
│ │ │ │ └── message: RecursionError: maximum recursion depth exceeded
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ │ ├── lineno: 78
│ │ │ │ │ └── message:
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ │ ├── lineno: 77
│ │ │ │ │ └── message: in recursive
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 77
│ │ │ │ └── message: in recursive
│ │ │ └── longrepr: def test_recursion_error():
│ │ │ # Infinite recursion triggers RecursionError
│ │ │ def recursive():
│ │ │ return recursive()
│ │ │ > recursive()
│ │ │
│ │ │ tests/test_math_utils.py:78:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │ tests/test_math_utils.py:77: in recursive
│ │ │ return recursive()
│ │ │ tests/test_math_utils.py:77: in recursive
│ │ │ return recursive()
│ │ │ E RecursionError: maximum recursion depth exceeded
│ │ │ !!! Recursion detected (same locals & position)
│ │ └── teardown
│ │ ├── duration: 0.0002000490203499794
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_floating_point_error
│ │ ├── lineno: 79
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_floating_point_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00014063785783946514
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.000174627173691988
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 82
│ │ │ │ └── message: FloatingPointError: Simulated floating point error
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 82
│ │ │ │ └── message: FloatingPointError
│ │ │ └── longrepr: def test_floating_point_error():
│ │ │ # Manually raise FloatingPointError
│ │ │ > raise FloatingPointError("Simulated floating point
│ │ │ error")
│ │ │ E FloatingPointError: Simulated floating point error
│ │ │
│ │ │ tests/test_math_utils.py:82: FloatingPointError
│ │ └── teardown
│ │ ├── duration: 0.0001514679752290249
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_floating_point_overflow
│ │ ├── lineno: 83
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_floating_point_overflow
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00012627709656953812
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00019822409376502037
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 86
│ │ │ │ └── message: OverflowError: math range error
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 86
│ │ │ │ └── message: OverflowError
│ │ │ └── longrepr: def test_floating_point_overflow():
│ │ │ # Exponential overflow triggers OverflowError
│ │ │ > math.exp(1000)
│ │ │ E OverflowError: math range error
│ │ │
│ │ │ tests/test_math_utils.py:86: OverflowError
│ │ └── teardown
│ │ ├── duration: 0.000159447081387043
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_value_error
│ │ ├── lineno: 87
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_value_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00012492714449763298
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00015829503536224365
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 90
│ │ │ │ └── message: ValueError: invalid literal for int() with base 10:
│ │ │ │ 'invalid'
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 90
│ │ │ │ └── message: ValueError
│ │ │ └── longrepr: def test_value_error():
│ │ │ # ValueError on invalid integer conversion
│ │ │ > int("invalid")
│ │ │ E ValueError: invalid literal for int() with base 10:
│ │ │ 'invalid'
│ │ │
│ │ │ tests/test_math_utils.py:90: ValueError
│ │ └── teardown
│ │ ├── duration: 0.0001328759826719761
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_wrong_argument_error
│ │ ├── lineno: 91
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_wrong_argument_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011527701281011105
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00016502104699611664
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 94
│ │ │ │ └── message: TypeError: 'int' object is not iterable
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 94
│ │ │ │ └── message: TypeError
│ │ │ └── longrepr: def test_wrong_argument_error():
│ │ │ # TypeError when passing wrong argument type to sum
│ │ │ > sum(5)
│ │ │ E TypeError: 'int' object is not iterable
│ │ │
│ │ │ tests/test_math_utils.py:94: TypeError
│ │ └── teardown
│ │ ├── duration: 0.00013130786828696728
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_unhandled_exception
│ │ ├── lineno: 95
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_unhandled_exception
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011565303429961205
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014518597163259983
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 98
│ │ │ │ └── message: Exception: Generic unhandled exception
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 98
│ │ │ │ └── message: Exception
│ │ │ └── longrepr: def test_unhandled_exception():
│ │ │ # Raises generic unhandled Exception
│ │ │ > raise Exception("Generic unhandled exception")
│ │ │ E Exception: Generic unhandled exception
│ │ │
│ │ │ tests/test_math_utils.py:98: Exception
│ │ └── teardown
│ │ ├── duration: 0.00013493397273123264
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_custom_error
│ │ ├── lineno: 99
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_custom_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011826306581497192
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00015050708316266537
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 102
│ │ │ │ └── message: test_math_utils.CustomError: Custom error
│ │ │ │ simulation
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 102
│ │ │ │ └── message: CustomError
│ │ │ └── longrepr: def test_custom_error():
│ │ │ # Raises user-defined CustomError exception
│ │ │ > raise CustomError("Custom error simulation")
│ │ │ E test_math_utils.CustomError: Custom error simulation
│ │ │
│ │ │ tests/test_math_utils.py:102: CustomError
│ │ └── teardown
│ │ ├── duration: 0.00013376399874687195
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_stop_iteration_direct
│ │ ├── lineno: 103
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_stop_iteration_direct
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011567305773496628
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00015244679525494576
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path:
│ │ │ │ │ /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/si
│ │ │ │ │ te-packages/_pytest/capture.py
│ │ │ │ ├── lineno: 880
│ │ │ │ └── message: RuntimeError: generator raised StopIteration
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/r
│ │ │ │ │ │ unner.py
│ │ │ │ │ ├── lineno: 341
│ │ │ │ │ └── message:
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/r
│ │ │ │ │ │ unner.py
│ │ │ │ │ ├── lineno: 242
│ │ │ │ │ └── message: in <lambda>
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/pluggy/_h
│ │ │ │ │ │ ooks.py
│ │ │ │ │ ├── lineno: 513
│ │ │ │ │ └── message: in __call__
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/pluggy/_m
│ │ │ │ │ │ anager.py
│ │ │ │ │ ├── lineno: 120
│ │ │ │ │ └── message: in _hookexec
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/t
│ │ │ │ │ │ hreadexception.py
│ │ │ │ │ ├── lineno: 92
│ │ │ │ │ └── message: in pytest_runtest_call
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/t
│ │ │ │ │ │ hreadexception.py
│ │ │ │ │ ├── lineno: 68
│ │ │ │ │ └── message: in thread_exception_runtest_hook
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/u
│ │ │ │ │ │ nraisableexception.py
│ │ │ │ │ ├── lineno: 95
│ │ │ │ │ └── message: in pytest_runtest_call
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/u
│ │ │ │ │ │ nraisableexception.py
│ │ │ │ │ ├── lineno: 70
│ │ │ │ │ └── message: in unraisable_exception_runtest_hook
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/l
│ │ │ │ │ │ ogging.py
│ │ │ │ │ ├── lineno: 846
│ │ │ │ │ └── message: in pytest_runtest_call
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/l
│ │ │ │ │ │ ogging.py
│ │ │ │ │ ├── lineno: 829
│ │ │ │ │ └── message: in _runtest_for
│ │ │ │ └── -
│ │ │ │ ├── path:
│ │ │ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/c
│ │ │ │ │ apture.py
│ │ │ │ ├── lineno: 880
│ │ │ │ └── message: RuntimeError
│ │ │ └── longrepr: def test_stop_iteration_direct():
│ │ │ # Directly raise StopIteration exception
│ │ │ > raise StopIteration()
│ │ │ E StopIteration
│ │ │
│ │ │ tests/test_math_utils.py:106: StopIteration
│ │ │
│ │ │ The above exception was the direct cause of the following
│ │ │ exception:
│ │ │
│ │ │ cls = <class '_pytest.runner.CallInfo'>
│ │ │ func = <function call_and_report.<locals>.<lambda> at
│ │ │ 0x7f4653c3a670>
│ │ │ when = 'call'
│ │ │ reraise = (<class '_pytest.outcomes.Exit'>, <class
│ │ │ 'KeyboardInterrupt'>)
│ │ │
│ │ │ @classmethod
│ │ │ def from_call(
│ │ │ cls,
│ │ │ func: Callable[[], TResult],
│ │ │ when: Literal["collect", "setup", "call", "teardown"],
│ │ │ reraise: type[BaseException] |
│ │ │ tuple[type[BaseException], ...] | None = None,
│ │ │ ) -> CallInfo[TResult]:
│ │ │ """Call func, wrapping the result in a CallInfo.
│ │ │
│ │ │ :param func:
│ │ │ The function to call. Called without arguments.
│ │ │ :type func: Callable[[], _pytest.runner.TResult]
│ │ │ :param when:
│ │ │ The phase in which the function is called.
│ │ │ :param reraise:
│ │ │ Exception or exceptions that shall propagate if
│ │ │ raised by the
│ │ │ function, instead of being wrapped in the CallInfo.
│ │ │ """
│ │ │ excinfo = None
│ │ │ start = timing.time()
│ │ │ precise_start = timing.perf_counter()
│ │ │ try:
│ │ │ > result: TResult | None = func()
│ │ │
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
│ │ │ :341:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
│ │ │ :242: in <lambda>
│ │ │ lambda: runtest_hook(item=item, **kwds), when=when,
│ │ │ reraise=reraise
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:
│ │ │ 513: in __call__
│ │ │ return self._hookexec(self.name, self._hookimpls.copy(),
│ │ │ kwargs, firstresult)
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.p
│ │ │ y:120: in _hookexec
│ │ │ return self._inner_hookexec(hook_name, methods, kwargs,
│ │ │ firstresult)
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexc
│ │ │ eption.py:92: in pytest_runtest_call
│ │ │ yield from thread_exception_runtest_hook()
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexc
│ │ │ eption.py:68: in thread_exception_runtest_hook
│ │ │ yield
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisabl
│ │ │ eexception.py:95: in pytest_runtest_call
│ │ │ yield from unraisable_exception_runtest_hook()
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisabl
│ │ │ eexception.py:70: in unraisable_exception_runtest_hook
│ │ │ yield
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.p
│ │ │ y:846: in pytest_runtest_call
│ │ │ yield from self._runtest_for(item, "call")
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.p
│ │ │ y:829: in _runtest_for
│ │ │ yield
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ self = <CaptureManager _method='no'
│ │ │ _global_capturing=<MultiCapture out=None err=None in_=None
│ │ │ _state='suspended' _in_suspended=False> _capture_fixture=None>
│ │ │ item = <Function test_stop_iteration_direct>
│ │ │
│ │ │ @hookimpl(wrapper=True)
│ │ │ def pytest_runtest_call(self, item: Item) ->
│ │ │ Generator[None]:
│ │ │ with self.item_capture("call", item):
│ │ │ > return (yield)
│ │ │ E RuntimeError: generator raised StopIteration
│ │ │
│ │ │ .pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.p
│ │ │ y:880: RuntimeError
│ │ └── teardown
│ │ ├── duration: 0.0002570070791989565
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_generator_exit_direct
│ │ ├── lineno: 107
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_generator_exit_direct
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001401419285684824
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00017015007324516773
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 110
│ │ │ │ └── message: GeneratorExit
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 110
│ │ │ │ └── message: GeneratorExit
│ │ │ └── longrepr: def test_generator_exit_direct():
│ │ │ # Directly raise GeneratorExit exception
│ │ │ > raise GeneratorExit()
│ │ │ E GeneratorExit
│ │ │
│ │ │ tests/test_math_utils.py:110: GeneratorExit
│ │ └── teardown
│ │ ├── duration: 0.0002235090360045433
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_malformed_code
│ │ ├── lineno: 111
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_malformed_code
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001559099182486534
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00018543400801718235
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 114
│ │ │ │ └── message: File "<string>", line 1
│ │ │ │ def bad(:
│ │ │ │ ^
│ │ │ │ SyntaxError: invalid syntax
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 114
│ │ │ │ └── message: SyntaxError
│ │ │ └── longrepr: def test_malformed_code():
│ │ │ # SyntaxError when executing malformed Python code
│ │ │ > exec("def bad(:\n pass")
│ │ │ E File "<string>", line 1
│ │ │ E def bad(:
│ │ │ E ^
│ │ │ E SyntaxError: invalid syntax
│ │ │
│ │ │ tests/test_math_utils.py:114: SyntaxError
│ │ └── teardown
│ │ ├── duration: 0.0001730069052428007
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_sys_exit
│ │ ├── lineno: 115
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_sys_exit
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001277630217373371
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00017202692106366158
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 118
│ │ │ │ └── message: SystemExit: 1
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 118
│ │ │ │ └── message: SystemExit
│ │ │ └── longrepr: def test_sys_exit():
│ │ │ # Simulate SystemExit via sys.exit
│ │ │ > sys.exit(1)
│ │ │ E SystemExit: 1
│ │ │
│ │ │ tests/test_math_utils.py:118: SystemExit
│ │ └── teardown
│ │ ├── duration: 0.00013296399265527725
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_broken_function
│ │ ├── lineno: 119
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_broken_function
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011862791143357754
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00015087611973285675
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 123
│ │ │ │ └── message: TypeError: Broken function
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ │ ├── lineno: 124
│ │ │ │ │ └── message:
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 123
│ │ │ │ └── message: TypeError
│ │ │ └── longrepr: def test_broken_function():
│ │ │ # Simulate broken function raising TypeError
│ │ │ def broken_func(*args, **kwargs):
│ │ │ raise TypeError("Broken function")
│ │ │ > broken_func()
│ │ │
│ │ │ tests/test_math_utils.py:124:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ args = (), kwargs = {}
│ │ │
│ │ │ def broken_func(*args, **kwargs):
│ │ │ > raise TypeError("Broken function")
│ │ │ E TypeError: Broken function
│ │ │
│ │ │ tests/test_math_utils.py:123: TypeError
│ │ └── teardown
│ │ ├── duration: 0.00013840594328939915
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_import_error
│ │ ├── lineno: 125
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_import_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011608609929680824
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00015037599951028824
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_math_utils.py
│ │ │ │ ├── lineno: 128
│ │ │ │ └── message: ImportError: Simulated ImportError
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ ├── lineno: 128
│ │ │ │ └── message: ImportError
│ │ │ └── longrepr: def test_import_error():
│ │ │ # Directly raise ImportError exception
│ │ │ > raise ImportError("Simulated ImportError")
│ │ │ E ImportError: Simulated ImportError
│ │ │
│ │ │ tests/test_math_utils.py:128: ImportError
│ │ └── teardown
│ │ ├── duration: 0.00013322709128260612
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_math_utils.py::test_module_not_found_error
│ │ ├── lineno: 129
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_module_not_found_error
│ │ │ ├── test_math_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00012682913802564144
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0004667481407523155
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: <frozen importlib._bootstrap>
│ │ │ │ ├── lineno: 973
│ │ │ │ └── message: ModuleNotFoundError: No module named
│ │ │ │ 'non_existent_module_xyz'
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_math_utils.py
│ │ │ │ │ ├── lineno: 132
│ │ │ │ │ └── message:
│ │ │ │ ├── -
│ │ │ │ │ ├── path:
│ │ │ │ │ │ .pixi/envs/default/lib/python3.8/importlib/__init__.py
│ │ │ │ │ ├── lineno: 127
│ │ │ │ │ └── message: in import_module
│ │ │ │ ├── -
│ │ │ │ │ ├── path: <frozen importlib._bootstrap>
│ │ │ │ │ ├── lineno: 1014
│ │ │ │ │ └── message: in _gcd_import
│ │ │ │ ├── -
│ │ │ │ │ ├── path: <frozen importlib._bootstrap>
│ │ │ │ │ ├── lineno: 991
│ │ │ │ │ └── message: in _find_and_load
│ │ │ │ └── -
│ │ │ │ ├── path: <frozen importlib._bootstrap>
│ │ │ │ ├── lineno: 973
│ │ │ │ └── message: ModuleNotFoundError
│ │ │ └── longrepr: def test_module_not_found_error():
│ │ │ # Raises ModuleNotFoundError (subclass of ImportError)
│ │ │ for missing module
│ │ │ > importlib.import_module("non_existent_module_xyz")
│ │ │
│ │ │ tests/test_math_utils.py:132:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │ .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in
│ │ │ import_module
│ │ │ return _bootstrap._gcd_import(name, package, level)
│ │ │ <frozen importlib._bootstrap>:1014: in _gcd_import
│ │ │ ???
│ │ │ <frozen importlib._bootstrap>:991: in _find_and_load
│ │ │ ???
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ name = 'non_existent_module_xyz'
│ │ │ import_ = <function _gcd_import at 0x7f46582ab4c0>
│ │ │
│ │ │ > ???
│ │ │ E ModuleNotFoundError: No module named
│ │ │ 'non_existent_module_xyz'
│ │ │
│ │ │ <frozen importlib._bootstrap>:973: ModuleNotFoundError
│ │ └── teardown
│ │ ├── duration: 0.00014841812662780285
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_basic_ids
│ │ ├── lineno: 3
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_basic_ids
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── one
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0002442058175802231
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001374250277876854
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00013315817341208458
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_basic_ids
│ │ ├── lineno: 3
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_basic_ids
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── two
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00018523097969591618
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00012714113108813763
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001241189893335104
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_with_reason_and_marks
│ │ ├── lineno: 11
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_with_reason_and_marks
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── ten
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001629700418561697
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001207590103149414
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00010932702571153641
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_with_reason_and_marks
│ │ ├── lineno: 11
│ │ ├── outcome: skipped
│ │ ├── keywords
│ │ │ ├── test_with_reason_and_marks
│ │ │ ├── parametrize
│ │ │ ├── skip
│ │ │ ├── pytestmark
│ │ │ ├── twenty
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0002305211964994669
│ │ │ ├── outcome: skipped
│ │ │ └── longrepr: ('/workspace/tligui_y/slic/tests/test_param.py', 12,
│ │ │ 'Skipped: nope')
│ │ └── teardown
│ │ ├── duration: 0.0001095819752663374
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_multiple_positional_args[1-2]
│ │ ├── lineno: 19
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_multiple_positional_args[1-2]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 1-2
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00022646505385637283
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001257800031453371
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001227930188179016
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_multiple_positional_args[3-4]
│ │ ├── lineno: 19
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_multiple_positional_args[3-4]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 3-4
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00020934292115271091
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00012428313493728638
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001221878919750452
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_non_literal_with_id
│ │ ├── lineno: 27
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_non_literal_with_id
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── custom-obj
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00017368188127875328
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00012485100887715816
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011228304356336594
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_timedistance_v1
│ │ ├── lineno: 43
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_timedistance_v1
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── a0-b0-expected0
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0002495748922228813
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00012239092029631138
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001411831472069025
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_timedistance_v1
│ │ ├── lineno: 43
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_timedistance_v1
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── a1-b1-expected1
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00025183381512761116
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001275939866900444
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00012988620437681675
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_sum_positive
│ │ ├── lineno: 55
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_sum_positive
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── one
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00021187192760407925
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00012215296737849712
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00012564309872686863
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_sum_positive
│ │ ├── lineno: 55
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_sum_positive
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── two
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00023218290880322456
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001246519386768341
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00012002512812614441
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_sum_positive
│ │ ├── lineno: 55
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_sum_positive
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── edge
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00020181690342724323
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0002511769998818636
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_param.py
│ │ │ │ ├── lineno: 58
│ │ │ │ └── message: assert (-1 + -1) >= 0
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_param.py
│ │ │ │ ├── lineno: 58
│ │ │ │ └── message: AssertionError
│ │ │ └── longrepr: x = -1, y = -1
│ │ │
│ │ │ @pytest.mark.parametrize("x, y", [(param["x"], param["y"])
│ │ │ for _, param in scenarios], ids=)
│ │ │ def test_sum_positive(x, y):
│ │ │ > assert (x + y) >= 0
│ │ │ E assert (-1 + -1) >= 0
│ │ │
│ │ │ tests/test_param.py:58: AssertionError
│ │ └── teardown
│ │ ├── duration: 0.00017045391723513603
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_dynamic
│ │ ├── lineno: 65
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_dynamic
│ │ │ ├── ten
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001841471530497074
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00012887688353657722
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011754082515835762
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_dynamic
│ │ ├── lineno: 65
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_dynamic
│ │ │ ├── twenty
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00016175792552530766
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001264750026166439
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011478317901492119
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_dynamic
│ │ ├── lineno: 65
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_dynamic
│ │ │ ├── thirty
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00015746918506920338
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00011882302351295948
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011976715177297592
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_element_type[\U0001f525]
│ │ ├── lineno: 74
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_element_type[\U0001f525]
│ │ │ ├── \U0001f525
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00016128900460898876
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00012357579544186592
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011158897541463375
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_element_type[\U0001f4a7]
│ │ ├── lineno: 74
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_element_type[\U0001f4a7]
│ │ │ ├── \U0001f4a7
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00015907897613942623
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00011821999214589596
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001072390004992485
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_element_type[\U0001f30d]
│ │ ├── lineno: 74
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_element_type[\U0001f30d]
│ │ │ ├── \U0001f30d
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.000163292046636343
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00011593499220907688
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00010616285726428032
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_combination
│ │ ├── lineno: 78
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_combination
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── a-1
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00020413589663803577
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00012762704864144325
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00012224819511175156
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_combination
│ │ ├── lineno: 78
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_combination
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── a-2
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001988599542528391
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00011959811672568321
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011924607679247856
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_combination
│ │ ├── lineno: 78
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_combination
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── b-1
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00020448514260351658
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.000125393969938159
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00012157694436609745
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_combination
│ │ ├── lineno: 78
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_combination
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── b-2
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00019445782527327538
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001366769429296255
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.0001191399060189724
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_indirect_fixture[1]
│ │ ├── lineno: 89
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_indirect_fixture[1]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 1
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00016290508210659027
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001243001315742731
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011174706742167473
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_indirect_fixture[2]
│ │ ├── lineno: 89
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_indirect_fixture[2]
│ │ │ ├── parametrize
│ │ │ ├── pytestmark
│ │ │ ├── 2
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001549671869724989
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00011884607374668121
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011124880984425545
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_addition
│ │ ├── lineno: 94
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_addition
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00010213116183876991
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001375058200210333
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_param.py
│ │ │ │ ├── lineno: 97
│ │ │ │ └── message: NameError: name 'addition' is not defined
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_param.py
│ │ │ │ ├── lineno: 97
│ │ │ │ └── message: NameError
│ │ │ └── longrepr: a = 5, b = 5, expected = 10
│ │ │
│ │ │ def test_addition(a = 5, b = 5, expected = 10):
│ │ │ # Has to pass
│ │ │ > assert addition(a, b) == expected
│ │ │ E NameError: name 'addition' is not defined
│ │ │
│ │ │ tests/test_param.py:97: NameError
│ │ └── teardown
│ │ ├── duration: 0.00013691699132323265
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_param.py::test_basic_error
│ │ ├── lineno: 99
│ │ ├── outcome: error
│ │ ├── keywords
│ │ │ ├── test_basic_error
│ │ │ ├── test_param.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.0001480488572269678
│ │ │ ├── outcome: failed
│ │ │ └── longrepr: file /workspace/tligui_y/slic/tests/test_param.py,
│ │ │ line 100
│ │ │ def test_basic_error(x):
│ │ │ E fixture 'x' not found
│ │ │ > available fixtures: cache, capfd, capfdbinary, caplog,
│ │ │ capsys, capsysbinary, complex_setup, cov, doctest_namespace,
│ │ │ element, extra, extras, include_metadata_in_junit_xml,
│ │ │ json_metadata, metadata, monkeypatch, no_cover, pytestconfig,
│ │ │ record_property, record_testsuite_property,
│ │ │ record_xml_attribute, recwarn, tmp_path, tmp_path_factory,
│ │ │ tmpdir, tmpdir_factory
│ │ │ > use 'pytest --fixtures ' for help on them.
│ │ │
│ │ │ /workspace/tligui_y/slic/tests/test_param.py:100
│ │ └── teardown
│ │ ├── duration: 0.00011697201989591122
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_string_utils.py::test_uppercase_normal
│ │ ├── lineno: 9
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_uppercase_normal
│ │ │ ├── test_string_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011956715025007725
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001406688243150711
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00010104989632964134
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_string_utils.py::test_uppercase_type_error
│ │ ├── lineno: 13
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_uppercase_type_error
│ │ │ ├── test_string_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00010715401731431484
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014039897359907627
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/functions/string_utils.py
│ │ │ │ ├── lineno: 3
│ │ │ │ └── message: TypeError: Input cannot be None
│ │ │ ├── traceback
│ │ │ │ ├── -
│ │ │ │ │ ├── path: tests/test_string_utils.py
│ │ │ │ │ ├── lineno: 16
│ │ │ │ │ └── message:
│ │ │ │ └── -
│ │ │ │ ├── path: functions/string_utils.py
│ │ │ │ ├── lineno: 3
│ │ │ │ └── message: TypeError
│ │ │ └── longrepr: def test_uppercase_type_error():
│ │ │ # TypeError when input is None (invalid input)
│ │ │ > uppercase(None)
│ │ │
│ │ │ tests/test_string_utils.py:16:
│ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
│ │ │ _ _ _ _ _ _ _ _
│ │ │
│ │ │ s = None
│ │ │
│ │ │ def uppercase(s):
│ │ │ if s is None:
│ │ │ > raise TypeError("Input cannot be None")
│ │ │ E TypeError: Input cannot be None
│ │ │
│ │ │ functions/string_utils.py:3: TypeError
│ │ └── teardown
│ │ ├── duration: 0.00014745001681149006
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_string_utils.py::test_reverse_string
│ │ ├── lineno: 17
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_reverse_string
│ │ │ ├── test_string_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00012111011892557144
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001391430851072073
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00011099805124104023
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_string_utils.py::test_warning_emit
│ │ ├── lineno: 21
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_warning_emit
│ │ │ ├── test_string_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00010522408410906792
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014200713485479355
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 9.662401862442493e-05
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_string_utils.py::test_unicode_decode_error
│ │ ├── lineno: 25
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_unicode_decode_error
│ │ │ ├── test_string_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00010338891297578812
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0001396569423377514
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_string_utils.py
│ │ │ │ ├── lineno: 28
│ │ │ │ └── message: UnicodeDecodeError: 'utf-8' codec can't decode byte
│ │ │ │ 0xff in position 0: invalid start byte
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_string_utils.py
│ │ │ │ ├── lineno: 28
│ │ │ │ └── message: UnicodeDecodeError
│ │ │ └── longrepr: def test_unicode_decode_error():
│ │ │ # UnicodeDecodeError when decoding invalid byte sequence
│ │ │ > b'\xff'.decode('utf-8')
│ │ │ E UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff
│ │ │ in position 0: invalid start byte
│ │ │
│ │ │ tests/test_string_utils.py:28: UnicodeDecodeError
│ │ └── teardown
│ │ ├── duration: 0.00012978003360331059
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid:
│ │ │ tests/test_string_utils.py::test_unicode_decode_surrogateescape
│ │ ├── lineno: 29
│ │ ├── outcome: failed
│ │ ├── keywords
│ │ │ ├── test_unicode_decode_surrogateescape
│ │ │ ├── test_string_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00013086479157209396
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00015064002946019173
│ │ │ ├── outcome: failed
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_string_utils.py
│ │ │ │ ├── lineno: 32
│ │ │ │ └── message: UnicodeDecodeError: 'utf-8' codec can't decode byte
│ │ │ │ 0x80 in position 0: invalid start byte
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_string_utils.py
│ │ │ │ ├── lineno: 32
│ │ │ │ └── message: UnicodeDecodeError
│ │ │ └── longrepr: def test_unicode_decode_surrogateescape():
│ │ │ # UnicodeDecodeError with strict error handler on
│ │ │ invalid byte
│ │ │ > b"\x80".decode("utf-8", errors="strict")
│ │ │ E UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80
│ │ │ in position 0: invalid start byte
│ │ │
│ │ │ tests/test_string_utils.py:32: UnicodeDecodeError
│ │ └── teardown
│ │ ├── duration: 0.00013115303590893745
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_string_utils.py::test_syntax_warning
│ │ ├── lineno: 33
│ │ ├── outcome: passed
│ │ ├── keywords
│ │ │ ├── test_syntax_warning
│ │ │ ├── test_string_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00011464487761259079
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.00014321994967758656
│ │ │ └── outcome: passed
│ │ └── teardown
│ │ ├── duration: 0.00010527088306844234
│ │ └── outcome: passed
│ ├── -
│ │ ├── nodeid: tests/test_string_utils.py::test_xfail_uppercase_digits
│ │ ├── lineno: 37
│ │ ├── outcome: xfailed
│ │ ├── keywords
│ │ │ ├── test_xfail_uppercase_digits
│ │ │ ├── xfail
│ │ │ ├── pytestmark
│ │ │ ├── test_string_utils.py
│ │ │ ├── tests
│ │ │ ├── slic
│ │ │ └──
│ │ ├── setup
│ │ │ ├── duration: 0.00012233597226440907
│ │ │ └── outcome: passed
│ │ ├── call
│ │ │ ├── duration: 0.0006404821760952473
│ │ │ ├── outcome: skipped
│ │ │ ├── crash
│ │ │ │ ├── path: /workspace/tligui_y/slic/tests/test_string_utils.py
│ │ │ │ ├── lineno: 41
│ │ │ │ └── message: AssertionError: assert 'ABC123' == 'ABC1234'
│ │ │ │
│ │ │ │ - ABC1234
│ │ │ │ ? -
│ │ │ │ + ABC123
│ │ │ ├── traceback
│ │ │ │ └── -
│ │ │ │ ├── path: tests/test_string_utils.py
│ │ │ │ ├── lineno: 41
│ │ │ │ └── message: AssertionError
│ │ │ └── longrepr: @pytest.mark.xfail(reason="Expected failure: uppercase
│ │ │ does not handle digits")
│ │ │ def test_xfail_uppercase_digits():
│ │ │ # Expected fail test because uppercase won't change
│ │ │ digits
│ │ │ > assert uppercase("abc123") == "ABC1234"
│ │ │ E AssertionError: assert 'ABC123' == 'ABC1234'
│ │ │ E
│ │ │ E - ABC1234
│ │ │ E ? -
│ │ │ E + ABC123
│ │ │
│ │ │ tests/test_string_utils.py:41: AssertionError
│ │ └── teardown
│ │ ├── duration: 0.00013234512880444527
│ │ └── outcome: passed
│ └── -
│ ├── nodeid: tests/test_string_utils.py::test_keyboard_interrupt_direct
│ ├── lineno: 49
│ ├── outcome: passed
│ ├── keywords
│ │ ├── test_keyboard_interrupt_direct
│ │ ├── test_string_utils.py
│ │ ├── tests
│ │ ├── slic
│ │ └──
│ └── setup
│ ├── duration: 0.00011658016592264175
│ └── outcome: passed
└── warnings
├── -
│ ├── message: Test warning
│ ├── category: UserWarning
│ ├── when: runtest
│ ├── filename: /workspace/tligui_y/slic/tests/test_string_utils.py
│ └── lineno: 24
└── -
├── message: This is a syntax warning
├── category: SyntaxWarning
├── when: runtest
├── filename: /workspace/tligui_y/slic/tests/test_string_utils.py
└── lineno: 36