diff --git a/ci-reports/markdown/TEST-REPORT.md b/ci-reports/markdown/TEST-REPORT.md index 7fb3235c7..27f599fc6 100644 --- a/ci-reports/markdown/TEST-REPORT.md +++ b/ci-reports/markdown/TEST-REPORT.md @@ -6,6 +6,53 @@ ๐Ÿ“‹ Short test summary info ``` +=========================== short test summary info ============================ +FAILED tests/test_io_utils.py::test_cause_io_error - OSError: Forced IO Error for testing +FAILED tests/test_io_utils.py::test_file_not_found - FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file' +FAILED tests/test_io_utils.py::test_permission_error - PermissionError: Permission denied +FAILED tests/test_io_utils.py::test_mock_open_error - OSError: Mocked IOError +FAILED tests/test_io_utils.py::test_file_handle_closed_error - ValueError: I/O operation on closed file +FAILED tests/test_io_utils.py::test_os_error - OSError: Simulated OSError +FAILED tests/test_io_utils.py::test_file_not_found_error - FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt' +FAILED tests/test_math_utils.py::test_broken - NameError: name 'want_the_test_to_fail' is not defined +FAILED tests/test_math_utils.py::test_call_missing_function - AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function' +FAILED tests/test_math_utils.py::test_addition_pass[3-4-8] - assert 7 == 8 + + where 7 = addition(3, 4) +FAILED tests/test_math_utils.py::test_addition_pass[3-4-9] - assert 7 == 9 + + where 7 = addition(3, 4) +FAILED tests/test_math_utils.py::test_addition_fail - assert 4 == 5 + + where 4 = addition(2, 2) +FAILED tests/test_math_utils.py::test_division_zero - ZeroDivisionError: division by zero +FAILED tests/test_math_utils.py::test_runtime_error - RuntimeError: Forced runtime error +FAILED tests/test_math_utils.py::test_memory_error - MemoryError: Simulated memory error +FAILED tests/test_math_utils.py::test_timeout_error - TimeoutError: Simulated timeout error +FAILED tests/test_math_utils.py::test_recursion_error - RecursionError: maximum recursion depth exceeded +FAILED tests/test_math_utils.py::test_floating_point_error - FloatingPointError: Simulated floating point error +FAILED tests/test_math_utils.py::test_floating_point_overflow - OverflowError: math range error +FAILED tests/test_math_utils.py::test_value_error - ValueError: invalid literal for int() with base 10: 'invalid' +FAILED tests/test_math_utils.py::test_type_error - TypeError: 'int' object is not iterable +FAILED tests/test_math_utils.py::test_unhandled_exception - Exception: Generic unhandled exception +FAILED tests/test_math_utils.py::test_custom_error - test_math_utils.CustomError: Custom error simulation +FAILED tests/test_math_utils.py::test_stop_iteration_direct - RuntimeError: generator raised StopIteration +FAILED tests/test_math_utils.py::test_generator_exit_direct - GeneratorExit +FAILED tests/test_math_utils.py::test_recursion_limit - RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low +FAILED tests/test_math_utils.py::test_malformed_code - File "", line 1 + def bad(: + ^ +SyntaxError: invalid syntax +FAILED tests/test_math_utils.py::test_sys_exit - SystemExit: 1 +FAILED tests/test_math_utils.py::test_broken_function - TypeError: Broken function +FAILED tests/test_math_utils.py::test_import_error_patch - ImportError: Simulated ImportError +FAILED tests/test_math_utils.py::test_module_not_found_error - ModuleNotFoundError: No module named 'non_existent_module_xyz' +FAILED tests/test_string_utils.py::test_uppercase_type_error - TypeError: Input cannot be None +FAILED tests/test_string_utils.py::test_unicode_decode_error - UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte +FAILED tests/test_string_utils.py::test_unicode_decode_surrogateescape - UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte +ERROR tests/test_broken_fct.py +ERROR tests/test_collector_error.py +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +/workspace/tligui_y/slic/tests/test_string_utils.py:43: KeyboardInterrupt +(to show a full traceback on KeyboardInterrupt use --full-trace) +======== 34 failed, 10 passed, 2 xfailed, 1 warning, 2 errors in 0.75s ========= ``` @@ -13,26 +60,629 @@ ๐Ÿชต Full raw pytest log ``` -ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...] -pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-result.log - inifile: None - rootdir: /workspace/tligui_y/slic +============================= test session starts ============================== +platform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0 +rootdir: /workspace/tligui_y/slic +plugins: cov-5.0.0, allure-pytest-2.13.5, metadata-3.1.1, html-4.1.1, json-report-1.5.0, md-report-0.6.2 +collected 47 items / 2 errors +tests/test_io_utils.py ..FFFFFF.F +tests/test_math_utils.py FF...FFFFxFFFFFFFFFFFFFFFFFF +tests/test_string_utils.py .F..FF.x + +==================================== ERRORS ==================================== +__________________ ERROR collecting tests/test_broken_fct.py ___________________ +.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:587: 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[level:], package, level) +:1014: in _gcd_import + ??? +:991: in _find_and_load + ??? +:975: in _find_and_load_unlocked + ??? +:671: in _load_unlocked + ??? +.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module + source_stat, co = _rewrite_test(fn, self.config) +.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.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 +________________ ERROR collecting tests/test_collector_error.py ________________ +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[level:], package, level) +tests/test_collector_error.py:1: in + from no_existing_module.math_utils import * +E ModuleNotFoundError: No module named 'no_existing_module' +=================================== FAILURES =================================== +_____________________________ test_cause_io_error ______________________________ + + 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 +_____________________________ test_file_not_found ______________________________ + + 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 +____________________________ test_permission_error _____________________________ + +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa4939031c0> + + 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 +_____________________________ test_mock_open_error _____________________________ + +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa49390c790> + + 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 = +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 +________________________ test_file_handle_closed_error _________________________ + + 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 +________________________________ test_os_error _________________________________ + +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa490f028e0> + + 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 +__________________________ test_file_not_found_error ___________________________ + + 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:69: FileNotFoundError +_________________________________ test_broken __________________________________ + + 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 +__________________________ test_call_missing_function __________________________ + + 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 +__________________________ test_addition_pass[3-4-8] ___________________________ + +a = 3, b = 4, expected = 8 + + @pytest.mark.parametrize( + "a, b, expected", + [ + (2, 2, 4), + (1, 5, 6), + (3, 4, 7), + (3, 4, 8), + (3, 4, 9), + ] + ) + def test_addition_pass(a, b, expected): +> assert addition(a, b) == expected +E assert 7 == 8 +E + where 7 = addition(3, 4) + +tests/test_math_utils.py:33: AssertionError +__________________________ test_addition_pass[3-4-9] ___________________________ + +a = 3, b = 4, expected = 9 + + @pytest.mark.parametrize( + "a, b, expected", + [ + (2, 2, 4), + (1, 5, 6), + (3, 4, 7), + (3, 4, 8), + (3, 4, 9), + ] + ) + def test_addition_pass(a, b, expected): +> assert addition(a, b) == expected +E assert 7 == 9 +E + where 7 = addition(3, 4) + +tests/test_math_utils.py:33: AssertionError +______________________________ test_addition_fail ______________________________ + + 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:37: AssertionError +______________________________ test_division_zero ______________________________ + + def test_division_zero(): + # Will raise ZeroDivisionError if not handled in division +> division(1, 0) + +tests/test_math_utils.py:41: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +a = 1, b = 0 + + def division(a, b): +> return a / b +E ZeroDivisionError: division by zero + +functions/math_utils.py:5: ZeroDivisionError +______________________________ test_runtime_error ______________________________ + + def test_runtime_error(): + # Test raises an uncaught RuntimeError +> raise RuntimeError("Forced runtime error") +E RuntimeError: Forced runtime error + +tests/test_math_utils.py:50: RuntimeError +______________________________ test_memory_error _______________________________ + + 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:54: MemoryError +______________________________ test_timeout_error ______________________________ + + 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:58: TimeoutError +_____________________________ test_recursion_error _____________________________ + + def test_recursion_error(): + # Infinite recursion triggers RecursionError + def recursive(): + return recursive() +> recursive() + +tests/test_math_utils.py:64: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/test_math_utils.py:63: in recursive + return recursive() +tests/test_math_utils.py:63: in recursive + return recursive() +E RecursionError: maximum recursion depth exceeded +!!! Recursion detected (same locals & position) +__________________________ test_floating_point_error ___________________________ + + def test_floating_point_error(): + # Manually raise FloatingPointError (rare in practice) +> raise FloatingPointError("Simulated floating point error") +E FloatingPointError: Simulated floating point error + +tests/test_math_utils.py:68: FloatingPointError +_________________________ test_floating_point_overflow _________________________ + + def test_floating_point_overflow(): + # Exponential overflow triggers OverflowError +> math.exp(1000) +E OverflowError: math range error + +tests/test_math_utils.py:72: OverflowError +_______________________________ test_value_error _______________________________ + + 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:76: ValueError +_______________________________ test_type_error ________________________________ + + def test_type_error(): + # TypeError when passing wrong argument type to sum +> sum(5) +E TypeError: 'int' object is not iterable + +tests/test_math_utils.py:80: TypeError +___________________________ test_unhandled_exception ___________________________ + + def test_unhandled_exception(): + # Raises generic unhandled Exception +> raise Exception("Generic unhandled exception") +E Exception: Generic unhandled exception + +tests/test_math_utils.py:84: Exception +______________________________ test_custom_error _______________________________ + + 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:88: CustomError +__________________________ test_stop_iteration_direct __________________________ + + def test_stop_iteration_direct(): + # Directly raise StopIteration exception +> raise StopIteration() +E StopIteration + +tests/test_math_utils.py:92: StopIteration + +The above exception was the direct cause of the following exception: + +cls = +func = . at 0x7fa490f91160> +when = 'call' +reraise = (, ) + + @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: 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.py:120: in _hookexec + return self._inner_hookexec(hook_name, methods, kwargs, firstresult) +.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call + yield from thread_exception_runtest_hook() +.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook + yield +.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call + yield from unraisable_exception_runtest_hook() +.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook + yield +.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:846: in pytest_runtest_call + yield from self._runtest_for(item, "call") +.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:829: in _runtest_for + yield +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +self = _capture_fixture=None> +item = + + @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.py:880: RuntimeError +__________________________ test_generator_exit_direct __________________________ + + def test_generator_exit_direct(): + # Directly raise GeneratorExit exception +> raise GeneratorExit() +E GeneratorExit + +tests/test_math_utils.py:96: GeneratorExit +_____________________________ test_recursion_limit _____________________________ + + def test_recursion_limit(): + # Lower recursion limit to force RecursionError on deep recursion + original_limit = sys.getrecursionlimit() +> sys.setrecursionlimit(50) +E RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low + +tests/test_math_utils.py:101: RecursionError +_____________________________ test_malformed_code ______________________________ + + def test_malformed_code(): + # SyntaxError when executing malformed Python code +> exec("def bad(:\n pass") +E File "", line 1 +E def bad(: +E ^ +E SyntaxError: invalid syntax + +tests/test_math_utils.py:111: SyntaxError +________________________________ test_sys_exit _________________________________ + + def test_sys_exit(): + # Simulate SystemExit via sys.exit +> sys.exit(1) +E SystemExit: 1 + +tests/test_math_utils.py:115: SystemExit +_____________________________ test_broken_function _____________________________ + + 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:121: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +args = (), kwargs = {} + + def broken_func(*args, **kwargs): +> raise TypeError("Broken function") +E TypeError: Broken function + +tests/test_math_utils.py:120: TypeError +___________________________ test_import_error_patch ____________________________ + + def test_import_error_patch(): + # Patch import to simulate ImportError on specific module + original_import = __import__ + def fake_import(name, *args, **kwargs): + if name == "fake_module": + raise ImportError("Simulated ImportError") + return original_import(name, *args, **kwargs) + import builtins + builtins.__import__, old_import = fake_import, builtins.__import__ + try: +> __import__("fake_module") + +tests/test_math_utils.py:133: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +name = 'fake_module', args = (), kwargs = {} + + def fake_import(name, *args, **kwargs): + if name == "fake_module": +> raise ImportError("Simulated ImportError") +E ImportError: Simulated ImportError + +tests/test_math_utils.py:128: ImportError +_________________________ test_module_not_found_error __________________________ + + 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:139: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module + return _bootstrap._gcd_import(name[level:], package, level) +:1014: in _gcd_import + ??? +:991: in _find_and_load + ??? +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +name = 'non_existent_module_xyz' +import_ = + +> ??? +E ModuleNotFoundError: No module named 'non_existent_module_xyz' + +:973: ModuleNotFoundError +__________________________ test_uppercase_type_error ___________________________ + + def test_uppercase_type_error(): + # TypeError when input is None (invalid input) +> uppercase(None) + +tests/test_string_utils.py:14: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +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 +__________________________ test_unicode_decode_error ___________________________ + + 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:26: UnicodeDecodeError +_____________________ test_unicode_decode_surrogateescape ______________________ + + 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:30: UnicodeDecodeError +=============================== warnings summary =============================== +tests/test_string_utils.py::test_warning_emit + /workspace/tligui_y/slic/tests/test_string_utils.py:22: UserWarning: Test warning + warnings.warn("Test warning", UserWarning) + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +--------------------------------- JSON report ---------------------------------- +report saved to: ci-reports/markdown/pytest-report.json + +---------- coverage: platform linux, python 3.8.20-final-0 ----------- +Coverage HTML written to dir ci-reports/coverage/ +Coverage XML written to file ci-reports/coverage/coverage.xml + +=========================== short test summary info ============================ +FAILED tests/test_io_utils.py::test_cause_io_error - OSError: Forced IO Error for testing +FAILED tests/test_io_utils.py::test_file_not_found - FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file' +FAILED tests/test_io_utils.py::test_permission_error - PermissionError: Permission denied +FAILED tests/test_io_utils.py::test_mock_open_error - OSError: Mocked IOError +FAILED tests/test_io_utils.py::test_file_handle_closed_error - ValueError: I/O operation on closed file +FAILED tests/test_io_utils.py::test_os_error - OSError: Simulated OSError +FAILED tests/test_io_utils.py::test_file_not_found_error - FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt' +FAILED tests/test_math_utils.py::test_broken - NameError: name 'want_the_test_to_fail' is not defined +FAILED tests/test_math_utils.py::test_call_missing_function - AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function' +FAILED tests/test_math_utils.py::test_addition_pass[3-4-8] - assert 7 == 8 + + where 7 = addition(3, 4) +FAILED tests/test_math_utils.py::test_addition_pass[3-4-9] - assert 7 == 9 + + where 7 = addition(3, 4) +FAILED tests/test_math_utils.py::test_addition_fail - assert 4 == 5 + + where 4 = addition(2, 2) +FAILED tests/test_math_utils.py::test_division_zero - ZeroDivisionError: division by zero +FAILED tests/test_math_utils.py::test_runtime_error - RuntimeError: Forced runtime error +FAILED tests/test_math_utils.py::test_memory_error - MemoryError: Simulated memory error +FAILED tests/test_math_utils.py::test_timeout_error - TimeoutError: Simulated timeout error +FAILED tests/test_math_utils.py::test_recursion_error - RecursionError: maximum recursion depth exceeded +FAILED tests/test_math_utils.py::test_floating_point_error - FloatingPointError: Simulated floating point error +FAILED tests/test_math_utils.py::test_floating_point_overflow - OverflowError: math range error +FAILED tests/test_math_utils.py::test_value_error - ValueError: invalid literal for int() with base 10: 'invalid' +FAILED tests/test_math_utils.py::test_type_error - TypeError: 'int' object is not iterable +FAILED tests/test_math_utils.py::test_unhandled_exception - Exception: Generic unhandled exception +FAILED tests/test_math_utils.py::test_custom_error - test_math_utils.CustomError: Custom error simulation +FAILED tests/test_math_utils.py::test_stop_iteration_direct - RuntimeError: generator raised StopIteration +FAILED tests/test_math_utils.py::test_generator_exit_direct - GeneratorExit +FAILED tests/test_math_utils.py::test_recursion_limit - RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low +FAILED tests/test_math_utils.py::test_malformed_code - File "", line 1 + def bad(: + ^ +SyntaxError: invalid syntax +FAILED tests/test_math_utils.py::test_sys_exit - SystemExit: 1 +FAILED tests/test_math_utils.py::test_broken_function - TypeError: Broken function +FAILED tests/test_math_utils.py::test_import_error_patch - ImportError: Simulated ImportError +FAILED tests/test_math_utils.py::test_module_not_found_error - ModuleNotFoundError: No module named 'non_existent_module_xyz' +FAILED tests/test_string_utils.py::test_uppercase_type_error - TypeError: Input cannot be None +FAILED tests/test_string_utils.py::test_unicode_decode_error - UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte +FAILED tests/test_string_utils.py::test_unicode_decode_surrogateescape - UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte +ERROR tests/test_broken_fct.py +ERROR tests/test_collector_error.py +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +/workspace/tligui_y/slic/tests/test_string_utils.py:43: KeyboardInterrupt +(to show a full traceback on KeyboardInterrupt use --full-trace) +======== 34 failed, 10 passed, 2 xfailed, 1 warning, 2 errors in 0.75s ========= ``` --- # ๐Ÿงช Test Report -*Generated on 2025-07-15 12:07:34* +*Generated on 2025-07-15 12:10:23* ## ๐Ÿ“‹ Summary - **Passed**: `11` -- **Failed**: `32` +- **Failed**: `34` - **Xfailed**: `2` -- **Total**: `45` -- **Collected**: `45` -- **Total Duration**: `0.756`s +- **Total**: `47` +- **Collected**: `47` +- **Total Duration**: `0.748`s ## ๐Ÿ”Ž Tests
@@ -52,7 +702,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r โœ… #1 - **Status:** โœ… `passed` -- **Duration:** `0.000512` s +- **Duration:** `0.000473` s ### ๐Ÿ”ง Setup Phase @@ -61,7 +711,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.003886540071107447` +`0.003822325961664319` ``` @@ -86,7 +736,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0005122700240463018` +`0.0004731599474325776` ``` @@ -111,7 +761,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0015452760271728039` +`0.0015275080222636461` ``` @@ -145,7 +795,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r โœ… #2 - **Status:** โœ… `passed` -- **Duration:** `0.000360` s +- **Duration:** `0.000344` s ### ๐Ÿ”ง Setup Phase @@ -154,7 +804,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0006821609567850828` +`0.0006986999651417136` ``` @@ -179,7 +829,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00036035897210240364` +`0.00034403405152261257` ``` @@ -204,7 +854,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0007149169687181711` +`0.0007337200222536922` ``` @@ -238,7 +888,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r โœ… #9 - **Status:** โœ… `passed` -- **Duration:** `0.000867` s +- **Duration:** `0.000907` s ### ๐Ÿ”ง Setup Phase @@ -247,7 +897,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0008433919865638018` +`0.0008289159741252661` ``` @@ -272,7 +922,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0008674510754644871` +`0.0009067070204764605` ``` @@ -297,7 +947,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0007228100439533591` +`0.0006893279496580362` ``` @@ -339,7 +989,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r โœ… #13 parameters: [2-2-4] - **Status:** โœ… `passed` -- **Duration:** `0.000213` s +- **Duration:** `0.000211` s - **Parameters:** `2-2-4` ### ๐Ÿ”ง Setup Phase @@ -349,7 +999,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0015680079814046621` +`0.0014849449507892132` ``` @@ -374,7 +1024,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00021250091958791018` +`0.00021066400222480297` ``` @@ -399,7 +1049,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0009148650569841266` +`0.0008995949756354094` ``` @@ -425,7 +1075,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r โœ… #14 parameters: [1-5-6] - **Status:** โœ… `passed` -- **Duration:** `0.000177` s +- **Duration:** `0.000181` s - **Parameters:** `1-5-6` ### ๐Ÿ”ง Setup Phase @@ -435,7 +1085,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0005621860036626458` +`0.0005459169624373317` ``` @@ -460,7 +1110,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00017726700752973557` +`0.00018050405196845531` ``` @@ -485,7 +1135,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0008694909047335386` +`0.0008475949289277196` ``` @@ -511,7 +1161,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r โœ… #15 parameters: [3-4-7] - **Status:** โœ… `passed` -- **Duration:** `0.000171` s +- **Duration:** `0.000174` s - **Parameters:** `3-4-7` ### ๐Ÿ”ง Setup Phase @@ -521,7 +1171,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.000538583961315453` +`0.0005220010643824935` ``` @@ -546,7 +1196,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00017144693993031979` +`0.0001740580191835761` ``` @@ -571,7 +1221,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0008363960077986121` +`0.0008454089984297752` ``` @@ -610,10 +1260,10 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r
-โœ… #37 +โœ… #39 - **Status:** โœ… `passed` -- **Duration:** `0.000182` s +- **Duration:** `0.000171` s ### ๐Ÿ”ง Setup Phase @@ -622,7 +1272,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0002181569579988718` +`0.00018616602756083012` ```
@@ -647,7 +1297,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00018247799016535282` +`0.0001707680057734251` ``` @@ -672,7 +1322,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00019936100579798222` +`0.00020040804520249367` ``` @@ -703,10 +1353,10 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r
-โœ… #39 +โœ… #41 - **Status:** โœ… `passed` -- **Duration:** `0.000168` s +- **Duration:** `0.000164` s ### ๐Ÿ”ง Setup Phase @@ -715,7 +1365,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00019480998162180185` +`0.00018124200869351625` ```
@@ -740,7 +1390,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00016834295820444822` +`0.00016405002679675817` ``` @@ -765,7 +1415,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0001909690909087658` +`0.00020425894763320684` ``` @@ -796,10 +1446,10 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r
-โœ… #40 +โœ… #42 - **Status:** โœ… `passed` -- **Duration:** `0.000214` s +- **Duration:** `0.000176` s ### ๐Ÿ”ง Setup Phase @@ -808,7 +1458,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.0001707619521766901` +`0.00018127495422959328` ```
@@ -833,7 +1483,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00021406100131571293` +`0.00017647596541792154` ``` @@ -858,7 +1508,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00019814400002360344` +`0.00019547308329492807` ``` @@ -889,10 +1539,10 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r
-โœ… #43 +โœ… #45 - **Status:** โœ… `passed` -- **Duration:** `0.000166` s +- **Duration:** `0.000160` s ### ๐Ÿ”ง Setup Phase @@ -901,7 +1551,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00019500392954796553` +`0.00017957400996237993` ```
@@ -926,7 +1576,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00016637297812849283` +`0.00016024906653910875` ``` @@ -951,7 +1601,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00020527606830000877` +`0.00019111600704491138` ``` @@ -982,7 +1632,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r
-โœ… #45 +โœ… #47 - **Status:** โœ… `passed` - **Duration**: `None` @@ -994,7 +1644,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00017736898735165596` +`0.0001809850800782442` ```
@@ -1029,7 +1679,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r
-โŒ Failed (32) +โŒ Failed (34)
@@ -1044,7 +1694,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r โŒ #3 - **Status:** โŒ `failed` -- **Duration:** `0.000190` s +- **Duration:** `0.000187` s ### ๐Ÿ”ง Setup Phase @@ -1053,7 +1703,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00019878591410815716` +`0.00019322102889418602` ```
@@ -1078,7 +1728,7 @@ pytest: error: unrecognized arguments: --result-log=ci-reports/markdown/pytest-r ๐Ÿ“Œ Duration ``` -`0.00018979597371071577` +`0.00018686801195144653` ```
@@ -1147,7 +1797,7 @@ functions/io_utils.py:10: OSError` ๐Ÿ“Œ Duration ``` -`0.00026694906409829855` +`0.0002552029909566045` ``` @@ -1181,7 +1831,7 @@ functions/io_utils.py:10: OSError` โŒ #4 - **Status:** โŒ `failed` -- **Duration:** `0.000212` s +- **Duration:** `0.000206` s ### ๐Ÿ”ง Setup Phase @@ -1190,7 +1840,7 @@ functions/io_utils.py:10: OSError` ๐Ÿ“Œ Duration ``` -`0.0001882440410554409` +`0.0001928760902956128` ``` @@ -1215,7 +1865,7 @@ functions/io_utils.py:10: OSError` ๐Ÿ“Œ Duration ``` -`0.00021169090177863836` +`0.00020632101222872734` ``` @@ -1286,7 +1936,7 @@ functions/io_utils.py:2: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00025147898122668266` +`0.0002504279837012291` ``` @@ -1320,7 +1970,7 @@ functions/io_utils.py:2: FileNotFoundError` โŒ #5 - **Status:** โŒ `failed` -- **Duration:** `0.000227` s +- **Duration:** `0.000215` s ### ๐Ÿ”ง Setup Phase @@ -1329,7 +1979,7 @@ functions/io_utils.py:2: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00044656405225396156` +`0.00038439000491052866` ``` @@ -1354,7 +2004,7 @@ functions/io_utils.py:2: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00022717402316629887` +`0.00021544506307691336` ``` @@ -1398,7 +2048,7 @@ functions/io_utils.py:2: FileNotFoundError` ๐Ÿ“Œ Longrepr ``` -`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0c49b4faf0> +`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa4939031c0> def test_permission_error(monkeypatch): # Patch open to raise PermissionError simulating access denial @@ -1433,7 +2083,7 @@ tests/test_io_utils.py:34: PermissionError` ๐Ÿ“Œ Duration ``` -`0.0007962039671838284` +`0.0006876928964629769` ``` @@ -1467,7 +2117,7 @@ tests/test_io_utils.py:34: PermissionError` โŒ #6 - **Status:** โŒ `failed` -- **Duration:** `0.003490` s +- **Duration:** `0.003318` s ### ๐Ÿ”ง Setup Phase @@ -1476,7 +2126,7 @@ tests/test_io_utils.py:34: PermissionError` ๐Ÿ“Œ Duration ``` -`0.0004201120464131236` +`0.00036767509300261736` ``` @@ -1501,7 +2151,7 @@ tests/test_io_utils.py:34: PermissionError` ๐Ÿ“Œ Duration ``` -`0.0034895610297098756` +`0.00331796205136925` ``` @@ -1545,7 +2195,7 @@ tests/test_io_utils.py:34: PermissionError` ๐Ÿ“Œ Longrepr ``` -`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0c494b4790> +`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa49390c790> def test_mock_open_error(monkeypatch): # Mock open() to raise IOError simulating read error @@ -1562,7 +2212,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ return self._execute_mock_call(*args, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -self = +self = args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError') def _execute_mock_call(self, /, *args, **kwargs): @@ -1589,7 +2239,7 @@ E OSError: Mocked IOError ๐Ÿ“Œ Duration ``` -`0.0012022610753774643` +`0.0012217919575050473` ``` @@ -1623,7 +2273,7 @@ E OSError: Mocked IOError โŒ #7 - **Status:** โŒ `failed` -- **Duration:** `0.000211` s +- **Duration:** `0.000212` s ### ๐Ÿ”ง Setup Phase @@ -1632,7 +2282,7 @@ E OSError: Mocked IOError ๐Ÿ“Œ Duration ``` -`0.0002512119244784117` +`0.00025550602003932` ``` @@ -1657,7 +2307,7 @@ E OSError: Mocked IOError ๐Ÿ“Œ Duration ``` -`0.00021069403737783432` +`0.00021155003923922777` ``` @@ -1722,7 +2372,7 @@ tests/test_io_utils.py:50: ValueError` ๐Ÿ“Œ Duration ``` -`0.0002815519692376256` +`0.00029247894417494535` ``` @@ -1756,7 +2406,7 @@ tests/test_io_utils.py:50: ValueError` โŒ #8 - **Status:** โŒ `failed` -- **Duration:** `0.000250` s +- **Duration:** `0.000232` s ### ๐Ÿ”ง Setup Phase @@ -1765,7 +2415,7 @@ tests/test_io_utils.py:50: ValueError` ๐Ÿ“Œ Duration ``` -`0.0004540950758382678` +`0.00046020897570997477` ``` @@ -1790,7 +2440,7 @@ tests/test_io_utils.py:50: ValueError` ๐Ÿ“Œ Duration ``` -`0.0002501889830455184` +`0.00023242400493472815` ``` @@ -1834,7 +2484,7 @@ tests/test_io_utils.py:50: ValueError` ๐Ÿ“Œ Longrepr ``` -`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f0c494b78e0> +`monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa490f028e0> def test_os_error(monkeypatch): # Patch os.remove to raise OSError simulating filesystem error @@ -1866,7 +2516,7 @@ tests/test_io_utils.py:55: OSError` ๐Ÿ“Œ Duration ``` -`0.0007997180800884962` +`0.0007765060290694237` ``` @@ -1900,7 +2550,7 @@ tests/test_io_utils.py:55: OSError` โŒ #10 - **Status:** โŒ `failed` -- **Duration:** `0.000218` s +- **Duration:** `0.000195` s ### ๐Ÿ”ง Setup Phase @@ -1909,7 +2559,7 @@ tests/test_io_utils.py:55: OSError` ๐Ÿ“Œ Duration ``` -`0.00020841998048126698` +`0.0001882379874587059` ``` @@ -1934,7 +2584,7 @@ tests/test_io_utils.py:55: OSError` ๐Ÿ“Œ Duration ``` -`0.0002180320443585515` +`0.00019488297402858734` ``` @@ -1997,7 +2647,7 @@ tests/test_io_utils.py:69: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.0002663860796019435` +`0.0002416869392618537` ``` @@ -2039,7 +2689,7 @@ tests/test_io_utils.py:69: FileNotFoundError` โŒ #11 - **Status:** โŒ `failed` -- **Duration:** `0.000184` s +- **Duration:** `0.000181` s ### ๐Ÿ”ง Setup Phase @@ -2048,7 +2698,7 @@ tests/test_io_utils.py:69: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00019859196618199348` +`0.00019266200251877308` ``` @@ -2073,7 +2723,7 @@ tests/test_io_utils.py:69: FileNotFoundError` ๐Ÿ“Œ Duration ``` -`0.00018435402307659388` +`0.00018134107813239098` ``` @@ -2136,7 +2786,7 @@ tests/test_math_utils.py:16: NameError` ๐Ÿ“Œ Duration ``` -`0.0002649779198691249` +`0.0002457710215821862` ``` @@ -2170,7 +2820,7 @@ tests/test_math_utils.py:16: NameError` โŒ #12 - **Status:** โŒ `failed` -- **Duration:** `0.000182` s +- **Duration:** `0.000181` s ### ๐Ÿ”ง Setup Phase @@ -2179,7 +2829,7 @@ tests/test_math_utils.py:16: NameError` ๐Ÿ“Œ Duration ``` -`0.000184727949090302` +`0.00019632605835795403` ``` @@ -2204,7 +2854,7 @@ tests/test_math_utils.py:16: NameError` ๐Ÿ“Œ Duration ``` -`0.00018224306404590607` +`0.0001809250097721815` ``` @@ -2267,7 +2917,289 @@ tests/test_math_utils.py:20: AttributeError` ๐Ÿ“Œ Duration ``` -`0.00026779400650411844` +`0.00023474800400435925` +``` + + +
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + + +
+ + + +
+ +
+
+๐Ÿ”ง Function: `test_addition_pass` + +
+
+โŒ #16 parameters: [3-4-8] + +- **Status:** โŒ `failed` +- **Duration:** `0.000610` s +- **Parameters:** `3-4-8` + +### ๐Ÿ”ง Setup Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.0005401000380516052` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + +### ๐Ÿ”ง Call Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.0006104470230638981` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`failed` +``` + +
+
+ +
+
+๐Ÿ“Œ Crash + +``` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `33``, `message: `assert 7 == 8 + + where 7 = addition(3, 4)`` +``` + +
+
+ +
+
+๐Ÿ“Œ Traceback + +``` +`path: `tests/test_math_utils.py``, `lineno: `33``, `message: `AssertionError`` +``` + +
+
+ +
+
+๐Ÿ“Œ Longrepr + +``` +`a = 3, b = 4, expected = 8 + + @pytest.mark.parametrize( + "a, b, expected", + [ + (2, 2, 4), + (1, 5, 6), + (3, 4, 7), + (3, 4, 8), + (3, 4, 9), + ] + ) + def test_addition_pass(a, b, expected): +> assert addition(a, b) == expected +E assert 7 == 8 +E + where 7 = addition(3, 4) + +tests/test_math_utils.py:33: AssertionError` +``` + +
+
+ + +### ๐Ÿ”ง Teardown Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.001010622945614159` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + +
+
+ +
+
+โŒ #17 parameters: [3-4-9] + +- **Status:** โŒ `failed` +- **Duration:** `0.000309` s +- **Parameters:** `3-4-9` + +### ๐Ÿ”ง Setup Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.0005447359289973974` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`passed` +``` + +
+
+ + +### ๐Ÿ”ง Call Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.0003087640507146716` +``` + +
+
+ +
+
+๐Ÿ“Œ Outcome + +``` +`failed` +``` + +
+
+ +
+
+๐Ÿ“Œ Crash + +``` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `33``, `message: `assert 7 == 9 + + where 7 = addition(3, 4)`` +``` + +
+
+ +
+
+๐Ÿ“Œ Traceback + +``` +`path: `tests/test_math_utils.py``, `lineno: `33``, `message: `AssertionError`` +``` + +
+
+ +
+
+๐Ÿ“Œ Longrepr + +``` +`a = 3, b = 4, expected = 9 + + @pytest.mark.parametrize( + "a, b, expected", + [ + (2, 2, 4), + (1, 5, 6), + (3, 4, 7), + (3, 4, 8), + (3, 4, 9), + ] + ) + def test_addition_pass(a, b, expected): +> assert addition(a, b) == expected +E assert 7 == 9 +E + where 7 = addition(3, 4) + +tests/test_math_utils.py:33: AssertionError` +``` + +
+
+ + +### ๐Ÿ”ง Teardown Phase + +
+
+๐Ÿ“Œ Duration + +``` +`0.0009565339423716068` ```
@@ -2298,10 +3230,10 @@ tests/test_math_utils.py:20: AttributeError`
-โŒ #16 +โŒ #18 - **Status:** โŒ `failed` -- **Duration:** `0.000555` s +- **Duration:** `0.000284` s ### ๐Ÿ”ง Setup Phase @@ -2310,7 +3242,7 @@ tests/test_math_utils.py:20: AttributeError` ๐Ÿ“Œ Duration ``` -`0.00017369398847222328` +`0.00019102194346487522` ```
@@ -2335,7 +3267,7 @@ tests/test_math_utils.py:20: AttributeError` ๐Ÿ“Œ Duration ``` -`0.0005548489280045033` +`0.00028398900758475065` ```
@@ -2357,7 +3289,7 @@ tests/test_math_utils.py:20: AttributeError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `35``, `message: `assert 4 == 5 +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `37``, `message: `assert 4 == 5 + where 4 = addition(2, 2)`` ``` @@ -2369,7 +3301,7 @@ tests/test_math_utils.py:20: AttributeError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `35``, `message: `AssertionError`` +`path: `tests/test_math_utils.py``, `lineno: `37``, `message: `AssertionError`` ```
@@ -2386,7 +3318,7 @@ tests/test_math_utils.py:20: AttributeError` E assert 4 == 5 E + where 4 = addition(2, 2) -tests/test_math_utils.py:35: AssertionError` +tests/test_math_utils.py:37: AssertionError` ``` @@ -2400,7 +3332,7 @@ tests/test_math_utils.py:35: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00024502596352249384` +`0.00023765990044921637` ``` @@ -2431,10 +3363,10 @@ tests/test_math_utils.py:35: AssertionError`
-โŒ #17 +โŒ #19 - **Status:** โŒ `failed` -- **Duration:** `0.000184` s +- **Duration:** `0.000179` s ### ๐Ÿ”ง Setup Phase @@ -2443,7 +3375,7 @@ tests/test_math_utils.py:35: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00019535596948117018` +`0.00018040102440863848` ```
@@ -2468,7 +3400,7 @@ tests/test_math_utils.py:35: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00018403097055852413` +`0.00017901207320392132` ``` @@ -2501,7 +3433,7 @@ tests/test_math_utils.py:35: AssertionError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `39``, `message: `None``, `path: `functions/math_utils.py``, `lineno: `5``, `message: `ZeroDivisionError`` +`path: `tests/test_math_utils.py``, `lineno: `41``, `message: `None``, `path: `functions/math_utils.py``, `lineno: `5``, `message: `ZeroDivisionError`` ``` @@ -2516,7 +3448,7 @@ tests/test_math_utils.py:35: AssertionError` # Will raise ZeroDivisionError if not handled in division > division(1, 0) -tests/test_math_utils.py:39: +tests/test_math_utils.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ a = 1, b = 0 @@ -2539,7 +3471,7 @@ functions/math_utils.py:5: ZeroDivisionError` ๐Ÿ“Œ Duration ``` -`0.00023875199258327484` +`0.00023337698075920343` ``` @@ -2570,10 +3502,10 @@ functions/math_utils.py:5: ZeroDivisionError`
-โŒ #19 +โŒ #21 - **Status:** โŒ `failed` -- **Duration:** `0.000189` s +- **Duration:** `0.000185` s ### ๐Ÿ”ง Setup Phase @@ -2582,7 +3514,7 @@ functions/math_utils.py:5: ZeroDivisionError` ๐Ÿ“Œ Duration ``` -`0.00018205598462373018` +`0.00018029892817139626` ```
@@ -2607,7 +3539,7 @@ functions/math_utils.py:5: ZeroDivisionError` ๐Ÿ“Œ Duration ``` -`0.00018867698963731527` +`0.00018498103599995375` ``` @@ -2629,7 +3561,7 @@ functions/math_utils.py:5: ZeroDivisionError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `48``, `message: `RuntimeError: Forced runtime error`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `50``, `message: `RuntimeError: Forced runtime error`` ``` @@ -2640,7 +3572,7 @@ functions/math_utils.py:5: ZeroDivisionError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `48``, `message: `RuntimeError`` +`path: `tests/test_math_utils.py``, `lineno: `50``, `message: `RuntimeError`` ``` @@ -2656,7 +3588,7 @@ functions/math_utils.py:5: ZeroDivisionError` > raise RuntimeError("Forced runtime error") E RuntimeError: Forced runtime error -tests/test_math_utils.py:48: RuntimeError` +tests/test_math_utils.py:50: RuntimeError` ``` @@ -2670,7 +3602,7 @@ tests/test_math_utils.py:48: RuntimeError` ๐Ÿ“Œ Duration ``` -`0.00025487097445875406` +`0.0002515370724722743` ``` @@ -2701,10 +3633,10 @@ tests/test_math_utils.py:48: RuntimeError`
-โŒ #20 +โŒ #22 - **Status:** โŒ `failed` -- **Duration:** `0.000180` s +- **Duration:** `0.000185` s ### ๐Ÿ”ง Setup Phase @@ -2713,7 +3645,7 @@ tests/test_math_utils.py:48: RuntimeError` ๐Ÿ“Œ Duration ``` -`0.00019582093227654696` +`0.0001806539949029684` ```
@@ -2738,7 +3670,7 @@ tests/test_math_utils.py:48: RuntimeError` ๐Ÿ“Œ Duration ``` -`0.00017950101755559444` +`0.00018464401364326477` ``` @@ -2760,7 +3692,7 @@ tests/test_math_utils.py:48: RuntimeError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `52``, `message: `MemoryError: Simulated memory error`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `54``, `message: `MemoryError: Simulated memory error`` ``` @@ -2771,7 +3703,7 @@ tests/test_math_utils.py:48: RuntimeError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `52``, `message: `MemoryError`` +`path: `tests/test_math_utils.py``, `lineno: `54``, `message: `MemoryError`` ``` @@ -2787,7 +3719,7 @@ tests/test_math_utils.py:48: RuntimeError` > raise MemoryError("Simulated memory error") E MemoryError: Simulated memory error -tests/test_math_utils.py:52: MemoryError` +tests/test_math_utils.py:54: MemoryError` ``` @@ -2801,7 +3733,7 @@ tests/test_math_utils.py:52: MemoryError` ๐Ÿ“Œ Duration ``` -`0.00023786199744790792` +`0.00023484497796744108` ``` @@ -2832,10 +3764,10 @@ tests/test_math_utils.py:52: MemoryError`
-โŒ #21 +โŒ #23 - **Status:** โŒ `failed` -- **Duration:** `0.000177` s +- **Duration:** `0.000175` s ### ๐Ÿ”ง Setup Phase @@ -2844,7 +3776,7 @@ tests/test_math_utils.py:52: MemoryError` ๐Ÿ“Œ Duration ``` -`0.00019226106815040112` +`0.0001836098963394761` ```
@@ -2869,7 +3801,7 @@ tests/test_math_utils.py:52: MemoryError` ๐Ÿ“Œ Duration ``` -`0.00017674604896456003` +`0.00017454603221267462` ``` @@ -2891,7 +3823,7 @@ tests/test_math_utils.py:52: MemoryError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `56``, `message: `TimeoutError: Simulated timeout error`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `58``, `message: `TimeoutError: Simulated timeout error`` ``` @@ -2902,7 +3834,7 @@ tests/test_math_utils.py:52: MemoryError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `56``, `message: `TimeoutError`` +`path: `tests/test_math_utils.py``, `lineno: `58``, `message: `TimeoutError`` ``` @@ -2918,7 +3850,7 @@ tests/test_math_utils.py:52: MemoryError` > raise TimeoutError("Simulated timeout error") E TimeoutError: Simulated timeout error -tests/test_math_utils.py:56: TimeoutError` +tests/test_math_utils.py:58: TimeoutError` ``` @@ -2932,7 +3864,7 @@ tests/test_math_utils.py:56: TimeoutError` ๐Ÿ“Œ Duration ``` -`0.00023598794359713793` +`0.00023250107187777758` ``` @@ -2963,10 +3895,10 @@ tests/test_math_utils.py:56: TimeoutError`
-โŒ #22 +โŒ #24 - **Status:** โŒ `failed` -- **Duration:** `0.001219` s +- **Duration:** `0.000847` s ### ๐Ÿ”ง Setup Phase @@ -2975,7 +3907,7 @@ tests/test_math_utils.py:56: TimeoutError` ๐Ÿ“Œ Duration ``` -`0.00018530304078012705` +`0.0001775040291249752` ```
@@ -3000,7 +3932,7 @@ tests/test_math_utils.py:56: TimeoutError` ๐Ÿ“Œ Duration ``` -`0.0012194390874356031` +`0.0008467530133202672` ``` @@ -3022,7 +3954,7 @@ tests/test_math_utils.py:56: TimeoutError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `61``, `message: `RecursionError: maximum recursion depth exceeded`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `63``, `message: `RecursionError: maximum recursion depth exceeded`` ``` @@ -3033,7 +3965,7 @@ tests/test_math_utils.py:56: TimeoutError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `62``, `message: `None``, `path: `tests/test_math_utils.py``, `lineno: `61``, `message: `in recursive``, `path: `tests/test_math_utils.py``, `lineno: `61``, `message: `in recursive`` +`path: `tests/test_math_utils.py``, `lineno: `64``, `message: `None``, `path: `tests/test_math_utils.py``, `lineno: `63``, `message: `in recursive``, `path: `tests/test_math_utils.py``, `lineno: `63``, `message: `in recursive`` ``` @@ -3050,11 +3982,11 @@ tests/test_math_utils.py:56: TimeoutError` return recursive() > recursive() -tests/test_math_utils.py:62: +tests/test_math_utils.py:64: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -tests/test_math_utils.py:61: in recursive +tests/test_math_utils.py:63: in recursive return recursive() -tests/test_math_utils.py:61: in recursive +tests/test_math_utils.py:63: in recursive return recursive() E RecursionError: maximum recursion depth exceeded !!! Recursion detected (same locals & position)` @@ -3071,7 +4003,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Duration ``` -`0.0002785619581118226` +`0.00024010695051401854` ``` @@ -3102,10 +4034,10 @@ E RecursionError: maximum recursion depth exceeded
-โŒ #23 +โŒ #25 - **Status:** โŒ `failed` -- **Duration:** `0.000190` s +- **Duration:** `0.000176` s ### ๐Ÿ”ง Setup Phase @@ -3114,7 +4046,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Duration ``` -`0.0002120260614901781` +`0.0001863669604063034` ```
@@ -3139,7 +4071,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Duration ``` -`0.00018954090774059296` +`0.00017567409668117762` ``` @@ -3161,7 +4093,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `66``, `message: `FloatingPointError: Simulated floating point error`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `68``, `message: `FloatingPointError: Simulated floating point error`` ``` @@ -3172,7 +4104,7 @@ E RecursionError: maximum recursion depth exceeded ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `66``, `message: `FloatingPointError`` +`path: `tests/test_math_utils.py``, `lineno: `68``, `message: `FloatingPointError`` ``` @@ -3188,7 +4120,7 @@ E RecursionError: maximum recursion depth exceeded > raise FloatingPointError("Simulated floating point error") E FloatingPointError: Simulated floating point error -tests/test_math_utils.py:66: FloatingPointError` +tests/test_math_utils.py:68: FloatingPointError` ``` @@ -3202,7 +4134,7 @@ tests/test_math_utils.py:66: FloatingPointError` ๐Ÿ“Œ Duration ``` -`0.000249258941039443` +`0.00023743999190628529` ``` @@ -3233,10 +4165,10 @@ tests/test_math_utils.py:66: FloatingPointError`
-โŒ #24 +โŒ #26 - **Status:** โŒ `failed` -- **Duration:** `0.000183` s +- **Duration:** `0.000181` s ### ๐Ÿ”ง Setup Phase @@ -3245,7 +4177,7 @@ tests/test_math_utils.py:66: FloatingPointError` ๐Ÿ“Œ Duration ``` -`0.00019031402189284563` +`0.0001806060317903757` ```
@@ -3270,7 +4202,7 @@ tests/test_math_utils.py:66: FloatingPointError` ๐Ÿ“Œ Duration ``` -`0.00018333597108721733` +`0.00018077401909977198` ``` @@ -3292,7 +4224,7 @@ tests/test_math_utils.py:66: FloatingPointError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `70``, `message: `OverflowError: math range error`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `72``, `message: `OverflowError: math range error`` ``` @@ -3303,7 +4235,7 @@ tests/test_math_utils.py:66: FloatingPointError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `70``, `message: `OverflowError`` +`path: `tests/test_math_utils.py``, `lineno: `72``, `message: `OverflowError`` ``` @@ -3319,7 +4251,7 @@ tests/test_math_utils.py:66: FloatingPointError` > math.exp(1000) E OverflowError: math range error -tests/test_math_utils.py:70: OverflowError` +tests/test_math_utils.py:72: OverflowError` ``` @@ -3333,7 +4265,7 @@ tests/test_math_utils.py:70: OverflowError` ๐Ÿ“Œ Duration ``` -`0.0002381230005994439` +`0.00023591204080730677` ``` @@ -3364,10 +4296,10 @@ tests/test_math_utils.py:70: OverflowError`
-โŒ #25 +โŒ #27 - **Status:** โŒ `failed` -- **Duration:** `0.000179` s +- **Duration:** `0.000201` s ### ๐Ÿ”ง Setup Phase @@ -3376,7 +4308,7 @@ tests/test_math_utils.py:70: OverflowError` ๐Ÿ“Œ Duration ``` -`0.00018221407663077116` +`0.00018103700131177902` ```
@@ -3401,7 +4333,7 @@ tests/test_math_utils.py:70: OverflowError` ๐Ÿ“Œ Duration ``` -`0.0001794230192899704` +`0.00020069500897079706` ``` @@ -3423,7 +4355,7 @@ tests/test_math_utils.py:70: OverflowError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `74``, `message: `ValueError: invalid literal for int() with base 10: 'invalid'`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `76``, `message: `ValueError: invalid literal for int() with base 10: 'invalid'`` ``` @@ -3434,7 +4366,7 @@ tests/test_math_utils.py:70: OverflowError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `74``, `message: `ValueError`` +`path: `tests/test_math_utils.py``, `lineno: `76``, `message: `ValueError`` ``` @@ -3450,7 +4382,7 @@ tests/test_math_utils.py:70: OverflowError` > int("invalid") E ValueError: invalid literal for int() with base 10: 'invalid' -tests/test_math_utils.py:74: ValueError` +tests/test_math_utils.py:76: ValueError` ``` @@ -3464,7 +4396,7 @@ tests/test_math_utils.py:74: ValueError` ๐Ÿ“Œ Duration ``` -`0.00023661402519792318` +`0.00022996601182967424` ``` @@ -3495,10 +4427,10 @@ tests/test_math_utils.py:74: ValueError`
-โŒ #26 +โŒ #28 - **Status:** โŒ `failed` -- **Duration:** `0.000187` s +- **Duration:** `0.000179` s ### ๐Ÿ”ง Setup Phase @@ -3507,7 +4439,7 @@ tests/test_math_utils.py:74: ValueError` ๐Ÿ“Œ Duration ``` -`0.00018170499242842197` +`0.00017903803382068872` ```
@@ -3532,7 +4464,7 @@ tests/test_math_utils.py:74: ValueError` ๐Ÿ“Œ Duration ``` -`0.00018729199655354023` +`0.00017864606343209743` ``` @@ -3554,7 +4486,7 @@ tests/test_math_utils.py:74: ValueError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `78``, `message: `TypeError: 'int' object is not iterable`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `80``, `message: `TypeError: 'int' object is not iterable`` ``` @@ -3565,7 +4497,7 @@ tests/test_math_utils.py:74: ValueError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `78``, `message: `TypeError`` +`path: `tests/test_math_utils.py``, `lineno: `80``, `message: `TypeError`` ``` @@ -3581,7 +4513,7 @@ tests/test_math_utils.py:74: ValueError` > sum(5) E TypeError: 'int' object is not iterable -tests/test_math_utils.py:78: TypeError` +tests/test_math_utils.py:80: TypeError` ``` @@ -3595,7 +4527,7 @@ tests/test_math_utils.py:78: TypeError` ๐Ÿ“Œ Duration ``` -`0.00024511408992111683` +`0.00023183994926512241` ``` @@ -3626,10 +4558,10 @@ tests/test_math_utils.py:78: TypeError`
-โŒ #27 +โŒ #29 - **Status:** โŒ `failed` -- **Duration:** `0.000180` s +- **Duration:** `0.000184` s ### ๐Ÿ”ง Setup Phase @@ -3638,7 +4570,7 @@ tests/test_math_utils.py:78: TypeError` ๐Ÿ“Œ Duration ``` -`0.00017715198919177055` +`0.0001848909305408597` ```
@@ -3663,7 +4595,7 @@ tests/test_math_utils.py:78: TypeError` ๐Ÿ“Œ Duration ``` -`0.0001800319878384471` +`0.00018407998140901327` ``` @@ -3685,7 +4617,7 @@ tests/test_math_utils.py:78: TypeError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `82``, `message: `Exception: Generic unhandled exception`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `84``, `message: `Exception: Generic unhandled exception`` ``` @@ -3696,7 +4628,7 @@ tests/test_math_utils.py:78: TypeError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `82``, `message: `Exception`` +`path: `tests/test_math_utils.py``, `lineno: `84``, `message: `Exception`` ``` @@ -3712,7 +4644,7 @@ tests/test_math_utils.py:78: TypeError` > raise Exception("Generic unhandled exception") E Exception: Generic unhandled exception -tests/test_math_utils.py:82: Exception` +tests/test_math_utils.py:84: Exception` ``` @@ -3726,7 +4658,7 @@ tests/test_math_utils.py:82: Exception` ๐Ÿ“Œ Duration ``` -`0.00023272004909813404` +`0.0002464079298079014` ``` @@ -3757,10 +4689,10 @@ tests/test_math_utils.py:82: Exception`
-โŒ #28 +โŒ #30 - **Status:** โŒ `failed` -- **Duration:** `0.000171` s +- **Duration:** `0.000176` s ### ๐Ÿ”ง Setup Phase @@ -3769,7 +4701,7 @@ tests/test_math_utils.py:82: Exception` ๐Ÿ“Œ Duration ``` -`0.00018579408060759306` +`0.00017904199194163084` ```
@@ -3794,7 +4726,7 @@ tests/test_math_utils.py:82: Exception` ๐Ÿ“Œ Duration ``` -`0.0001706249313428998` +`0.00017626909539103508` ``` @@ -3816,7 +4748,7 @@ tests/test_math_utils.py:82: Exception` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `86``, `message: `test_math_utils.CustomError: Custom error simulation`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `88``, `message: `test_math_utils.CustomError: Custom error simulation`` ``` @@ -3827,7 +4759,7 @@ tests/test_math_utils.py:82: Exception` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `86``, `message: `CustomError`` +`path: `tests/test_math_utils.py``, `lineno: `88``, `message: `CustomError`` ``` @@ -3843,7 +4775,7 @@ tests/test_math_utils.py:82: Exception` > raise CustomError("Custom error simulation") E test_math_utils.CustomError: Custom error simulation -tests/test_math_utils.py:86: CustomError` +tests/test_math_utils.py:88: CustomError` ``` @@ -3857,7 +4789,7 @@ tests/test_math_utils.py:86: CustomError` ๐Ÿ“Œ Duration ``` -`0.0002345870016142726` +`0.0002411039313301444` ``` @@ -3888,10 +4820,10 @@ tests/test_math_utils.py:86: CustomError`
-โŒ #29 +โŒ #31 - **Status:** โŒ `failed` -- **Duration:** `0.000187` s +- **Duration:** `0.000174` s ### ๐Ÿ”ง Setup Phase @@ -3900,7 +4832,7 @@ tests/test_math_utils.py:86: CustomError` ๐Ÿ“Œ Duration ``` -`0.00018144003115594387` +`0.00018751004245132208` ```
@@ -3925,7 +4857,7 @@ tests/test_math_utils.py:86: CustomError` ๐Ÿ“Œ Duration ``` -`0.00018709106370806694` +`0.0001741889864206314` ``` @@ -3974,12 +4906,12 @@ tests/test_math_utils.py:86: CustomError` > raise StopIteration() E StopIteration -tests/test_math_utils.py:90: StopIteration +tests/test_math_utils.py:92: StopIteration The above exception was the direct cause of the following exception: cls = -func = . at 0x7f0c497a8c10> +func = . at 0x7fa490f91160> when = 'call' reraise = (, ) @@ -4052,7 +4984,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -`0.0004071180010214448` +`0.0004168279701843858` ``` @@ -4083,10 +5015,10 @@ E RuntimeError: generator raised StopIteration
-โŒ #30 +โŒ #32 - **Status:** โŒ `failed` -- **Duration:** `0.000201` s +- **Duration:** `0.000200` s ### ๐Ÿ”ง Setup Phase @@ -4095,7 +5027,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -`0.000261818990111351` +`0.00027394306380301714` ```
@@ -4120,7 +5052,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Duration ``` -`0.00020066299475729465` +`0.0002000079257413745` ``` @@ -4142,7 +5074,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `94``, `message: `GeneratorExit`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `96``, `message: `GeneratorExit`` ``` @@ -4153,7 +5085,7 @@ E RuntimeError: generator raised StopIteration ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `94``, `message: `GeneratorExit`` +`path: `tests/test_math_utils.py``, `lineno: `96``, `message: `GeneratorExit`` ``` @@ -4169,7 +5101,7 @@ E RuntimeError: generator raised StopIteration > raise GeneratorExit() E GeneratorExit -tests/test_math_utils.py:94: GeneratorExit` +tests/test_math_utils.py:96: GeneratorExit` ``` @@ -4183,7 +5115,7 @@ tests/test_math_utils.py:94: GeneratorExit` ๐Ÿ“Œ Duration ``` -`0.0002872049808502197` +`0.0002677120501175523` ``` @@ -4214,10 +5146,10 @@ tests/test_math_utils.py:94: GeneratorExit`
-โŒ #31 +โŒ #33 - **Status:** โŒ `failed` -- **Duration:** `0.000190` s +- **Duration:** `0.000191` s ### ๐Ÿ”ง Setup Phase @@ -4226,7 +5158,7 @@ tests/test_math_utils.py:94: GeneratorExit` ๐Ÿ“Œ Duration ``` -`0.00019902002532035112` +`0.00019355001859366894` ```
@@ -4251,7 +5183,7 @@ tests/test_math_utils.py:94: GeneratorExit` ๐Ÿ“Œ Duration ``` -`0.00018968596123158932` +`0.0001914440654218197` ``` @@ -4273,7 +5205,7 @@ tests/test_math_utils.py:94: GeneratorExit` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `99``, `message: `RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `101``, `message: `RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low`` ``` @@ -4284,7 +5216,7 @@ tests/test_math_utils.py:94: GeneratorExit` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `99``, `message: `RecursionError`` +`path: `tests/test_math_utils.py``, `lineno: `101``, `message: `RecursionError`` ``` @@ -4301,7 +5233,7 @@ tests/test_math_utils.py:94: GeneratorExit` > sys.setrecursionlimit(50) E RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low -tests/test_math_utils.py:99: RecursionError` +tests/test_math_utils.py:101: RecursionError` ``` @@ -4315,7 +5247,7 @@ tests/test_math_utils.py:99: RecursionError` ๐Ÿ“Œ Duration ``` -`0.00024470395874232054` +`0.00023586000315845013` ``` @@ -4346,10 +5278,10 @@ tests/test_math_utils.py:99: RecursionError`
-โŒ #32 +โŒ #34 - **Status:** โŒ `failed` -- **Duration:** `0.000195` s +- **Duration:** `0.000203` s ### ๐Ÿ”ง Setup Phase @@ -4358,7 +5290,7 @@ tests/test_math_utils.py:99: RecursionError` ๐Ÿ“Œ Duration ``` -`0.00018671504221856594` +`0.00018673797603696585` ```
@@ -4383,7 +5315,7 @@ tests/test_math_utils.py:99: RecursionError` ๐Ÿ“Œ Duration ``` -`0.0001946580596268177` +`0.00020275998394936323` ``` @@ -4405,7 +5337,7 @@ tests/test_math_utils.py:99: RecursionError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `109``, `message: ` File "", line 1 +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `111``, `message: ` File "", line 1 def bad(: ^ SyntaxError: invalid syntax`` @@ -4419,7 +5351,7 @@ SyntaxError: invalid syntax`` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `109``, `message: `SyntaxError`` +`path: `tests/test_math_utils.py``, `lineno: `111``, `message: `SyntaxError`` ``` @@ -4438,7 +5370,7 @@ E def bad(: E ^ E SyntaxError: invalid syntax -tests/test_math_utils.py:109: SyntaxError` +tests/test_math_utils.py:111: SyntaxError` ``` @@ -4452,7 +5384,7 @@ tests/test_math_utils.py:109: SyntaxError` ๐Ÿ“Œ Duration ``` -`0.00023714103735983372` +`0.00023639900609850883` ``` @@ -4483,10 +5415,10 @@ tests/test_math_utils.py:109: SyntaxError`
-โŒ #33 +โŒ #35 - **Status:** โŒ `failed` -- **Duration:** `0.000188` s +- **Duration:** `0.000171` s ### ๐Ÿ”ง Setup Phase @@ -4495,7 +5427,7 @@ tests/test_math_utils.py:109: SyntaxError` ๐Ÿ“Œ Duration ``` -`0.00017942697741091251` +`0.00019390101078897715` ```
@@ -4520,7 +5452,7 @@ tests/test_math_utils.py:109: SyntaxError` ๐Ÿ“Œ Duration ``` -`0.00018845591694116592` +`0.00017074402421712875` ``` @@ -4542,7 +5474,7 @@ tests/test_math_utils.py:109: SyntaxError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `113``, `message: `SystemExit: 1`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `115``, `message: `SystemExit: 1`` ``` @@ -4553,7 +5485,7 @@ tests/test_math_utils.py:109: SyntaxError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `113``, `message: `SystemExit`` +`path: `tests/test_math_utils.py``, `lineno: `115``, `message: `SystemExit`` ``` @@ -4569,7 +5501,7 @@ tests/test_math_utils.py:109: SyntaxError` > sys.exit(1) E SystemExit: 1 -tests/test_math_utils.py:113: SystemExit` +tests/test_math_utils.py:115: SystemExit` ``` @@ -4583,7 +5515,7 @@ tests/test_math_utils.py:113: SystemExit` ๐Ÿ“Œ Duration ``` -`0.0003306390717625618` +`0.00023257802240550518` ``` @@ -4614,10 +5546,10 @@ tests/test_math_utils.py:113: SystemExit`
-โŒ #34 +โŒ #36 - **Status:** โŒ `failed` -- **Duration:** `0.000176` s +- **Duration:** `0.000173` s ### ๐Ÿ”ง Setup Phase @@ -4626,7 +5558,7 @@ tests/test_math_utils.py:113: SystemExit` ๐Ÿ“Œ Duration ``` -`0.00019282102584838867` +`0.00019231298938393593` ```
@@ -4651,7 +5583,7 @@ tests/test_math_utils.py:113: SystemExit` ๐Ÿ“Œ Duration ``` -`0.00017617293633520603` +`0.00017310690600425005` ``` @@ -4673,7 +5605,7 @@ tests/test_math_utils.py:113: SystemExit` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `118``, `message: `TypeError: Broken function`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `120``, `message: `TypeError: Broken function`` ``` @@ -4684,7 +5616,7 @@ tests/test_math_utils.py:113: SystemExit` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `119``, `message: `None``, `path: `tests/test_math_utils.py``, `lineno: `118``, `message: `TypeError`` +`path: `tests/test_math_utils.py``, `lineno: `121``, `message: `None``, `path: `tests/test_math_utils.py``, `lineno: `120``, `message: `TypeError`` ``` @@ -4701,7 +5633,7 @@ tests/test_math_utils.py:113: SystemExit` raise TypeError("Broken function") > broken_func() -tests/test_math_utils.py:119: +tests/test_math_utils.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (), kwargs = {} @@ -4710,7 +5642,7 @@ args = (), kwargs = {} > raise TypeError("Broken function") E TypeError: Broken function -tests/test_math_utils.py:118: TypeError` +tests/test_math_utils.py:120: TypeError` ``` @@ -4724,7 +5656,7 @@ tests/test_math_utils.py:118: TypeError` ๐Ÿ“Œ Duration ``` -`0.00023154495283961296` +`0.00025596993509680033` ``` @@ -4755,10 +5687,10 @@ tests/test_math_utils.py:118: TypeError`
-โŒ #35 +โŒ #37 - **Status:** โŒ `failed` -- **Duration:** `0.000194` s +- **Duration:** `0.000197` s ### ๐Ÿ”ง Setup Phase @@ -4767,7 +5699,7 @@ tests/test_math_utils.py:118: TypeError` ๐Ÿ“Œ Duration ``` -`0.00017936399672180414` +`0.0001832999987527728` ```
@@ -4792,7 +5724,7 @@ tests/test_math_utils.py:118: TypeError` ๐Ÿ“Œ Duration ``` -`0.00019394897390156984` +`0.0001967590069398284` ``` @@ -4814,7 +5746,7 @@ tests/test_math_utils.py:118: TypeError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `126``, `message: `ImportError: Simulated ImportError`` +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `128``, `message: `ImportError: Simulated ImportError`` ``` @@ -4825,7 +5757,7 @@ tests/test_math_utils.py:118: TypeError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `131``, `message: `None``, `path: `tests/test_math_utils.py``, `lineno: `126``, `message: `ImportError`` +`path: `tests/test_math_utils.py``, `lineno: `133``, `message: `None``, `path: `tests/test_math_utils.py``, `lineno: `128``, `message: `ImportError`` ``` @@ -4848,7 +5780,7 @@ tests/test_math_utils.py:118: TypeError` try: > __import__("fake_module") -tests/test_math_utils.py:131: +tests/test_math_utils.py:133: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'fake_module', args = (), kwargs = {} @@ -4858,7 +5790,7 @@ name = 'fake_module', args = (), kwargs = {} > raise ImportError("Simulated ImportError") E ImportError: Simulated ImportError -tests/test_math_utils.py:126: ImportError` +tests/test_math_utils.py:128: ImportError` ``` @@ -4872,7 +5804,7 @@ tests/test_math_utils.py:126: ImportError` ๐Ÿ“Œ Duration ``` -`0.00023388792760670185` +`0.00024674308951944113` ``` @@ -4903,10 +5835,10 @@ tests/test_math_utils.py:126: ImportError`
-โŒ #36 +โŒ #38 - **Status:** โŒ `failed` -- **Duration:** `0.000490` s +- **Duration:** `0.000517` s ### ๐Ÿ”ง Setup Phase @@ -4915,7 +5847,7 @@ tests/test_math_utils.py:126: ImportError` ๐Ÿ“Œ Duration ``` -`0.00019122404046356678` +`0.00019285304006189108` ```
@@ -4940,7 +5872,7 @@ tests/test_math_utils.py:126: ImportError` ๐Ÿ“Œ Duration ``` -`0.0004895690362900496` +`0.0005172230303287506` ``` @@ -4973,7 +5905,7 @@ tests/test_math_utils.py:126: ImportError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `137``, `message: `None``, `path: `.pixi/envs/default/lib/python3.8/importlib/__init__.py``, `lineno: `127``, `message: `in import_module``, `path: ```, `lineno: `1014``, `message: `in _gcd_import``, `path: ```, `lineno: `991``, `message: `in _find_and_load``, `path: ```, `lineno: `973``, `message: `ModuleNotFoundError`` +`path: `tests/test_math_utils.py``, `lineno: `139``, `message: `None``, `path: `.pixi/envs/default/lib/python3.8/importlib/__init__.py``, `lineno: `127``, `message: `in import_module``, `path: ```, `lineno: `1014``, `message: `in _gcd_import``, `path: ```, `lineno: `991``, `message: `in _find_and_load``, `path: ```, `lineno: `973``, `message: `ModuleNotFoundError`` ``` @@ -4988,7 +5920,7 @@ tests/test_math_utils.py:126: ImportError` # Raises ModuleNotFoundError (subclass of ImportError) for missing module > importlib.import_module("non_existent_module_xyz") -tests/test_math_utils.py:137: +tests/test_math_utils.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module return _bootstrap._gcd_import(name[level:], package, level) @@ -4999,7 +5931,7 @@ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ name = 'non_existent_module_xyz' -import_ = +import_ = > ??? E ModuleNotFoundError: No module named 'non_existent_module_xyz' @@ -5018,7 +5950,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz' ๐Ÿ“Œ Duration ``` -`0.00028814305551350117` +`0.00024469406343996525` ``` @@ -5057,10 +5989,10 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz'
-โŒ #38 +โŒ #40 - **Status:** โŒ `failed` -- **Duration:** `0.000182` s +- **Duration:** `0.000172` s ### ๐Ÿ”ง Setup Phase @@ -5069,7 +6001,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz' ๐Ÿ“Œ Duration ``` -`0.00020080001559108496` +`0.00017426407430320978` ```
@@ -5094,7 +6026,7 @@ E ModuleNotFoundError: No module named 'non_existent_module_xyz' ๐Ÿ“Œ Duration ``` -`0.00018198799807578325` +`0.00017236301209777594` ``` @@ -5166,7 +6098,7 @@ functions/string_utils.py:3: TypeError` ๐Ÿ“Œ Duration ``` -`0.0002406729618087411` +`0.00023974303621798754` ``` @@ -5197,10 +6129,10 @@ functions/string_utils.py:3: TypeError`
-โŒ #41 +โŒ #43 - **Status:** โŒ `failed` -- **Duration:** `0.000174` s +- **Duration:** `0.000170` s ### ๐Ÿ”ง Setup Phase @@ -5209,7 +6141,7 @@ functions/string_utils.py:3: TypeError` ๐Ÿ“Œ Duration ``` -`0.0001718740677461028` +`0.00016904296353459358` ```
@@ -5234,7 +6166,7 @@ functions/string_utils.py:3: TypeError` ๐Ÿ“Œ Duration ``` -`0.00017358700279146433` +`0.00017013400793075562` ``` @@ -5297,7 +6229,7 @@ tests/test_string_utils.py:26: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00024479010608047247` +`0.00024395796936005354` ``` @@ -5328,10 +6260,10 @@ tests/test_string_utils.py:26: UnicodeDecodeError`
-โŒ #42 +โŒ #44 - **Status:** โŒ `failed` -- **Duration:** `0.000179` s +- **Duration:** `0.000174` s ### ๐Ÿ”ง Setup Phase @@ -5340,7 +6272,7 @@ tests/test_string_utils.py:26: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00018214795272797346` +`0.0001788460649549961` ```
@@ -5365,7 +6297,7 @@ tests/test_string_utils.py:26: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00017896003555506468` +`0.00017427699640393257` ``` @@ -5428,7 +6360,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00023199408315122128` +`0.00023479398805648088` ``` @@ -5475,10 +6407,10 @@ tests/test_string_utils.py:30: UnicodeDecodeError`
-โŒ #18 +โŒ #20 - **Status:** โŒ `xfailed` -- **Duration:** `0.000297` s +- **Duration:** `0.000272` s ### ๐Ÿ”ง Setup Phase @@ -5487,7 +6419,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00020582799334079027` +`0.0002034349599853158` ```
@@ -5512,7 +6444,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` ๐Ÿ“Œ Duration ``` -`0.00029702007304877043` +`0.0002716690069064498` ``` @@ -5534,7 +6466,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` ๐Ÿ“Œ Crash ``` -`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `44``, `message: `assert 4 == 5 +`path: `/workspace/tligui_y/slic/tests/test_math_utils.py``, `lineno: `46``, `message: `assert 4 == 5 + where 4 = multiply(2, 2)`` ``` @@ -5546,7 +6478,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` ๐Ÿ“Œ Traceback ``` -`path: `tests/test_math_utils.py``, `lineno: `44``, `message: `AssertionError`` +`path: `tests/test_math_utils.py``, `lineno: `46``, `message: `AssertionError`` ``` @@ -5564,7 +6496,7 @@ tests/test_string_utils.py:30: UnicodeDecodeError` E assert 4 == 5 E + where 4 = multiply(2, 2) -tests/test_math_utils.py:44: AssertionError` +tests/test_math_utils.py:46: AssertionError` ``` @@ -5578,7 +6510,7 @@ tests/test_math_utils.py:44: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00026023597456514835` +`0.00025524699594825506` ``` @@ -5617,10 +6549,10 @@ tests/test_math_utils.py:44: AssertionError`
-โŒ #44 +โŒ #46 - **Status:** โŒ `xfailed` -- **Duration:** `0.000648` s +- **Duration:** `0.000630` s ### ๐Ÿ”ง Setup Phase @@ -5629,7 +6561,7 @@ tests/test_math_utils.py:44: AssertionError` ๐Ÿ“Œ Duration ``` -`0.00018014805391430855` +`0.00019345409236848354` ```
@@ -5654,7 +6586,7 @@ tests/test_math_utils.py:44: AssertionError` ๐Ÿ“Œ Duration ``` -`0.0006479780422523618` +`0.0006304220296442509` ``` @@ -5726,7 +6658,7 @@ tests/test_string_utils.py:39: AssertionError` ๐Ÿ“Œ Duration ``` -`0.0002610110677778721` +`0.0002575049875304103` ``` @@ -5808,7 +6740,7 @@ result:
-โœ… ci-reports (4 tests) +โœ… ci-reports (12 tests)
@@ -5829,6 +6761,126 @@ result:
โœ… ci-reports/allure +- **Outcome:** `passed` +- **Details:** +``` +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`` + +``` + +
+
+ +
+
+โœ… ci-reports/allure/data + +- **Outcome:** `passed` +- **Details:** +``` +result: + + +``` + +
+
+ +
+
+โœ… ci-reports/allure/export + +- **Outcome:** `passed` +- **Details:** +``` +result: + + +``` + +
+
+ +
+
+โœ… ci-reports/allure/history + +- **Outcome:** `passed` +- **Details:** +``` +result: + + +``` + +
+
+ +
+
+โœ… ci-reports/allure/plugin + +- **Outcome:** `passed` +- **Details:** +``` +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`` + +``` + +
+
+ +
+
+โœ… ci-reports/allure/plugin/behaviors + +- **Outcome:** `passed` +- **Details:** +``` +result: + + +``` + +
+
+ +
+
+โœ… ci-reports/allure/plugin/packages + +- **Outcome:** `passed` +- **Details:** +``` +result: + + +``` + +
+
+ +
+
+โœ… ci-reports/allure/plugin/screen-diff + +- **Outcome:** `passed` +- **Details:** +``` +result: + + +``` + +
+
+ +
+
+โœ… ci-reports/allure/widgets + - **Outcome:** `passed` - **Details:** ``` @@ -6005,7 +7057,7 @@ result: - **Details:** ``` 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: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[1-5-6]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-4-7]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_fail``, `type: `Function``, `lineno: `32``, `nodeid: `tests/test_math_utils.py::test_division_zero``, `type: `Function``, `lineno: `36``, `nodeid: `tests/test_math_utils.py::test_multiply_xfail``, `type: `Function``, `lineno: `40``, `nodeid: `tests/test_math_utils.py::test_runtime_error``, `type: `Function``, `lineno: `45``, `nodeid: `tests/test_math_utils.py::test_memory_error``, `type: `Function``, `lineno: `49``, `nodeid: `tests/test_math_utils.py::test_timeout_error``, `type: `Function``, `lineno: `53``, `nodeid: `tests/test_math_utils.py::test_recursion_error``, `type: `Function``, `lineno: `57``, `nodeid: `tests/test_math_utils.py::test_floating_point_error``, `type: `Function``, `lineno: `63``, `nodeid: `tests/test_math_utils.py::test_floating_point_overflow``, `type: `Function``, `lineno: `67``, `nodeid: `tests/test_math_utils.py::test_value_error``, `type: `Function``, `lineno: `71``, `nodeid: `tests/test_math_utils.py::test_type_error``, `type: `Function``, `lineno: `75``, `nodeid: `tests/test_math_utils.py::test_unhandled_exception``, `type: `Function``, `lineno: `79``, `nodeid: `tests/test_math_utils.py::test_custom_error``, `type: `Function``, `lineno: `83``, `nodeid: `tests/test_math_utils.py::test_stop_iteration_direct``, `type: `Function``, `lineno: `87``, `nodeid: `tests/test_math_utils.py::test_generator_exit_direct``, `type: `Function``, `lineno: `91``, `nodeid: `tests/test_math_utils.py::test_recursion_limit``, `type: `Function``, `lineno: `95``, `nodeid: `tests/test_math_utils.py::test_malformed_code``, `type: `Function``, `lineno: `106``, `nodeid: `tests/test_math_utils.py::test_sys_exit``, `type: `Function``, `lineno: `110``, `nodeid: `tests/test_math_utils.py::test_broken_function``, `type: `Function``, `lineno: `114``, `nodeid: `tests/test_math_utils.py::test_import_error_patch``, `type: `Function``, `lineno: `120``, `nodeid: `tests/test_math_utils.py::test_module_not_found_error``, `type: `Function``, `lineno: `134`` +`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: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[1-5-6]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-4-7]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-4-8]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_pass[3-4-9]``, `type: `Function``, `lineno: `21``, `nodeid: `tests/test_math_utils.py::test_addition_fail``, `type: `Function``, `lineno: `34``, `nodeid: `tests/test_math_utils.py::test_division_zero``, `type: `Function``, `lineno: `38``, `nodeid: `tests/test_math_utils.py::test_multiply_xfail``, `type: `Function``, `lineno: `42``, `nodeid: `tests/test_math_utils.py::test_runtime_error``, `type: `Function``, `lineno: `47``, `nodeid: `tests/test_math_utils.py::test_memory_error``, `type: `Function``, `lineno: `51``, `nodeid: `tests/test_math_utils.py::test_timeout_error``, `type: `Function``, `lineno: `55``, `nodeid: `tests/test_math_utils.py::test_recursion_error``, `type: `Function``, `lineno: `59``, `nodeid: `tests/test_math_utils.py::test_floating_point_error``, `type: `Function``, `lineno: `65``, `nodeid: `tests/test_math_utils.py::test_floating_point_overflow``, `type: `Function``, `lineno: `69``, `nodeid: `tests/test_math_utils.py::test_value_error``, `type: `Function``, `lineno: `73``, `nodeid: `tests/test_math_utils.py::test_type_error``, `type: `Function``, `lineno: `77``, `nodeid: `tests/test_math_utils.py::test_unhandled_exception``, `type: `Function``, `lineno: `81``, `nodeid: `tests/test_math_utils.py::test_custom_error``, `type: `Function``, `lineno: `85``, `nodeid: `tests/test_math_utils.py::test_stop_iteration_direct``, `type: `Function``, `lineno: `89``, `nodeid: `tests/test_math_utils.py::test_generator_exit_direct``, `type: `Function``, `lineno: `93``, `nodeid: `tests/test_math_utils.py::test_recursion_limit``, `type: `Function``, `lineno: `97``, `nodeid: `tests/test_math_utils.py::test_malformed_code``, `type: `Function``, `lineno: `108``, `nodeid: `tests/test_math_utils.py::test_sys_exit``, `type: `Function``, `lineno: `112``, `nodeid: `tests/test_math_utils.py::test_broken_function``, `type: `Function``, `lineno: `116``, `nodeid: `tests/test_math_utils.py::test_import_error_patch``, `type: `Function``, `lineno: `122``, `nodeid: `tests/test_math_utils.py::test_module_not_found_error``, `type: `Function``, `lineno: `136`` ``` diff --git a/ci-reports/markdown/coverage-summary.md b/ci-reports/markdown/coverage-summary.md index 2f4acdf8b..ff0891a92 100644 --- a/ci-reports/markdown/coverage-summary.md +++ b/ci-reports/markdown/coverage-summary.md @@ -1 +1,7 @@ -No data to report. +| Name | Stmts | Miss | Cover | +|--------------------------- | -------: | -------: | -------: | +| functions/\_\_init\_\_.py | 0 | 0 | 100% | +| functions/io\_utils.py | 8 | 0 | 100% | +| functions/math\_utils.py | 6 | 0 | 100% | +| functions/string\_utils.py | 6 | 0 | 100% | +| **TOTAL** | **20** | **0** | **100%** | diff --git a/ci-reports/markdown/pytest-report.json b/ci-reports/markdown/pytest-report.json index d83102eed..bd190be52 100644 --- a/ci-reports/markdown/pytest-report.json +++ b/ci-reports/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1752579740.2117167, "duration": 0.7561628818511963, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 11, "failed": 32, "xfailed": 2, "total": 45, "collected": 45}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "allure-results", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "result": []}, {"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\n mod = import_path(\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:587: in import_path\n importlib.import_module(module_name)\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n:975: in _find_and_load_unlocked\n ???\n:671: in _load_unlocked\n ???\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module\n source_stat, co = _rewrite_test(fn, self.config)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:355: in _rewrite_test\n tree = ast.parse(source, filename=strfn)\n.pixi/envs/default/lib/python3.8/ast.py:47: in parse\n return compile(source, filename, mode, flags,\nE File \"/workspace/tligui_y/slic/tests/test_broken_fct.py\", line 8\nE def test_valid_2():\nE ^\nE 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'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntests/test_collector_error.py:1: in \n from no_existing_module.math_utils import *\nE ModuleNotFoundError: No module named 'no_existing_module'"}, {"nodeid": "tests/test_io_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_io_utils.py::test_write_file", "type": "Function", "lineno": 16}, {"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_readonly", "type": "Function", "lineno": 58}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 66}]}, {"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": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 32}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 40}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 49}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 53}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 57}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 63}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 67}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 71}, {"nodeid": "tests/test_math_utils.py::test_type_error", "type": "Function", "lineno": 75}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 83}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 91}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "type": "Function", "lineno": 95}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 106}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 110}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 114}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "type": "Function", "lineno": 120}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 134}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "lineno": 15}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 23}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "type": "Function", "lineno": 31}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 35}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 40}]}, {"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_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "result": [{"nodeid": "allure-results", "type": "Dir"}, {"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "tests": [{"nodeid": "tests/test_io_utils.py::test_read_file", "lineno": 9, "outcome": "passed", "keywords": ["test_read_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.003886540071107447, "outcome": "passed"}, "call": {"duration": 0.0005122700240463018, "outcome": "passed"}, "teardown": {"duration": 0.0015452760271728039, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file", "lineno": 16, "outcome": "passed", "keywords": ["test_write_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0006821609567850828, "outcome": "passed"}, "call": {"duration": 0.00036035897210240364, "outcome": "passed"}, "teardown": {"duration": 0.0007149169687181711, "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.00019878591410815716, "outcome": "passed"}, "call": {"duration": 0.00018979597371071577, "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():\n # Raises manual IOError to simulate IO failure\n> cause_io_error()\n\ntests/test_io_utils.py:25: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n def cause_io_error():\n> raise IOError(\"Forced IO Error for testing\")\nE OSError: Forced IO Error for testing\n\nfunctions/io_utils.py:10: OSError"}, "teardown": {"duration": 0.00026694906409829855, "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.0001882440410554409, "outcome": "passed"}, "call": {"duration": 0.00021169090177863836, "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():\n # Reading non-existing file raises FileNotFoundError\n> read_file(\"nonexistent.file\")\n\ntests/test_io_utils.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'nonexistent.file'\n\n def read_file(path):\n> with open(path, \"r\", encoding=\"utf-8\") as f:\nE FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'\n\nfunctions/io_utils.py:2: FileNotFoundError"}, "teardown": {"duration": 0.00025147898122668266, "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.00044656405225396156, "outcome": "passed"}, "call": {"duration": 0.00022717402316629887, "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 0x7f0c49b4faf0>\n\n def test_permission_error(monkeypatch):\n # Patch open to raise PermissionError simulating access denial\n def raise_perm_error(*args, **kwargs):\n raise PermissionError(\"Permission denied\")\n monkeypatch.setattr(\"builtins.open\", raise_perm_error)\n> read_file(\"anyfile.txt\")\n\ntests/test_io_utils.py:36: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nfunctions/io_utils.py:2: in read_file\n with open(path, \"r\", encoding=\"utf-8\") as f:\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}\n\n def raise_perm_error(*args, **kwargs):\n> raise PermissionError(\"Permission denied\")\nE PermissionError: Permission denied\n\ntests/test_io_utils.py:34: PermissionError"}, "teardown": {"duration": 0.0007962039671838284, "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.0004201120464131236, "outcome": "passed"}, "call": {"duration": 0.0034895610297098756, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/unittest/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 0x7f0c494b4790>\n\n def test_mock_open_error(monkeypatch):\n # Mock open() to raise IOError simulating read error\n mocked_open = mock.mock_open()\n mocked_open.side_effect = IOError(\"Mocked IOError\")\n monkeypatch.setattr(\"builtins.open\", mocked_open)\n> with open(\"file.txt\", \"r\") as f:\n\ntests/test_io_utils.py:43: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in __call__\n return self._mock_call(*args, **kwargs)\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = \nargs = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError')\n\n def _execute_mock_call(self, /, *args, **kwargs):\n # separate from _increment_mock_call so that awaited functions are\n # executed separately from their call, also AsyncMock overrides this method\n \n effect = self.side_effect\n if effect is not None:\n if _is_exception(effect):\n> raise effect\nE OSError: Mocked IOError\n\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError"}, "teardown": {"duration": 0.0012022610753774643, "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.0002512119244784117, "outcome": "passed"}, "call": {"duration": 0.00021069403737783432, "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():\n # Accessing closed file raises ValueError\n f = io.StringIO(\"content\")\n f.close()\n> f.read()\nE ValueError: I/O operation on closed file\n\ntests/test_io_utils.py:50: ValueError"}, "teardown": {"duration": 0.0002815519692376256, "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.0004540950758382678, "outcome": "passed"}, "call": {"duration": 0.0002501889830455184, "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 0x7f0c494b78e0>\n\n def test_os_error(monkeypatch):\n # Patch os.remove to raise OSError simulating filesystem error\n def raise_os_error(path):\n raise OSError(\"Simulated OSError\")\n monkeypatch.setattr(\"os.remove\", raise_os_error)\n> os.remove(\"file.txt\")\n\ntests/test_io_utils.py:57: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'file.txt'\n\n def raise_os_error(path):\n> raise OSError(\"Simulated OSError\")\nE OSError: Simulated OSError\n\ntests/test_io_utils.py:55: OSError"}, "teardown": {"duration": 0.0007997180800884962, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "lineno": 58, "outcome": "passed", "keywords": ["test_write_file_readonly", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0008433919865638018, "outcome": "passed"}, "call": {"duration": 0.0008674510754644871, "outcome": "passed"}, "teardown": {"duration": 0.0007228100439533591, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "lineno": 66, "outcome": "failed", "keywords": ["test_file_not_found_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020841998048126698, "outcome": "passed"}, "call": {"duration": 0.0002180320443585515, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 69, "message": "FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 69, "message": "FileNotFoundError"}], "longrepr": "def test_file_not_found_error():\n # Raises FileNotFoundError when opening a non-existent file\n> open(\"no_such_file.txt\", \"r\")\nE FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'\n\ntests/test_io_utils.py:69: FileNotFoundError"}, "teardown": {"duration": 0.0002663860796019435, "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.00019859196618199348, "outcome": "passed"}, "call": {"duration": 0.00018435402307659388, "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():\n # simulating a broken or faulty test implementation that will cause the test to error\n> want_the_test_to_fail\nE NameError: name 'want_the_test_to_fail' is not defined\n\ntests/test_math_utils.py:16: NameError"}, "teardown": {"duration": 0.0002649779198691249, "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.000184727949090302, "outcome": "passed"}, "call": {"duration": 0.00018224306404590607, "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():\n # Accessing a missing function attribute raises AttributeError\n> getattr(math_utils, \"non_existent_function\")()\nE AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'\n\ntests/test_math_utils.py:20: AttributeError"}, "teardown": {"duration": 0.00026779400650411844, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0015680079814046621, "outcome": "passed"}, "call": {"duration": 0.00021250091958791018, "outcome": "passed"}, "teardown": {"duration": 0.0009148650569841266, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005621860036626458, "outcome": "passed"}, "call": {"duration": 0.00017726700752973557, "outcome": "passed"}, "teardown": {"duration": 0.0008694909047335386, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000538583961315453, "outcome": "passed"}, "call": {"duration": 0.00017144693993031979, "outcome": "passed"}, "teardown": {"duration": 0.0008363960077986121, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 32, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017369398847222328, "outcome": "passed"}, "call": {"duration": 0.0005548489280045033, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 35, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 35, "message": "AssertionError"}], "longrepr": "def test_addition_fail():\n # Assertion failure: expected incorrect result\n> assert addition(2, 2) == 5\nE assert 4 == 5\nE + where 4 = addition(2, 2)\n\ntests/test_math_utils.py:35: AssertionError"}, "teardown": {"duration": 0.00024502596352249384, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 36, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019535596948117018, "outcome": "passed"}, "call": {"duration": 0.00018403097055852413, "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": 39, "message": ""}, {"path": "functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError"}], "longrepr": "def test_division_zero():\n # Will raise ZeroDivisionError if not handled in division\n> division(1, 0)\n\ntests/test_math_utils.py:39: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\na = 1, b = 0\n\n def division(a, b):\n> return a / b\nE ZeroDivisionError: division by zero\n\nfunctions/math_utils.py:5: ZeroDivisionError"}, "teardown": {"duration": 0.00023875199258327484, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 40, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020582799334079027, "outcome": "passed"}, "call": {"duration": 0.00029702007304877043, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 44, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 44, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure\")\n def test_multiply_xfail():\n # Expected fail test (xfail): incorrect expected multiply result\n> assert multiply(2, 2) == 5\nE assert 4 == 5\nE + where 4 = multiply(2, 2)\n\ntests/test_math_utils.py:44: AssertionError"}, "teardown": {"duration": 0.00026023597456514835, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 45, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018205598462373018, "outcome": "passed"}, "call": {"duration": 0.00018867698963731527, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 48, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 48, "message": "RuntimeError"}], "longrepr": "def test_runtime_error():\n # Test raises an uncaught RuntimeError\n> raise RuntimeError(\"Forced runtime error\")\nE RuntimeError: Forced runtime error\n\ntests/test_math_utils.py:48: RuntimeError"}, "teardown": {"duration": 0.00025487097445875406, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 49, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019582093227654696, "outcome": "passed"}, "call": {"duration": 0.00017950101755559444, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 52, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 52, "message": "MemoryError"}], "longrepr": "def test_memory_error():\n # Manually raise MemoryError to simulate out-of-memory condition\n> raise MemoryError(\"Simulated memory error\")\nE MemoryError: Simulated memory error\n\ntests/test_math_utils.py:52: MemoryError"}, "teardown": {"duration": 0.00023786199744790792, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 53, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019226106815040112, "outcome": "passed"}, "call": {"duration": 0.00017674604896456003, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 56, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 56, "message": "TimeoutError"}], "longrepr": "def test_timeout_error():\n # Manually raise TimeoutError simulating timeout conditions\n> raise TimeoutError(\"Simulated timeout error\")\nE TimeoutError: Simulated timeout error\n\ntests/test_math_utils.py:56: TimeoutError"}, "teardown": {"duration": 0.00023598794359713793, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 57, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018530304078012705, "outcome": "passed"}, "call": {"duration": 0.0012194390874356031, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 61, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 62, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 61, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 61, "message": "in recursive"}], "longrepr": "def test_recursion_error():\n # Infinite recursion triggers RecursionError\n def recursive():\n return recursive()\n> recursive()\n\ntests/test_math_utils.py:62: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:61: in recursive\n return recursive()\ntests/test_math_utils.py:61: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.0002785619581118226, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 63, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002120260614901781, "outcome": "passed"}, "call": {"duration": 0.00018954090774059296, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 66, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 66, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError (rare in practice)\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:66: FloatingPointError"}, "teardown": {"duration": 0.000249258941039443, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 67, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019031402189284563, "outcome": "passed"}, "call": {"duration": 0.00018333597108721733, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 70, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 70, "message": "OverflowError"}], "longrepr": "def test_floating_point_overflow():\n # Exponential overflow triggers OverflowError\n> math.exp(1000)\nE OverflowError: math range error\n\ntests/test_math_utils.py:70: OverflowError"}, "teardown": {"duration": 0.0002381230005994439, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 71, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018221407663077116, "outcome": "passed"}, "call": {"duration": 0.0001794230192899704, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 74, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 74, "message": "ValueError"}], "longrepr": "def test_value_error():\n # ValueError on invalid integer conversion\n> int(\"invalid\")\nE ValueError: invalid literal for int() with base 10: 'invalid'\n\ntests/test_math_utils.py:74: ValueError"}, "teardown": {"duration": 0.00023661402519792318, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_type_error", "lineno": 75, "outcome": "failed", "keywords": ["test_type_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018170499242842197, "outcome": "passed"}, "call": {"duration": 0.00018729199655354023, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 78, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 78, "message": "TypeError"}], "longrepr": "def test_type_error():\n # TypeError when passing wrong argument type to sum\n> sum(5)\nE TypeError: 'int' object is not iterable\n\ntests/test_math_utils.py:78: TypeError"}, "teardown": {"duration": 0.00024511408992111683, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 79, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017715198919177055, "outcome": "passed"}, "call": {"duration": 0.0001800319878384471, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 82, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 82, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:82: Exception"}, "teardown": {"duration": 0.00023272004909813404, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 83, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018579408060759306, "outcome": "passed"}, "call": {"duration": 0.0001706249313428998, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 86, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 86, "message": "CustomError"}], "longrepr": "def test_custom_error():\n # Raises user-defined CustomError exception\n> raise CustomError(\"Custom error simulation\")\nE test_math_utils.CustomError: Custom error simulation\n\ntests/test_math_utils.py:86: CustomError"}, "teardown": {"duration": 0.0002345870016142726, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 87, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018144003115594387, "outcome": "passed"}, "call": {"duration": 0.00018709106370806694, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError: generator raised StopIteration"}, "traceback": [{"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 341, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 242, "message": "in "}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", "lineno": 513, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", "lineno": 120, "message": "in _hookexec"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 92, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 68, "message": "in thread_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 95, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 70, "message": "in unraisable_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 846, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 829, "message": "in _runtest_for"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError"}], "longrepr": "def test_stop_iteration_direct():\n # Directly raise StopIteration exception\n> raise StopIteration()\nE StopIteration\n\ntests/test_math_utils.py:90: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7f0c497a8c10>\nwhen = 'call'\nreraise = (, )\n\n @classmethod\n def from_call(\n cls,\n func: Callable[[], TResult],\n when: Literal[\"collect\", \"setup\", \"call\", \"teardown\"],\n reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None,\n ) -> CallInfo[TResult]:\n \"\"\"Call func, wrapping the result in a CallInfo.\n \n :param func:\n The function to call. Called without arguments.\n :type func: Callable[[], _pytest.runner.TResult]\n :param when:\n The phase in which the function is called.\n :param reraise:\n Exception or exceptions that shall propagate if raised by the\n function, instead of being wrapped in the CallInfo.\n \"\"\"\n excinfo = None\n start = timing.time()\n precise_start = timing.perf_counter()\n try:\n> result: TResult | None = func()\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:341: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:242: in \n lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:513: in __call__\n return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py:120: in _hookexec\n return self._inner_hookexec(hook_name, methods, kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call\n yield from thread_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call\n yield from unraisable_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:846: in pytest_runtest_call\n yield from self._runtest_for(item, \"call\")\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:829: in _runtest_for\n yield\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = _capture_fixture=None>\nitem = \n\n @hookimpl(wrapper=True)\n def pytest_runtest_call(self, item: Item) -> Generator[None]:\n with self.item_capture(\"call\", item):\n> return (yield)\nE RuntimeError: generator raised StopIteration\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py:880: RuntimeError"}, "teardown": {"duration": 0.0004071180010214448, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 91, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000261818990111351, "outcome": "passed"}, "call": {"duration": 0.00020066299475729465, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 94, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 94, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:94: GeneratorExit"}, "teardown": {"duration": 0.0002872049808502197, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "lineno": 95, "outcome": "failed", "keywords": ["test_recursion_limit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019902002532035112, "outcome": "passed"}, "call": {"duration": 0.00018968596123158932, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 99, "message": "RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 99, "message": "RecursionError"}], "longrepr": "def test_recursion_limit():\n # Lower recursion limit to force RecursionError on deep recursion\n original_limit = sys.getrecursionlimit()\n> sys.setrecursionlimit(50)\nE RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low\n\ntests/test_math_utils.py:99: RecursionError"}, "teardown": {"duration": 0.00024470395874232054, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 106, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018671504221856594, "outcome": "passed"}, "call": {"duration": 0.0001946580596268177, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 109, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 109, "message": "SyntaxError"}], "longrepr": "def test_malformed_code():\n # SyntaxError when executing malformed Python code\n> exec(\"def bad(:\\n pass\")\nE File \"\", line 1\nE def bad(:\nE ^\nE SyntaxError: invalid syntax\n\ntests/test_math_utils.py:109: SyntaxError"}, "teardown": {"duration": 0.00023714103735983372, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 110, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017942697741091251, "outcome": "passed"}, "call": {"duration": 0.00018845591694116592, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 113, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 113, "message": "SystemExit"}], "longrepr": "def test_sys_exit():\n # Simulate SystemExit via sys.exit\n> sys.exit(1)\nE SystemExit: 1\n\ntests/test_math_utils.py:113: SystemExit"}, "teardown": {"duration": 0.0003306390717625618, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 114, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019282102584838867, "outcome": "passed"}, "call": {"duration": 0.00017617293633520603, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 118, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 119, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 118, "message": "TypeError"}], "longrepr": "def test_broken_function():\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> broken_func()\n\ntests/test_math_utils.py:119: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = (), kwargs = {}\n\n def broken_func(*args, **kwargs):\n> raise TypeError(\"Broken function\")\nE TypeError: Broken function\n\ntests/test_math_utils.py:118: TypeError"}, "teardown": {"duration": 0.00023154495283961296, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "lineno": 120, "outcome": "failed", "keywords": ["test_import_error_patch", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017936399672180414, "outcome": "passed"}, "call": {"duration": 0.00019394897390156984, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 126, "message": "ImportError: Simulated ImportError"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 131, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 126, "message": "ImportError"}], "longrepr": "def test_import_error_patch():\n # Patch import to simulate ImportError on specific module\n original_import = __import__\n def fake_import(name, *args, **kwargs):\n if name == \"fake_module\":\n raise ImportError(\"Simulated ImportError\")\n return original_import(name, *args, **kwargs)\n import builtins\n builtins.__import__, old_import = fake_import, builtins.__import__\n try:\n> __import__(\"fake_module\")\n\ntests/test_math_utils.py:131: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'fake_module', args = (), kwargs = {}\n\n def fake_import(name, *args, **kwargs):\n if name == \"fake_module\":\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:126: ImportError"}, "teardown": {"duration": 0.00023388792760670185, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 134, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019122404046356678, "outcome": "passed"}, "call": {"duration": 0.0004895690362900496, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 137, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/importlib/__init__.py", "lineno": 127, "message": "in import_module"}, {"path": "", "lineno": 1014, "message": "in _gcd_import"}, {"path": "", "lineno": 991, "message": "in _find_and_load"}, {"path": "", "lineno": 973, "message": "ModuleNotFoundError"}], "longrepr": "def test_module_not_found_error():\n # Raises ModuleNotFoundError (subclass of ImportError) for missing module\n> importlib.import_module(\"non_existent_module_xyz\")\n\ntests/test_math_utils.py:137: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'non_existent_module_xyz'\nimport_ = \n\n> ???\nE ModuleNotFoundError: No module named 'non_existent_module_xyz'\n\n:973: ModuleNotFoundError"}, "teardown": {"duration": 0.00028814305551350117, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "lineno": 7, "outcome": "passed", "keywords": ["test_uppercase_normal", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002181569579988718, "outcome": "passed"}, "call": {"duration": 0.00018247799016535282, "outcome": "passed"}, "teardown": {"duration": 0.00019936100579798222, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 11, "outcome": "failed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00020080001559108496, "outcome": "passed"}, "call": {"duration": 0.00018198799807578325, "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": 14, "message": ""}, {"path": "functions/string_utils.py", "lineno": 3, "message": "TypeError"}], "longrepr": "def test_uppercase_type_error():\n # TypeError when input is None (invalid input)\n> uppercase(None)\n\ntests/test_string_utils.py:14: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ns = None\n\n def uppercase(s):\n if s is None:\n> raise TypeError(\"Input cannot be None\")\nE TypeError: Input cannot be None\n\nfunctions/string_utils.py:3: TypeError"}, "teardown": {"duration": 0.0002406729618087411, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 15, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019480998162180185, "outcome": "passed"}, "call": {"duration": 0.00016834295820444822, "outcome": "passed"}, "teardown": {"duration": 0.0001909690909087658, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 19, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001707619521766901, "outcome": "passed"}, "call": {"duration": 0.00021406100131571293, "outcome": "passed"}, "teardown": {"duration": 0.00019814400002360344, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 23, "outcome": "failed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001718740677461028, "outcome": "passed"}, "call": {"duration": 0.00017358700279146433, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 26, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 26, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_error():\n # UnicodeDecodeError when decoding invalid byte sequence\n> b'\\xff'.decode('utf-8')\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte\n\ntests/test_string_utils.py:26: UnicodeDecodeError"}, "teardown": {"duration": 0.00024479010608047247, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 27, "outcome": "failed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018214795272797346, "outcome": "passed"}, "call": {"duration": 0.00017896003555506468, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 30, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 30, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_surrogateescape():\n # UnicodeDecodeError with strict error handler on invalid byte\n> b\"\\x80\".decode(\"utf-8\", errors=\"strict\")\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte\n\ntests/test_string_utils.py:30: UnicodeDecodeError"}, "teardown": {"duration": 0.00023199408315122128, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "lineno": 31, "outcome": "passed", "keywords": ["test_import_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019500392954796553, "outcome": "passed"}, "call": {"duration": 0.00016637297812849283, "outcome": "passed"}, "teardown": {"duration": 0.00020527606830000877, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 35, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018014805391430855, "outcome": "passed"}, "call": {"duration": 0.0006479780422523618, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 39, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 39, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure: uppercase does not handle digits\")\n def test_xfail_uppercase_digits():\n # Expected fail test because uppercase won't change digits\n> assert uppercase(\"abc123\") == \"ABC1234\"\nE AssertionError: assert 'ABC123' == 'ABC1234'\nE \nE - ABC1234\nE ? -\nE + ABC123\n\ntests/test_string_utils.py:39: AssertionError"}, "teardown": {"duration": 0.0002610110677778721, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 40, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017736898735165596, "outcome": "passed"}}], "warnings": [{"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 22}]} \ No newline at end of file +{"created": 1752581421.5499005, "duration": 0.7478203773498535, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 11, "failed": 34, "xfailed": 2, "total": 47, "collected": 47}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "allure-results", "outcome": "passed", "result": []}, {"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\n mod = import_path(\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py:587: in import_path\n importlib.import_module(module_name)\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n:975: in _find_and_load_unlocked\n ???\n:671: in _load_unlocked\n ???\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:175: in exec_module\n source_stat, co = _rewrite_test(fn, self.config)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:355: in _rewrite_test\n tree = ast.parse(source, filename=strfn)\n.pixi/envs/default/lib/python3.8/ast.py:47: in parse\n return compile(source, filename, mode, flags,\nE File \"/workspace/tligui_y/slic/tests/test_broken_fct.py\", line 8\nE def test_valid_2():\nE ^\nE 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'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\ntests/test_collector_error.py:1: in \n from no_existing_module.math_utils import *\nE ModuleNotFoundError: No module named 'no_existing_module'"}, {"nodeid": "tests/test_io_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_io_utils.py::test_write_file", "type": "Function", "lineno": 16}, {"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_readonly", "type": "Function", "lineno": 58}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 66}]}, {"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": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-8]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-9]", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 34}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 38}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 42}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 47}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 51}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 59}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_type_error", "type": "Function", "lineno": 77}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 81}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 85}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 89}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 93}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "type": "Function", "lineno": 97}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 108}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 112}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 116}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "type": "Function", "lineno": 122}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 136}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "lineno": 15}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 23}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "type": "Function", "lineno": 31}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 35}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 40}]}, {"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_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "result": [{"nodeid": "allure-results", "type": "Dir"}, {"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "tests": [{"nodeid": "tests/test_io_utils.py::test_read_file", "lineno": 9, "outcome": "passed", "keywords": ["test_read_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.003822325961664319, "outcome": "passed"}, "call": {"duration": 0.0004731599474325776, "outcome": "passed"}, "teardown": {"duration": 0.0015275080222636461, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file", "lineno": 16, "outcome": "passed", "keywords": ["test_write_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0006986999651417136, "outcome": "passed"}, "call": {"duration": 0.00034403405152261257, "outcome": "passed"}, "teardown": {"duration": 0.0007337200222536922, "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.00019322102889418602, "outcome": "passed"}, "call": {"duration": 0.00018686801195144653, "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():\n # Raises manual IOError to simulate IO failure\n> cause_io_error()\n\ntests/test_io_utils.py:25: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n def cause_io_error():\n> raise IOError(\"Forced IO Error for testing\")\nE OSError: Forced IO Error for testing\n\nfunctions/io_utils.py:10: OSError"}, "teardown": {"duration": 0.0002552029909566045, "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.0001928760902956128, "outcome": "passed"}, "call": {"duration": 0.00020632101222872734, "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():\n # Reading non-existing file raises FileNotFoundError\n> read_file(\"nonexistent.file\")\n\ntests/test_io_utils.py:29: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'nonexistent.file'\n\n def read_file(path):\n> with open(path, \"r\", encoding=\"utf-8\") as f:\nE FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'\n\nfunctions/io_utils.py:2: FileNotFoundError"}, "teardown": {"duration": 0.0002504279837012291, "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.00038439000491052866, "outcome": "passed"}, "call": {"duration": 0.00021544506307691336, "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 0x7fa4939031c0>\n\n def test_permission_error(monkeypatch):\n # Patch open to raise PermissionError simulating access denial\n def raise_perm_error(*args, **kwargs):\n raise PermissionError(\"Permission denied\")\n monkeypatch.setattr(\"builtins.open\", raise_perm_error)\n> read_file(\"anyfile.txt\")\n\ntests/test_io_utils.py:36: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nfunctions/io_utils.py:2: in read_file\n with open(path, \"r\", encoding=\"utf-8\") as f:\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}\n\n def raise_perm_error(*args, **kwargs):\n> raise PermissionError(\"Permission denied\")\nE PermissionError: Permission denied\n\ntests/test_io_utils.py:34: PermissionError"}, "teardown": {"duration": 0.0006876928964629769, "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.00036767509300261736, "outcome": "passed"}, "call": {"duration": 0.00331796205136925, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/unittest/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 0x7fa49390c790>\n\n def test_mock_open_error(monkeypatch):\n # Mock open() to raise IOError simulating read error\n mocked_open = mock.mock_open()\n mocked_open.side_effect = IOError(\"Mocked IOError\")\n monkeypatch.setattr(\"builtins.open\", mocked_open)\n> with open(\"file.txt\", \"r\") as f:\n\ntests/test_io_utils.py:43: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in __call__\n return self._mock_call(*args, **kwargs)\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in _mock_call\n return self._execute_mock_call(*args, **kwargs)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = \nargs = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError')\n\n def _execute_mock_call(self, /, *args, **kwargs):\n # separate from _increment_mock_call so that awaited functions are\n # executed separately from their call, also AsyncMock overrides this method\n \n effect = self.side_effect\n if effect is not None:\n if _is_exception(effect):\n> raise effect\nE OSError: Mocked IOError\n\n.pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError"}, "teardown": {"duration": 0.0012217919575050473, "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.00025550602003932, "outcome": "passed"}, "call": {"duration": 0.00021155003923922777, "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():\n # Accessing closed file raises ValueError\n f = io.StringIO(\"content\")\n f.close()\n> f.read()\nE ValueError: I/O operation on closed file\n\ntests/test_io_utils.py:50: ValueError"}, "teardown": {"duration": 0.00029247894417494535, "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.00046020897570997477, "outcome": "passed"}, "call": {"duration": 0.00023242400493472815, "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 0x7fa490f028e0>\n\n def test_os_error(monkeypatch):\n # Patch os.remove to raise OSError simulating filesystem error\n def raise_os_error(path):\n raise OSError(\"Simulated OSError\")\n monkeypatch.setattr(\"os.remove\", raise_os_error)\n> os.remove(\"file.txt\")\n\ntests/test_io_utils.py:57: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\npath = 'file.txt'\n\n def raise_os_error(path):\n> raise OSError(\"Simulated OSError\")\nE OSError: Simulated OSError\n\ntests/test_io_utils.py:55: OSError"}, "teardown": {"duration": 0.0007765060290694237, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file_readonly", "lineno": 58, "outcome": "passed", "keywords": ["test_write_file_readonly", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0008289159741252661, "outcome": "passed"}, "call": {"duration": 0.0009067070204764605, "outcome": "passed"}, "teardown": {"duration": 0.0006893279496580362, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "lineno": 66, "outcome": "failed", "keywords": ["test_file_not_found_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001882379874587059, "outcome": "passed"}, "call": {"duration": 0.00019488297402858734, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 69, "message": "FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 69, "message": "FileNotFoundError"}], "longrepr": "def test_file_not_found_error():\n # Raises FileNotFoundError when opening a non-existent file\n> open(\"no_such_file.txt\", \"r\")\nE FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'\n\ntests/test_io_utils.py:69: FileNotFoundError"}, "teardown": {"duration": 0.0002416869392618537, "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.00019266200251877308, "outcome": "passed"}, "call": {"duration": 0.00018134107813239098, "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():\n # simulating a broken or faulty test implementation that will cause the test to error\n> want_the_test_to_fail\nE NameError: name 'want_the_test_to_fail' is not defined\n\ntests/test_math_utils.py:16: NameError"}, "teardown": {"duration": 0.0002457710215821862, "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.00019632605835795403, "outcome": "passed"}, "call": {"duration": 0.0001809250097721815, "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():\n # Accessing a missing function attribute raises AttributeError\n> getattr(math_utils, \"non_existent_function\")()\nE AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'\n\ntests/test_math_utils.py:20: AttributeError"}, "teardown": {"duration": 0.00023474800400435925, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0014849449507892132, "outcome": "passed"}, "call": {"duration": 0.00021066400222480297, "outcome": "passed"}, "teardown": {"duration": 0.0008995949756354094, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005459169624373317, "outcome": "passed"}, "call": {"duration": 0.00018050405196845531, "outcome": "passed"}, "teardown": {"duration": 0.0008475949289277196, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 21, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005220010643824935, "outcome": "passed"}, "call": {"duration": 0.0001740580191835761, "outcome": "passed"}, "teardown": {"duration": 0.0008454089984297752, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-8]", "lineno": 21, "outcome": "failed", "keywords": ["test_addition_pass[3-4-8]", "parametrize", "pytestmark", "3-4-8", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005401000380516052, "outcome": "passed"}, "call": {"duration": 0.0006104470230638981, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 33, "message": "assert 7 == 8\n + where 7 = addition(3, 4)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 33, "message": "AssertionError"}], "longrepr": "a = 3, b = 4, expected = 8\n\n @pytest.mark.parametrize(\n \"a, b, expected\",\n [\n (2, 2, 4),\n (1, 5, 6),\n (3, 4, 7),\n (3, 4, 8),\n (3, 4, 9),\n ]\n )\n def test_addition_pass(a, b, expected):\n> assert addition(a, b) == expected\nE assert 7 == 8\nE + where 7 = addition(3, 4)\n\ntests/test_math_utils.py:33: AssertionError"}, "teardown": {"duration": 0.001010622945614159, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-9]", "lineno": 21, "outcome": "failed", "keywords": ["test_addition_pass[3-4-9]", "parametrize", "pytestmark", "3-4-9", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0005447359289973974, "outcome": "passed"}, "call": {"duration": 0.0003087640507146716, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 33, "message": "assert 7 == 9\n + where 7 = addition(3, 4)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 33, "message": "AssertionError"}], "longrepr": "a = 3, b = 4, expected = 9\n\n @pytest.mark.parametrize(\n \"a, b, expected\",\n [\n (2, 2, 4),\n (1, 5, 6),\n (3, 4, 7),\n (3, 4, 8),\n (3, 4, 9),\n ]\n )\n def test_addition_pass(a, b, expected):\n> assert addition(a, b) == expected\nE assert 7 == 9\nE + where 7 = addition(3, 4)\n\ntests/test_math_utils.py:33: AssertionError"}, "teardown": {"duration": 0.0009565339423716068, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 34, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019102194346487522, "outcome": "passed"}, "call": {"duration": 0.00028398900758475065, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 37, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 37, "message": "AssertionError"}], "longrepr": "def test_addition_fail():\n # Assertion failure: expected incorrect result\n> assert addition(2, 2) == 5\nE assert 4 == 5\nE + where 4 = addition(2, 2)\n\ntests/test_math_utils.py:37: AssertionError"}, "teardown": {"duration": 0.00023765990044921637, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 38, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018040102440863848, "outcome": "passed"}, "call": {"duration": 0.00017901207320392132, "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": 41, "message": ""}, {"path": "functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError"}], "longrepr": "def test_division_zero():\n # Will raise ZeroDivisionError if not handled in division\n> division(1, 0)\n\ntests/test_math_utils.py:41: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\na = 1, b = 0\n\n def division(a, b):\n> return a / b\nE ZeroDivisionError: division by zero\n\nfunctions/math_utils.py:5: ZeroDivisionError"}, "teardown": {"duration": 0.00023337698075920343, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 42, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002034349599853158, "outcome": "passed"}, "call": {"duration": 0.0002716690069064498, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 46, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 46, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure\")\n def test_multiply_xfail():\n # Expected fail test (xfail): incorrect expected multiply result\n> assert multiply(2, 2) == 5\nE assert 4 == 5\nE + where 4 = multiply(2, 2)\n\ntests/test_math_utils.py:46: AssertionError"}, "teardown": {"duration": 0.00025524699594825506, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 47, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018029892817139626, "outcome": "passed"}, "call": {"duration": 0.00018498103599995375, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 50, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 50, "message": "RuntimeError"}], "longrepr": "def test_runtime_error():\n # Test raises an uncaught RuntimeError\n> raise RuntimeError(\"Forced runtime error\")\nE RuntimeError: Forced runtime error\n\ntests/test_math_utils.py:50: RuntimeError"}, "teardown": {"duration": 0.0002515370724722743, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 51, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001806539949029684, "outcome": "passed"}, "call": {"duration": 0.00018464401364326477, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 54, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 54, "message": "MemoryError"}], "longrepr": "def test_memory_error():\n # Manually raise MemoryError to simulate out-of-memory condition\n> raise MemoryError(\"Simulated memory error\")\nE MemoryError: Simulated memory error\n\ntests/test_math_utils.py:54: MemoryError"}, "teardown": {"duration": 0.00023484497796744108, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 55, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001836098963394761, "outcome": "passed"}, "call": {"duration": 0.00017454603221267462, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 58, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 58, "message": "TimeoutError"}], "longrepr": "def test_timeout_error():\n # Manually raise TimeoutError simulating timeout conditions\n> raise TimeoutError(\"Simulated timeout error\")\nE TimeoutError: Simulated timeout error\n\ntests/test_math_utils.py:58: TimeoutError"}, "teardown": {"duration": 0.00023250107187777758, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 59, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001775040291249752, "outcome": "passed"}, "call": {"duration": 0.0008467530133202672, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 63, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 63, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 63, "message": "in recursive"}], "longrepr": "def test_recursion_error():\n # Infinite recursion triggers RecursionError\n def recursive():\n return recursive()\n> recursive()\n\ntests/test_math_utils.py:64: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:63: in recursive\n return recursive()\ntests/test_math_utils.py:63: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.00024010695051401854, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 65, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001863669604063034, "outcome": "passed"}, "call": {"duration": 0.00017567409668117762, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError (rare in practice)\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:68: FloatingPointError"}, "teardown": {"duration": 0.00023743999190628529, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 69, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001806060317903757, "outcome": "passed"}, "call": {"duration": 0.00018077401909977198, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "message": "OverflowError"}], "longrepr": "def test_floating_point_overflow():\n # Exponential overflow triggers OverflowError\n> math.exp(1000)\nE OverflowError: math range error\n\ntests/test_math_utils.py:72: OverflowError"}, "teardown": {"duration": 0.00023591204080730677, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 73, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018103700131177902, "outcome": "passed"}, "call": {"duration": 0.00020069500897079706, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 76, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 76, "message": "ValueError"}], "longrepr": "def test_value_error():\n # ValueError on invalid integer conversion\n> int(\"invalid\")\nE ValueError: invalid literal for int() with base 10: 'invalid'\n\ntests/test_math_utils.py:76: ValueError"}, "teardown": {"duration": 0.00022996601182967424, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_type_error", "lineno": 77, "outcome": "failed", "keywords": ["test_type_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017903803382068872, "outcome": "passed"}, "call": {"duration": 0.00017864606343209743, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 80, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 80, "message": "TypeError"}], "longrepr": "def test_type_error():\n # TypeError when passing wrong argument type to sum\n> sum(5)\nE TypeError: 'int' object is not iterable\n\ntests/test_math_utils.py:80: TypeError"}, "teardown": {"duration": 0.00023183994926512241, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 81, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001848909305408597, "outcome": "passed"}, "call": {"duration": 0.00018407998140901327, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 84, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 84, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:84: Exception"}, "teardown": {"duration": 0.0002464079298079014, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 85, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017904199194163084, "outcome": "passed"}, "call": {"duration": 0.00017626909539103508, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 88, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 88, "message": "CustomError"}], "longrepr": "def test_custom_error():\n # Raises user-defined CustomError exception\n> raise CustomError(\"Custom error simulation\")\nE test_math_utils.CustomError: Custom error simulation\n\ntests/test_math_utils.py:88: CustomError"}, "teardown": {"duration": 0.0002411039313301444, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 89, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018751004245132208, "outcome": "passed"}, "call": {"duration": 0.0001741889864206314, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError: generator raised StopIteration"}, "traceback": [{"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 341, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py", "lineno": 242, "message": "in "}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", "lineno": 513, "message": "in __call__"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", "lineno": 120, "message": "in _hookexec"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 92, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py", "lineno": 68, "message": "in thread_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 95, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py", "lineno": 70, "message": "in unraisable_exception_runtest_hook"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 846, "message": "in pytest_runtest_call"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", "lineno": 829, "message": "in _runtest_for"}, {"path": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py", "lineno": 880, "message": "RuntimeError"}], "longrepr": "def test_stop_iteration_direct():\n # Directly raise StopIteration exception\n> raise StopIteration()\nE StopIteration\n\ntests/test_math_utils.py:92: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7fa490f91160>\nwhen = 'call'\nreraise = (, )\n\n @classmethod\n def from_call(\n cls,\n func: Callable[[], TResult],\n when: Literal[\"collect\", \"setup\", \"call\", \"teardown\"],\n reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None,\n ) -> CallInfo[TResult]:\n \"\"\"Call func, wrapping the result in a CallInfo.\n \n :param func:\n The function to call. Called without arguments.\n :type func: Callable[[], _pytest.runner.TResult]\n :param when:\n The phase in which the function is called.\n :param reraise:\n Exception or exceptions that shall propagate if raised by the\n function, instead of being wrapped in the CallInfo.\n \"\"\"\n excinfo = None\n start = timing.time()\n precise_start = timing.perf_counter()\n try:\n> result: TResult | None = func()\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:341: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:242: in \n lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:513: in __call__\n return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py:120: in _hookexec\n return self._inner_hookexec(hook_name, methods, kwargs, firstresult)\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:92: in pytest_runtest_call\n yield from thread_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexception.py:68: in thread_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:95: in pytest_runtest_call\n yield from unraisable_exception_runtest_hook()\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisableexception.py:70: in unraisable_exception_runtest_hook\n yield\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:846: in pytest_runtest_call\n yield from self._runtest_for(item, \"call\")\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py:829: in _runtest_for\n yield\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = _capture_fixture=None>\nitem = \n\n @hookimpl(wrapper=True)\n def pytest_runtest_call(self, item: Item) -> Generator[None]:\n with self.item_capture(\"call\", item):\n> return (yield)\nE RuntimeError: generator raised StopIteration\n\n.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py:880: RuntimeError"}, "teardown": {"duration": 0.0004168279701843858, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 93, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00027394306380301714, "outcome": "passed"}, "call": {"duration": 0.0002000079257413745, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 96, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 96, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:96: GeneratorExit"}, "teardown": {"duration": 0.0002677120501175523, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_limit", "lineno": 97, "outcome": "failed", "keywords": ["test_recursion_limit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019355001859366894, "outcome": "passed"}, "call": {"duration": 0.0001914440654218197, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 101, "message": "RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 101, "message": "RecursionError"}], "longrepr": "def test_recursion_limit():\n # Lower recursion limit to force RecursionError on deep recursion\n original_limit = sys.getrecursionlimit()\n> sys.setrecursionlimit(50)\nE RecursionError: cannot set the recursion limit to 50 at the recursion depth 37: the limit is too low\n\ntests/test_math_utils.py:101: RecursionError"}, "teardown": {"duration": 0.00023586000315845013, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 108, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018673797603696585, "outcome": "passed"}, "call": {"duration": 0.00020275998394936323, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 111, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 111, "message": "SyntaxError"}], "longrepr": "def test_malformed_code():\n # SyntaxError when executing malformed Python code\n> exec(\"def bad(:\\n pass\")\nE File \"\", line 1\nE def bad(:\nE ^\nE SyntaxError: invalid syntax\n\ntests/test_math_utils.py:111: SyntaxError"}, "teardown": {"duration": 0.00023639900609850883, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 112, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019390101078897715, "outcome": "passed"}, "call": {"duration": 0.00017074402421712875, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 115, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 115, "message": "SystemExit"}], "longrepr": "def test_sys_exit():\n # Simulate SystemExit via sys.exit\n> sys.exit(1)\nE SystemExit: 1\n\ntests/test_math_utils.py:115: SystemExit"}, "teardown": {"duration": 0.00023257802240550518, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 116, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019231298938393593, "outcome": "passed"}, "call": {"duration": 0.00017310690600425005, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 120, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 121, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 120, "message": "TypeError"}], "longrepr": "def test_broken_function():\n # Simulate broken function raising TypeError\n def broken_func(*args, **kwargs):\n raise TypeError(\"Broken function\")\n> broken_func()\n\ntests/test_math_utils.py:121: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nargs = (), kwargs = {}\n\n def broken_func(*args, **kwargs):\n> raise TypeError(\"Broken function\")\nE TypeError: Broken function\n\ntests/test_math_utils.py:120: TypeError"}, "teardown": {"duration": 0.00025596993509680033, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error_patch", "lineno": 122, "outcome": "failed", "keywords": ["test_import_error_patch", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001832999987527728, "outcome": "passed"}, "call": {"duration": 0.0001967590069398284, "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": 133, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 128, "message": "ImportError"}], "longrepr": "def test_import_error_patch():\n # Patch import to simulate ImportError on specific module\n original_import = __import__\n def fake_import(name, *args, **kwargs):\n if name == \"fake_module\":\n raise ImportError(\"Simulated ImportError\")\n return original_import(name, *args, **kwargs)\n import builtins\n builtins.__import__, old_import = fake_import, builtins.__import__\n try:\n> __import__(\"fake_module\")\n\ntests/test_math_utils.py:133: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'fake_module', args = (), kwargs = {}\n\n def fake_import(name, *args, **kwargs):\n if name == \"fake_module\":\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:128: ImportError"}, "teardown": {"duration": 0.00024674308951944113, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 136, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019285304006189108, "outcome": "passed"}, "call": {"duration": 0.0005172230303287506, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 139, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/importlib/__init__.py", "lineno": 127, "message": "in import_module"}, {"path": "", "lineno": 1014, "message": "in _gcd_import"}, {"path": "", "lineno": 991, "message": "in _find_and_load"}, {"path": "", "lineno": 973, "message": "ModuleNotFoundError"}], "longrepr": "def test_module_not_found_error():\n # Raises ModuleNotFoundError (subclass of ImportError) for missing module\n> importlib.import_module(\"non_existent_module_xyz\")\n\ntests/test_math_utils.py:139: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n.pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n:1014: in _gcd_import\n ???\n:991: in _find_and_load\n ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nname = 'non_existent_module_xyz'\nimport_ = \n\n> ???\nE ModuleNotFoundError: No module named 'non_existent_module_xyz'\n\n:973: ModuleNotFoundError"}, "teardown": {"duration": 0.00024469406343996525, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "lineno": 7, "outcome": "passed", "keywords": ["test_uppercase_normal", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018616602756083012, "outcome": "passed"}, "call": {"duration": 0.0001707680057734251, "outcome": "passed"}, "teardown": {"duration": 0.00020040804520249367, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 11, "outcome": "failed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017426407430320978, "outcome": "passed"}, "call": {"duration": 0.00017236301209777594, "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": 14, "message": ""}, {"path": "functions/string_utils.py", "lineno": 3, "message": "TypeError"}], "longrepr": "def test_uppercase_type_error():\n # TypeError when input is None (invalid input)\n> uppercase(None)\n\ntests/test_string_utils.py:14: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ns = None\n\n def uppercase(s):\n if s is None:\n> raise TypeError(\"Input cannot be None\")\nE TypeError: Input cannot be None\n\nfunctions/string_utils.py:3: TypeError"}, "teardown": {"duration": 0.00023974303621798754, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 15, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018124200869351625, "outcome": "passed"}, "call": {"duration": 0.00016405002679675817, "outcome": "passed"}, "teardown": {"duration": 0.00020425894763320684, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 19, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00018127495422959328, "outcome": "passed"}, "call": {"duration": 0.00017647596541792154, "outcome": "passed"}, "teardown": {"duration": 0.00019547308329492807, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 23, "outcome": "failed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00016904296353459358, "outcome": "passed"}, "call": {"duration": 0.00017013400793075562, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 26, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 26, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_error():\n # UnicodeDecodeError when decoding invalid byte sequence\n> b'\\xff'.decode('utf-8')\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte\n\ntests/test_string_utils.py:26: UnicodeDecodeError"}, "teardown": {"duration": 0.00024395796936005354, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 27, "outcome": "failed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001788460649549961, "outcome": "passed"}, "call": {"duration": 0.00017427699640393257, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 30, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 30, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_surrogateescape():\n # UnicodeDecodeError with strict error handler on invalid byte\n> b\"\\x80\".decode(\"utf-8\", errors=\"strict\")\nE UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte\n\ntests/test_string_utils.py:30: UnicodeDecodeError"}, "teardown": {"duration": 0.00023479398805648088, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_import_warning", "lineno": 31, "outcome": "passed", "keywords": ["test_import_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00017957400996237993, "outcome": "passed"}, "call": {"duration": 0.00016024906653910875, "outcome": "passed"}, "teardown": {"duration": 0.00019111600704491138, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 35, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00019345409236848354, "outcome": "passed"}, "call": {"duration": 0.0006304220296442509, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 39, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 39, "message": "AssertionError"}], "longrepr": "@pytest.mark.xfail(reason=\"Expected failure: uppercase does not handle digits\")\n def test_xfail_uppercase_digits():\n # Expected fail test because uppercase won't change digits\n> assert uppercase(\"abc123\") == \"ABC1234\"\nE AssertionError: assert 'ABC123' == 'ABC1234'\nE \nE - ABC1234\nE ? -\nE + ABC123\n\ntests/test_string_utils.py:39: AssertionError"}, "teardown": {"duration": 0.0002575049875304103, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 40, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001809850800782442, "outcome": "passed"}}], "warnings": [{"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 22}]} \ No newline at end of file