From 5ea593b56a5ca9bf904f07572f8cb15286122a22 Mon Sep 17 00:00:00 2001 From: ci-bot Date: Mon, 21 Jul 2025 08:22:31 +0000 Subject: [PATCH] CI: update test report and coverage files --- ci-reports/markdown/TEST-REPORT.md | 5886 ++++++++++++++++++++++- ci-reports/markdown/coverage-summary.md | 8 +- ci-reports/markdown/json-tree-view.txt | 2838 ++++++++++- ci-reports/markdown/pytest-report.json | 2 +- ci-reports/markdown/runtime_params.json | 475 +- 5 files changed, 8743 insertions(+), 466 deletions(-) diff --git a/ci-reports/markdown/TEST-REPORT.md b/ci-reports/markdown/TEST-REPORT.md index 9e2f297f..d4ecf481 100644 --- a/ci-reports/markdown/TEST-REPORT.md +++ b/ci-reports/markdown/TEST-REPORT.md @@ -1,6 +1,58 @@ -๐Ÿ›‘ **Internal error during testing** +โš ๏ธ **Test execution interrupted** -> An internal error occurred while executing the tests. +> The test run was interrupted by the user (reasons : KeyboardInterrupt or ...). + +
+๐Ÿ“‹ 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_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_wrong_argument_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_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 - 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_param.py::test_sum_positive[edge] - assert (-1 + -1) >= 0 +FAILED tests/test_param.py::test_addition - NameError: name 'addition' is not defined +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 +ERROR tests/test_param.py::test_basic_error +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +/workspace/tligui_y/slic/tests/test_string_utils.py:51: KeyboardInterrupt +(to show a full traceback on KeyboardInterrupt use --full-trace) +== 33 failed, 37 passed, 1 skipped, 2 xfailed, 2 warnings, 3 errors in 0.81s === +``` +
๐Ÿชต Full raw pytest log @@ -9,60 +61,5590 @@ ============================= test session starts ============================== platform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0 rootdir: /workspace/tligui_y/slic -plugins: html-4.1.1, metadata-3.1.1, allure-pytest-2.13.5, cov-5.0.0, json-report-0.8.0.dev0, md-report-0.6.2 +plugins: metadata-3.1.1, html-4.1.1, allure-pytest-2.13.5, cov-5.0.0, json-report-1.3.0 collected 75 items / 2 errors -INTERNALERROR> Traceback (most recent call last): -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/main.py", line 283, in wrap_session -INTERNALERROR> session.exitstatus = doit(config, session) or 0 -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/main.py", line 336, in _main -INTERNALERROR> config.hook.pytest_collection(session=session) -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py", line 513, in __call__ -INTERNALERROR> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", line 120, in _hookexec -INTERNALERROR> return self._inner_hookexec(hook_name, methods, kwargs, firstresult) -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 139, in _multicall -INTERNALERROR> raise exception.with_traceback(exception.__traceback__) -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 122, in _multicall -INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr] -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.py", line 790, in pytest_collection -INTERNALERROR> return (yield) -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 122, in _multicall -INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr] -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/warnings.py", line 121, in pytest_collection -INTERNALERROR> return (yield) -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 122, in _multicall -INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr] -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1417, in pytest_collection -INTERNALERROR> return (yield) -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_callers.py", line 103, in _multicall -INTERNALERROR> res = hook_impl.function(*args) -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/main.py", line 347, in pytest_collection -INTERNALERROR> session.perform_collect() -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/main.py", line 811, in perform_collect -INTERNALERROR> self.config.pluginmanager.check_pending() -INTERNALERROR> File "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.py", line 391, in check_pending -INTERNALERROR> raise PluginValidationError( -INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warning_captured' in plugin -============================== 2 errors in 0.18s =============================== +tests/test_io_utils.py ..FFFFFF.F +tests/test_math_utils.py FF........FFxFFFFFFFFFFFFFFFFF +tests/test_param.py ...s.......F............FE +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' +______________________ ERROR at setup of test_basic_error ______________________ +file /workspace/tligui_y/slic/tests/test_param.py, line 100 + def test_basic_error(x): +E fixture 'x' not found +> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, complex_setup, cov, doctest_namespace, element, extra, extras, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory +> use 'pytest --fixtures [testpath]' for help on them. + +/workspace/tligui_y/slic/tests/test_param.py:100 +=================================== 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 0x7fe4e2616af0> + + 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 0x7fe4e4b609d0> + + 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 0x7fe4e4a56130> + + 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:70: 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_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:51: AssertionError +______________________________ test_division_zero ______________________________ + + def test_division_zero(): + # Will raise ZeroDivisionError if not handled in division +> division(1, 0) + +tests/test_math_utils.py:55: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +a = 1, b = 0 + + def division(a, b): +> return a / b +E ZeroDivisionError: division by zero + +functions/math_utils.py:5: ZeroDivisionError +______________________________ 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:64: 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:68: 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:72: TimeoutError +_____________________________ test_recursion_error _____________________________ + + def test_recursion_error(): + # Infinite recursion triggers RecursionError + def recursive(): + return recursive() +> recursive() + +tests/test_math_utils.py:78: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/test_math_utils.py:77: in recursive + return recursive() +tests/test_math_utils.py:77: in recursive + return recursive() +E RecursionError: maximum recursion depth exceeded +!!! Recursion detected (same locals & position) +__________________________ test_floating_point_error ___________________________ + + def test_floating_point_error(): + # Manually raise FloatingPointError +> raise FloatingPointError("Simulated floating point error") +E FloatingPointError: Simulated floating point error + +tests/test_math_utils.py:82: FloatingPointError +_________________________ 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:86: 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:90: ValueError +__________________________ test_wrong_argument_error ___________________________ + + def test_wrong_argument_error(): + # TypeError when passing wrong argument type to sum +> sum(5) +E TypeError: 'int' object is not iterable + +tests/test_math_utils.py:94: TypeError +___________________________ 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:98: 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:102: CustomError +__________________________ test_stop_iteration_direct __________________________ + + def test_stop_iteration_direct(): + # Directly raise StopIteration exception +> raise StopIteration() +E StopIteration + +tests/test_math_utils.py:106: StopIteration + +The above exception was the direct cause of the following exception: + +cls = +func = . at 0x7fe4e263e790> +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:110: GeneratorExit +_____________________________ 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:114: SyntaxError +________________________________ test_sys_exit _________________________________ + + def test_sys_exit(): + # Simulate SystemExit via sys.exit +> sys.exit(1) +E SystemExit: 1 + +tests/test_math_utils.py:118: 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:124: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +args = (), kwargs = {} + + def broken_func(*args, **kwargs): +> raise TypeError("Broken function") +E TypeError: Broken function + +tests/test_math_utils.py:123: TypeError +______________________________ test_import_error _______________________________ + + def test_import_error(): + # Directly raise ImportError exception +> 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:132: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +.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_sum_positive[edge] ____________________________ + +x = -1, y = -1 + + @pytest.mark.parametrize("x, y", [(param["x"], param["y"]) for _, param in scenarios], ids=[name for name, _ in scenarios]) + def test_sum_positive(x, y): +> assert (x + y) >= 0 +E assert (-1 + -1) >= 0 + +tests/test_param.py:58: AssertionError +________________________________ test_addition _________________________________ + +a = 5, b = 5, expected = 10 + + def test_addition(a = 5, b = 5, expected = 10): + # Has to pass +> assert addition(a, b) == expected +E NameError: name 'addition' is not defined + +tests/test_param.py:97: NameError +__________________________ test_uppercase_type_error ___________________________ + + def test_uppercase_type_error(): + # TypeError when input is None (invalid input) +> uppercase(None) + +tests/test_string_utils.py:16: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +s = None + + def uppercase(s): + if s is None: +> raise TypeError("Input cannot be None") +E TypeError: Input cannot be None + +functions/string_utils.py:3: TypeError +__________________________ 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:28: 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:32: UnicodeDecodeError +=============================== warnings summary =============================== +tests/test_string_utils.py::test_warning_emit + /workspace/tligui_y/slic/tests/test_string_utils.py:24: UserWarning: Test warning + warnings.warn("Test warning", UserWarning) + +tests/test_string_utils.py::test_syntax_warning + /workspace/tligui_y/slic/tests/test_string_utils.py:36: SyntaxWarning: This is a syntax warning + warnings.warn("This is a syntax warning", SyntaxWarning) + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +--------------------------------- JSON report ---------------------------------- +JSON report written to: ci-reports/markdown/pytest-report.json (70739 bytes) + +---------- 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_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_wrong_argument_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_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 - 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_param.py::test_sum_positive[edge] - assert (-1 + -1) >= 0 +FAILED tests/test_param.py::test_addition - NameError: name 'addition' is not defined +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 +ERROR tests/test_param.py::test_basic_error +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +/workspace/tligui_y/slic/tests/test_string_utils.py:51: KeyboardInterrupt +(to show a full traceback on KeyboardInterrupt use --full-trace) +== 33 failed, 37 passed, 1 skipped, 2 xfailed, 2 warnings, 3 errors in 0.81s === ```
--- # ๐Ÿงช Test Report -*Generated on 2025-07-21 10:12:31 CEST* +*Generated on 2025-07-21 10:22:31 CEST* ## ๐Ÿงพ General Info -- **duration**: 0.1884441375732422 +- **duration**: 0.8041284084320068 - **root**: /workspace/tligui_y/slic - **environment**: {} ## ๐Ÿ“‹ Summary -- **Total**: 0 +- **Passed**: 38 +- **Failed**: 33 +- **Xfailed**: 2 +- **Skipped**: 1 +- **Error**: 1 +- **Total**: 75 +- **Collected**: 75 ## ๐Ÿ”Ž Tests +
+โœ… Passed (38) + + -
+ ๐Ÿ“„ test_io_utils.py + + โ†ณ Function: test_write_file + -
+ โœ… Test 1 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.003419185057282448 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.000472470885142684 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00024303095415234566 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_read_file + -
+ โœ… Test 2 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0004742399323731661 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0002890131436288357 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001505659893155098 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_write_file_in_readonly_mode + -
+ โœ… Test 9 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0006433418020606041 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0011733209248632193 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00015070708468556404 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ + -
+ ๐Ÿ“„ test_math_utils.py + + โ†ณ Function: test_addition_pass + -
+ โœ… Test 13
(params: a=2, b=2, expected=4)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 2 + b: 2 + expected: 4 + id: 2-2-4 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00031072297133505344 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00014862394891679287 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00015942403115332127 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 14
(params: a=1, b=5, expected=6)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 1 + b: 5 + expected: 6 + id: 1-5-6 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0002567949704825878 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001669351477175951 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014910101890563965 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 15
(params: a=3, b=4, expected=7)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 3 + b: 4 + expected: 7 + id: 3-4-7 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00024331314489245415 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00014110002666711807 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013592513278126717 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 16
(params: a=3, b=5, expected=8)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 3 + b: 5 + expected: 8 + id: 3-5-8 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00024708383716642857 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00014045112766325474 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013470486737787724 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 17
(params: a=3, b=6, expected=9)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 3 + b: 6 + expected: 9 + id: 3-6-9 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00024416414089500904 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00015440606512129307 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014007603749632835 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_addition_pass_id + -
+ โœ… Test 18
(params: a=2, b=2, expected=4)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 2 + b: 2 + expected: 4 + id: a=2,b=2,expected=4 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0002395219635218382 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00013332907110452652 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013489299453794956 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 19
(params: a=1, b=5, expected=6)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 1 + b: 5 + expected: 6 + id: a=1,b=5,expected=6 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00024176808074116707 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001257229596376419 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014199083670973778 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 20
(params: a=3, b=4, expected=7)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 3 + b: 4 + expected: 7 + id: a=3,b=4,expected=7 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00025285803712904453 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012931902892887592 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013254000805318356 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ + -
+ ๐Ÿ“„ test_param.py + + โ†ณ Function: test_basic_ids + -
+ โœ… Test 41
(params: x=1)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + x: 1 + id: one + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0002710449043661356 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00015092105604708195 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001268621999770403 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 42
(params: x=2)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + x: 2 + id: two + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001794830895960331 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012820097617805004 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00012323795817792416 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_with_reason_and_marks + -
+ โœ… Test 43
(params: x=10)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + x: 10 + id: ten + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001810300163924694 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012784008868038654 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00011803698725998402 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_multiple_positional_args + -
+ โœ… Test 45
(params: a=1, b=2)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 1 + b: 2 + id: 1-2 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.000236947787925601 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012927898205816746 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013408297672867775 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 46
(params: a=3, b=4)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 3 + b: 4 + id: 3-4 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00022608600556850433 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001266608014702797 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00012320210225880146 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_non_literal_with_id + -
+ โœ… Test 47
(params: data=(object object at 0x7fe4e557c7d0))
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + data: + id: custom-obj + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001700578723102808 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.000130112050101161 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001140739768743515 + ``` + + **outcome:** + + ```python + passed + ``` + + โ†ณ Function: test_timedistance_v1 + -
+ โœ… Test 48
(params: a=2001-12-12 00:00:00, b=2001-12-11 00:00:00, expected=1 day, 0:00:00)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 2001-12-12 00:00:00 + b: 2001-12-11 00:00:00 + expected: 1 day, 0:00:00 + id: a0-b0-expected0 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00025296397507190704 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012605194933712482 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014653708785772324 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 49
(params: a=2001-12-11 00:00:00, b=2001-12-12 00:00:00, expected=-1 day, 0:00:00)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + a: 2001-12-11 00:00:00 + b: 2001-12-12 00:00:00 + expected: -1 day, 0:00:00 + id: a1-b1-expected1 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00026221410371363163 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012742099352180958 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.000133465975522995 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_sum_positive + -
+ โœ… Test 50
(params: x=1, y=2)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + x: 1 + y: 2 + id: one + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00021141208708286285 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001249860506504774 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00012351106852293015 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 51
(params: x=3, y=4)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + x: 3 + y: 4 + id: two + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00021494505926966667 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012786895968019962 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00012217299081385136 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_dynamic + -
+ โœ… Test 53
(params: val=10)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + val: 10 + id: ten + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0002031258773058653 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00013391789980232716 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00011843699030578136 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 54
(params: val=20)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + val: 20 + id: twenty + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001749400980770588 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001242249272763729 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00011219712905585766 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 55
(params: val=30)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + val: 30 + id: thirty + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00018349196761846542 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012882915325462818 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001130630262196064 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_element_type + -
+ โœ… Test 56
(params: element=fire)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + element: fire + id: \U0001f525 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00016994192264974117 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012962380424141884 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00011412100866436958 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 57
(params: element=water)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + element: water + id: \U0001f4a7 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00016118120402097702 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012306193821132183 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00010870699770748615 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 58
(params: element=earth)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + element: earth + id: \U0001f30d + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00015518395230174065 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001309509389102459 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00011090096086263657 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_combination + -
+ โœ… Test 59
(params: y=a, x=1)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + y: a + x: 1 + id: a-1 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00020080292597413063 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001306449994444847 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00012210989370942116 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 60
(params: y=a, x=2)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + y: a + x: 2 + id: a-2 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0002049049362540245 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001269590575248003 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.000125763937830925 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 61
(params: y=b, x=1)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + y: b + x: 1 + id: b-1 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001976208295673132 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012423284351825714 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.000127855921164155 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 62
(params: y=b, x=2)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + y: b + x: 2 + id: b-2 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00020208791829645634 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012378999963402748 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013137515634298325 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_indirect_fixture + -
+ โœ… Test 63
(params: complex_setup=1)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + complex_setup: 1 + id: 1 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00016164383850991726 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012804497964680195 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00011342903599143028 + ``` + + **outcome:** + + ```python + passed + ``` +
+ -
+ โœ… Test 64
(params: complex_setup=2)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + complex_setup: 2 + id: 2 + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00016286317259073257 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00012227008119225502 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00011130701750516891 + ``` + + **outcome:** + + ```python + passed + ``` +
+ + + -
+ ๐Ÿ“„ test_string_utils.py + + โ†ณ Function: test_uppercase_normal + -
+ โœ… Test 67 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00012137484736740589 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001478111371397972 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00010024895891547203 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_reverse_string + -
+ โœ… Test 69 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011761300265789032 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00014080386608839035 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 9.911693632602692e-05 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_warning_emit + -
+ โœ… Test 70 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011179898865520954 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00014877296052873135 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 9.969901293516159e-05 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_syntax_warning + -
+ โœ… Test 73 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001194619107991457 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001617218367755413 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00010246597230434418 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_keyboard_interrupt_direct + -
+ โœ… Test 75 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011712592095136642 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ + + +
+โŒ Failed (33) + + -
+ ๐Ÿ“„ test_io_utils.py + + โ†ณ Function: test_cause_io_error + -
+ โŒ Test 3 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011289305984973907 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00016151205636560917 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/functions/io_utils.py + lineno: 10 + message: OSError: Forced IO Error for testing + ``` + + **traceback:** + + ```python + - path: tests/test_io_utils.py + lineno: 25 + message: None + - path: functions/io_utils.py + lineno: 10 + message: OSError + ``` + + **longrepr:** + + ```python + def test_cause_io_error(): + # Raises manual IOError to simulate IO failure + > cause_io_error() + + tests/test_io_utils.py:25: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + + def cause_io_error(): + > raise IOError("Forced IO Error for testing") + E OSError: Forced IO Error for testing + + functions/io_utils.py:10: OSError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001429300755262375 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_file_not_found + -
+ โŒ Test 4 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00012631993740797043 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00017893104813992977 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/functions/io_utils.py + lineno: 2 + message: FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file' + ``` + + **traceback:** + + ```python + - path: tests/test_io_utils.py + lineno: 29 + message: None + - path: functions/io_utils.py + lineno: 2 + message: FileNotFoundError + ``` + + **longrepr:** + + ```python + def test_file_not_found(): + # Reading non-existing file raises FileNotFoundError + > read_file("nonexistent.file") + + tests/test_io_utils.py:29: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + + path = 'nonexistent.file' + + def read_file(path): + > with open(path, "r", encoding="utf-8") as f: + E FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file' + + functions/io_utils.py:2: FileNotFoundError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013928301632404327 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_permission_error + -
+ โŒ Test 5 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0002248440869152546 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00018275482580065727 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_io_utils.py + lineno: 34 + message: PermissionError: Permission denied + ``` + + **traceback:** + + ```python + - path: tests/test_io_utils.py + lineno: 36 + message: None + - path: functions/io_utils.py + lineno: 2 + message: in read_file + - path: tests/test_io_utils.py + lineno: 34 + message: PermissionError + ``` + + **longrepr:** + + ```python + monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e2616af0> + + def test_permission_error(monkeypatch): + # Patch open to raise PermissionError simulating access denial + def raise_perm_error(*args, **kwargs): + raise PermissionError("Permission denied") + monkeypatch.setattr("builtins.open", raise_perm_error) + > read_file("anyfile.txt") + + tests/test_io_utils.py:36: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + functions/io_utils.py:2: in read_file + with open(path, "r", encoding="utf-8") as f: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + + args = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'} + + def raise_perm_error(*args, **kwargs): + > raise PermissionError("Permission denied") + E PermissionError: Permission denied + + tests/test_io_utils.py:34: PermissionError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00016953307203948498 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_mock_open_error + -
+ โŒ Test 6 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00020636292174458504 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0033249349799007177 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/unittest/mock.py + lineno: 1140 + message: OSError: Mocked IOError + ``` + + **traceback:** + + ```python + - path: tests/test_io_utils.py + lineno: 43 + message: None + - 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:** + + ```python + monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e4b609d0> + + 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 + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.000313405878841877 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_file_handle_closed_error + -
+ โŒ Test 7 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001538179349154234 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001958401408046484 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_io_utils.py + lineno: 50 + message: ValueError: I/O operation on closed file + ``` + + **traceback:** + + ```python + - path: tests/test_io_utils.py + lineno: 50 + message: ValueError + ``` + + **longrepr:** + + ```python + def test_file_handle_closed_error(): + # Accessing closed file raises ValueError + f = io.StringIO("content") + f.close() + > f.read() + E ValueError: I/O operation on closed file + + tests/test_io_utils.py:50: ValueError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00018512201495468616 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_os_error + -
+ โŒ Test 8 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00024126004427671432 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00022352603264153004 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_io_utils.py + lineno: 55 + message: OSError: Simulated OSError + ``` + + **traceback:** + + ```python + - path: tests/test_io_utils.py + lineno: 57 + message: None + - path: tests/test_io_utils.py + lineno: 55 + message: OSError + ``` + + **longrepr:** + + ```python + monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe4e4a56130> + + def test_os_error(monkeypatch): + # Patch os.remove to raise OSError simulating filesystem error + def raise_os_error(path): + raise OSError("Simulated OSError") + monkeypatch.setattr("os.remove", raise_os_error) + > os.remove("file.txt") + + tests/test_io_utils.py:57: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + + path = 'file.txt' + + def raise_os_error(path): + > raise OSError("Simulated OSError") + E OSError: Simulated OSError + + tests/test_io_utils.py:55: OSError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.000180921982973814 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_file_not_found_error + -
+ โŒ Test 10 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011498690582811832 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00018516392447054386 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_io_utils.py + lineno: 70 + message: FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt' + ``` + + **traceback:** + + ```python + - path: tests/test_io_utils.py + lineno: 70 + message: FileNotFoundError + ``` + + **longrepr:** + + ```python + def test_file_not_found_error(): + # Raises FileNotFoundError when opening a non-existent file + > open("no_such_file.txt", "r") + E FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt' + + tests/test_io_utils.py:70: FileNotFoundError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013639195822179317 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ + -
+ ๐Ÿ“„ test_math_utils.py + + โ†ณ Function: test_broken + -
+ โŒ Test 11 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00013531814329326153 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00015336903743445873 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 16 + message: NameError: name 'want_the_test_to_fail' is not defined + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 16 + message: NameError + ``` + + **longrepr:** + + ```python + def test_broken(): + # simulating a broken or faulty test implementation that will cause the test to error + > want_the_test_to_fail + E NameError: name 'want_the_test_to_fail' is not defined + + tests/test_math_utils.py:16: NameError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001357619185000658 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_call_missing_function + -
+ โŒ Test 12 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011618714779615402 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00015196599997580051 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + 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:** + + ```python + - path: tests/test_math_utils.py + lineno: 20 + message: AttributeError + ``` + + **longrepr:** + + ```python + def test_call_missing_function(): + # Accessing a missing function attribute raises AttributeError + > getattr(math_utils, "non_existent_function")() + E AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function' + + tests/test_math_utils.py:20: AttributeError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013581500388681889 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_addition_fail + -
+ โŒ Test 21 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00010879593901336193 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0004584621638059616 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 51 + message: assert 4 == 5 + + where 4 = addition(2, 2) + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 51 + message: AssertionError + ``` + + **longrepr:** + + ```python + def test_addition_fail(): + # Assertion failure: expected incorrect result + > assert addition(2, 2) == 5 + E assert 4 == 5 + E + where 4 = addition(2, 2) + + tests/test_math_utils.py:51: AssertionError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014171120710670948 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_division_zero + -
+ โŒ Test 22 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011756992898881435 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00016937893815338612 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/functions/math_utils.py + lineno: 5 + message: ZeroDivisionError: division by zero + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 55 + message: None + - path: functions/math_utils.py + lineno: 5 + message: ZeroDivisionError + ``` + + **longrepr:** + + ```python + def test_division_zero(): + # Will raise ZeroDivisionError if not handled in division + > division(1, 0) + + tests/test_math_utils.py:55: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + + a = 1, b = 0 + + def division(a, b): + > return a / b + E ZeroDivisionError: division by zero + + functions/math_utils.py:5: ZeroDivisionError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014337711036205292 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_runtime_error + -
+ โŒ Test 24 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011773314327001572 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001638028770685196 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 64 + message: RuntimeError: Forced runtime error + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 64 + message: RuntimeError + ``` + + **longrepr:** + + ```python + def test_runtime_error(): + # Test raises an uncaught RuntimeError + > raise RuntimeError("Forced runtime error") + E RuntimeError: Forced runtime error + + tests/test_math_utils.py:64: RuntimeError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013491790741682053 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_memory_error + -
+ โŒ Test 25 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.000116697046905756 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00014961487613618374 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 68 + message: MemoryError: Simulated memory error + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 68 + message: MemoryError + ``` + + **longrepr:** + + ```python + def test_memory_error(): + # Manually raise MemoryError to simulate out-of-memory condition + > raise MemoryError("Simulated memory error") + E MemoryError: Simulated memory error + + tests/test_math_utils.py:68: MemoryError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014125881716609 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_timeout_error + -
+ โŒ Test 26 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00012048985809087753 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00015808199532330036 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 72 + message: TimeoutError: Simulated timeout error + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 72 + message: TimeoutError + ``` + + **longrepr:** + + ```python + def test_timeout_error(): + # Manually raise TimeoutError simulating timeout conditions + > raise TimeoutError("Simulated timeout error") + E TimeoutError: Simulated timeout error + + tests/test_math_utils.py:72: TimeoutError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013959710486233234 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_recursion_error + -
+ โŒ Test 27 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001256088726222515 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0007832208648324013 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 77 + message: RecursionError: maximum recursion depth exceeded + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 78 + message: None + - path: tests/test_math_utils.py + lineno: 77 + message: in recursive + - path: tests/test_math_utils.py + lineno: 77 + message: in recursive + ``` + + **longrepr:** + + ```python + def test_recursion_error(): + # Infinite recursion triggers RecursionError + def recursive(): + return recursive() + > recursive() + + tests/test_math_utils.py:78: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + tests/test_math_utils.py:77: in recursive + return recursive() + tests/test_math_utils.py:77: in recursive + return recursive() + E RecursionError: maximum recursion depth exceeded + !!! Recursion detected (same locals & position) + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00023767701350152493 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_floating_point_error + -
+ โŒ Test 28 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00014870893210172653 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001807732041925192 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 82 + message: FloatingPointError: Simulated floating point error + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 82 + message: FloatingPointError + ``` + + **longrepr:** + + ```python + def test_floating_point_error(): + # Manually raise FloatingPointError + > raise FloatingPointError("Simulated floating point error") + E FloatingPointError: Simulated floating point error + + tests/test_math_utils.py:82: FloatingPointError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00019396096467971802 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_floating_point_overflow + -
+ โŒ Test 29 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00016696378588676453 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001955660991370678 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 86 + message: OverflowError: math range error + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 86 + message: OverflowError + ``` + + **longrepr:** + + ```python + def test_floating_point_overflow(): + # Exponential overflow triggers OverflowError + > math.exp(1000) + E OverflowError: math range error + + tests/test_math_utils.py:86: OverflowError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00015675905160605907 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_value_error + -
+ โŒ Test 30 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.000126649159938097 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001802078913897276 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 90 + message: ValueError: invalid literal for int() with base 10: 'invalid' + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 90 + message: ValueError + ``` + + **longrepr:** + + ```python + def test_value_error(): + # ValueError on invalid integer conversion + > int("invalid") + E ValueError: invalid literal for int() with base 10: 'invalid' + + tests/test_math_utils.py:90: ValueError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001477380283176899 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_wrong_argument_error + -
+ โŒ Test 31 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00012752297334372997 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.000165645033121109 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 94 + message: TypeError: 'int' object is not iterable + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 94 + message: TypeError + ``` + + **longrepr:** + + ```python + def test_wrong_argument_error(): + # TypeError when passing wrong argument type to sum + > sum(5) + E TypeError: 'int' object is not iterable + + tests/test_math_utils.py:94: TypeError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014363601803779602 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_unhandled_exception + -
+ โŒ Test 32 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00013963296078145504 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.000164153054356575 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 98 + message: Exception: Generic unhandled exception + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 98 + message: Exception + ``` + + **longrepr:** + + ```python + def test_unhandled_exception(): + # Raises generic unhandled Exception + > raise Exception("Generic unhandled exception") + E Exception: Generic unhandled exception + + tests/test_math_utils.py:98: Exception + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001435901504009962 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_custom_error + -
+ โŒ Test 33 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00012350897304713726 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001639300025999546 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 102 + message: test_math_utils.CustomError: Custom error simulation + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 102 + message: CustomError + ``` + + **longrepr:** + + ```python + def test_custom_error(): + # Raises user-defined CustomError exception + > raise CustomError("Custom error simulation") + E test_math_utils.CustomError: Custom error simulation + + tests/test_math_utils.py:102: CustomError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013932213187217712 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_stop_iteration_direct + -
+ โŒ Test 34 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00013334909453988075 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.000156317837536335 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py + lineno: 880 + message: RuntimeError: generator raised StopIteration + ``` + + **traceback:** + + ```python + - path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py + lineno: 341 + message: None + - 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:** + + ```python + def test_stop_iteration_direct(): + # Directly raise StopIteration exception + > raise StopIteration() + E StopIteration + + tests/test_math_utils.py:106: StopIteration + + The above exception was the direct cause of the following exception: + + cls = + func = . at 0x7fe4e263e790> + 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 + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0002864869311451912 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_generator_exit_direct + -
+ โŒ Test 35 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00014689704403281212 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00018528103828430176 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 110 + message: GeneratorExit + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 110 + message: GeneratorExit + ``` + + **longrepr:** + + ```python + def test_generator_exit_direct(): + # Directly raise GeneratorExit exception + > raise GeneratorExit() + E GeneratorExit + + tests/test_math_utils.py:110: GeneratorExit + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00020994199439883232 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_malformed_code + -
+ โŒ Test 36 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00013714516535401344 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001826849766075611 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 114 + message: File "", line 1 + def bad(: + ^ + SyntaxError: invalid syntax + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 114 + message: SyntaxError + ``` + + **longrepr:** + + ```python + 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:114: SyntaxError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001661311835050583 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_sys_exit + -
+ โŒ Test 37 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00013048900291323662 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00016428297385573387 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 118 + message: SystemExit: 1 + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 118 + message: SystemExit + ``` + + **longrepr:** + + ```python + def test_sys_exit(): + # Simulate SystemExit via sys.exit + > sys.exit(1) + E SystemExit: 1 + + tests/test_math_utils.py:118: SystemExit + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014870497398078442 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_broken_function + -
+ โŒ Test 38 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00013548904098570347 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001607921440154314 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 123 + message: TypeError: Broken function + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 124 + message: None + - path: tests/test_math_utils.py + lineno: 123 + message: TypeError + ``` + + **longrepr:** + + ```python + def test_broken_function(): + # Simulate broken function raising TypeError + def broken_func(*args, **kwargs): + raise TypeError("Broken function") + > broken_func() + + tests/test_math_utils.py:124: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + + args = (), kwargs = {} + + def broken_func(*args, **kwargs): + > raise TypeError("Broken function") + E TypeError: Broken function + + tests/test_math_utils.py:123: TypeError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.000142277916893363 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_import_error + -
+ โŒ Test 39 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00012082117609679699 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001567548606544733 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 128 + message: ImportError: Simulated ImportError + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 128 + message: ImportError + ``` + + **longrepr:** + + ```python + def test_import_error(): + # Directly raise ImportError exception + > raise ImportError("Simulated ImportError") + E ImportError: Simulated ImportError + + tests/test_math_utils.py:128: ImportError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013832305558025837 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_module_not_found_error + -
+ โŒ Test 40 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00012366706505417824 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00047593098133802414 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: + lineno: 973 + message: ModuleNotFoundError: No module named 'non_existent_module_xyz' + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 132 + 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 + ``` + + **longrepr:** + + ```python + def test_module_not_found_error(): + # Raises ModuleNotFoundError (subclass of ImportError) for missing module + > importlib.import_module("non_existent_module_xyz") + + tests/test_math_utils.py:132: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module + return _bootstrap._gcd_import(name[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 + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00019715703092515469 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ + -
+ ๐Ÿ“„ test_param.py + + โ†ณ Function: test_sum_positive + -
+ โŒ Test 52
(params: x=-1, y=-1)
+ + **_*๐Ÿ“Œ Runtime Parameters*_** + + ```python + params: + x: -1 + y: -1 + id: edge + ``` + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0002167790662497282 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0002656050492078066 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_param.py + lineno: 58 + message: assert (-1 + -1) >= 0 + ``` + + **traceback:** + + ```python + - path: tests/test_param.py + lineno: 58 + message: AssertionError + ``` + + **longrepr:** + + ```python + x = -1, y = -1 + + @pytest.mark.parametrize("x, y", [(param["x"], param["y"]) for _, param in scenarios], ids=[name for name, _ in scenarios]) + def test_sum_positive(x, y): + > assert (x + y) >= 0 + E assert (-1 + -1) >= 0 + + tests/test_param.py:58: AssertionError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.000179684953764081 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_addition + -
+ โŒ Test 65 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00010095001198351383 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00015792297199368477 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_param.py + lineno: 97 + message: NameError: name 'addition' is not defined + ``` + + **traceback:** + + ```python + - path: tests/test_param.py + lineno: 97 + message: NameError + ``` + + **longrepr:** + + ```python + a = 5, b = 5, expected = 10 + + def test_addition(a = 5, b = 5, expected = 10): + # Has to pass + > assert addition(a, b) == expected + E NameError: name 'addition' is not defined + + tests/test_param.py:97: NameError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014517712406814098 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ + -
+ ๐Ÿ“„ test_string_utils.py + + โ†ณ Function: test_uppercase_type_error + -
+ โŒ Test 68 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.000106095802038908 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00015716394409537315 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/functions/string_utils.py + lineno: 3 + message: TypeError: Input cannot be None + ``` + + **traceback:** + + ```python + - path: tests/test_string_utils.py + lineno: 16 + message: None + - path: functions/string_utils.py + lineno: 3 + message: TypeError + ``` + + **longrepr:** + + ```python + def test_uppercase_type_error(): + # TypeError when input is None (invalid input) + > uppercase(None) + + tests/test_string_utils.py:16: + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + + s = None + + def uppercase(s): + if s is None: + > raise TypeError("Input cannot be None") + E TypeError: Input cannot be None + + functions/string_utils.py:3: TypeError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013588415458798409 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_unicode_decode_error + -
+ โŒ Test 71 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00011409702710807323 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0001466700341552496 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_string_utils.py + lineno: 28 + message: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte + ``` + + **traceback:** + + ```python + - path: tests/test_string_utils.py + lineno: 28 + message: UnicodeDecodeError + ``` + + **longrepr:** + + ```python + def test_unicode_decode_error(): + # UnicodeDecodeError when decoding invalid byte sequence + > b'\xff'.decode('utf-8') + E UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte + + tests/test_string_utils.py:28: UnicodeDecodeError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013504689559340477 + ``` + + **outcome:** + + ```python + passed + ``` +
+ โ†ณ Function: test_unicode_decode_surrogateescape + -
+ โŒ Test 72 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00012762891128659248 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00015335390344262123 + ``` + + **outcome:** + + ```python + failed + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_string_utils.py + lineno: 32 + message: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte + ``` + + **traceback:** + + ```python + - path: tests/test_string_utils.py + lineno: 32 + message: UnicodeDecodeError + ``` + + **longrepr:** + + ```python + def test_unicode_decode_surrogateescape(): + # UnicodeDecodeError with strict error handler on invalid byte + > b"\x80".decode("utf-8", errors="strict") + E UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte + + tests/test_string_utils.py:32: UnicodeDecodeError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001336880959570408 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ +
+ +
+โŒ Xfailed (2) + + -
+ ๐Ÿ“„ test_math_utils.py + + โ†ณ Function: test_multiply_xfail + -
+ โŒ Test 23 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00014761206693947315 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.00030593201518058777 + ``` + + **outcome:** + + ```python + skipped + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_math_utils.py + lineno: 60 + message: assert 4 == 5 + + where 4 = multiply(2, 2) + ``` + + **traceback:** + + ```python + - path: tests/test_math_utils.py + lineno: 60 + message: AssertionError + ``` + + **longrepr:** + + ```python + @pytest.mark.xfail(reason="Expected failure") + def test_multiply_xfail(): + # Expected fail test (xfail): incorrect expected multiply result + > assert multiply(2, 2) == 5 + E assert 4 == 5 + E + where 4 = multiply(2, 2) + + tests/test_math_utils.py:60: AssertionError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00014047999866306782 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ + -
+ ๐Ÿ“„ test_string_utils.py + + โ†ณ Function: test_xfail_uppercase_digits + -
+ โŒ Test 74 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.0001197748351842165 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0006523651536554098 + ``` + + **outcome:** + + ```python + skipped + ``` + + **crash:** + + ```python + path: /workspace/tligui_y/slic/tests/test_string_utils.py + lineno: 41 + message: AssertionError: assert 'ABC123' == 'ABC1234' + + - ABC1234 + ? - + + ABC123 + ``` + + **traceback:** + + ```python + - path: tests/test_string_utils.py + lineno: 41 + message: AssertionError + ``` + + **longrepr:** + + ```python + @pytest.mark.xfail(reason="Expected failure: uppercase does not handle digits") + def test_xfail_uppercase_digits(): + # Expected fail test because uppercase won't change digits + > assert uppercase("abc123") == "ABC1234" + E AssertionError: assert 'ABC123' == 'ABC1234' + E + E - ABC1234 + E ? - + E + ABC123 + + tests/test_string_utils.py:41: AssertionError + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00013429392129182816 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ +
+ +
+โŒ Skipped (1) + + -
+ ๐Ÿ“„ test_param.py + + โ†ณ Function: test_with_reason_and_marks + -
+ โŒ Test 44 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00026119197718799114 + ``` + + **outcome:** + + ```python + skipped + ``` + + **longrepr:** + + ```python + ('/workspace/tligui_y/slic/tests/test_param.py', 12, 'Skipped: nope') + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00011255498975515366 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ +
+ +
+โŒ Error (1) + + -
+ ๐Ÿ“„ test_param.py + + โ†ณ Function: test_basic_error + -
+ โŒ Test 66 + + **_*๐Ÿ“Œ Setup phase*_** + + **duration:** + + ```python + 0.00015376601368188858 + ``` + + **outcome:** + + ```python + failed + ``` + + **longrepr:** + + ```python + file /workspace/tligui_y/slic/tests/test_param.py, line 100 + def test_basic_error(x): + E fixture 'x' not found + > available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, complex_setup, cov, doctest_namespace, element, extra, extras, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory + > use 'pytest --fixtures [testpath]' for help on them. + + /workspace/tligui_y/slic/tests/test_param.py:100 + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001266880426555872 + ``` + + **outcome:** + + ```python + passed + ``` +
+
+ +
+ ## ๐Ÿ“š Collected files
@@ -72,7 +5654,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: . @@ -88,7 +5670,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: ci-reports/allure @@ -104,7 +5686,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: ci-reports/allure/data @@ -124,7 +5706,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure/data - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -135,7 +5717,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure/export - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -146,7 +5728,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure/history - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -157,7 +5739,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure/plugin - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: ci-reports/allure/plugin/behaviors @@ -173,7 +5755,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure/plugin/behaviors - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -184,7 +5766,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure/plugin/packages - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -195,7 +5777,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure/plugin/screen-diff - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -206,7 +5788,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/allure/widgets - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -217,7 +5799,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/coverage - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -228,7 +5810,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… ci-reports/markdown - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -243,7 +5825,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… functions - **Outcome:** `passed` - - **children:** + - **result:** ```python [] @@ -258,7 +5840,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… tests - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: tests/test_broken_fct.py @@ -280,7 +5862,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โŒ tests/test_broken_fct.py - **Outcome:** `failed` - - **children:** + - **result:** ```python [] @@ -320,7 +5902,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โŒ tests/test_collector_error.py - **Outcome:** `failed` - - **children:** + - **result:** ```python [] @@ -344,59 +5926,39 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… tests/test_io_utils.py - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: tests/test_io_utils.py::test_write_file type: Function - path: tests/test_io_utils.py lineno: 9 - domain: test_write_file - nodeid: tests/test_io_utils.py::test_read_file type: Function - path: tests/test_io_utils.py lineno: 15 - domain: test_read_file - nodeid: tests/test_io_utils.py::test_cause_io_error type: Function - path: tests/test_io_utils.py lineno: 22 - domain: test_cause_io_error - nodeid: tests/test_io_utils.py::test_file_not_found type: Function - path: tests/test_io_utils.py lineno: 26 - domain: test_file_not_found - nodeid: tests/test_io_utils.py::test_permission_error type: Function - path: tests/test_io_utils.py lineno: 30 - domain: test_permission_error - nodeid: tests/test_io_utils.py::test_mock_open_error type: Function - path: tests/test_io_utils.py lineno: 37 - domain: test_mock_open_error - nodeid: tests/test_io_utils.py::test_file_handle_closed_error type: Function - path: tests/test_io_utils.py lineno: 45 - domain: test_file_handle_closed_error - nodeid: tests/test_io_utils.py::test_os_error type: Function - path: tests/test_io_utils.py lineno: 51 - domain: test_os_error - nodeid: tests/test_io_utils.py::test_write_file_in_readonly_mode type: Function - path: tests/test_io_utils.py lineno: 58 - domain: test_write_file_in_readonly_mode - nodeid: tests/test_io_utils.py::test_file_not_found_error type: Function - path: tests/test_io_utils.py lineno: 67 - domain: test_file_not_found_error ```
@@ -404,159 +5966,99 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… tests/test_math_utils.py - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: tests/test_math_utils.py::test_broken type: Function - path: tests/test_math_utils.py lineno: 13 - domain: test_broken - nodeid: tests/test_math_utils.py::test_call_missing_function type: Function - path: tests/test_math_utils.py lineno: 17 - domain: test_call_missing_function - nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4] type: Function - path: tests/test_math_utils.py lineno: 22 - domain: test_addition_pass[2-2-4] - nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6] type: Function - path: tests/test_math_utils.py lineno: 22 - domain: test_addition_pass[1-5-6] - nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7] type: Function - path: tests/test_math_utils.py lineno: 22 - domain: test_addition_pass[3-4-7] - nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8] type: Function - path: tests/test_math_utils.py lineno: 22 - domain: test_addition_pass[3-5-8] - nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9] type: Function - path: tests/test_math_utils.py lineno: 22 - domain: test_addition_pass[3-6-9] - nodeid: tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4] type: Function - path: tests/test_math_utils.py lineno: 36 - domain: test_addition_pass_id[a=2,b=2,expected=4] - nodeid: tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6] type: Function - path: tests/test_math_utils.py lineno: 36 - domain: test_addition_pass_id[a=1,b=5,expected=6] - nodeid: tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7] type: Function - path: tests/test_math_utils.py lineno: 36 - domain: test_addition_pass_id[a=3,b=4,expected=7] - nodeid: tests/test_math_utils.py::test_addition_fail type: Function - path: tests/test_math_utils.py lineno: 48 - domain: test_addition_fail - nodeid: tests/test_math_utils.py::test_division_zero type: Function - path: tests/test_math_utils.py lineno: 52 - domain: test_division_zero - nodeid: tests/test_math_utils.py::test_multiply_xfail type: Function - path: tests/test_math_utils.py lineno: 56 - domain: test_multiply_xfail - nodeid: tests/test_math_utils.py::test_runtime_error type: Function - path: tests/test_math_utils.py lineno: 61 - domain: test_runtime_error - nodeid: tests/test_math_utils.py::test_memory_error type: Function - path: tests/test_math_utils.py lineno: 65 - domain: test_memory_error - nodeid: tests/test_math_utils.py::test_timeout_error type: Function - path: tests/test_math_utils.py lineno: 69 - domain: test_timeout_error - nodeid: tests/test_math_utils.py::test_recursion_error type: Function - path: tests/test_math_utils.py lineno: 73 - domain: test_recursion_error - nodeid: tests/test_math_utils.py::test_floating_point_error type: Function - path: tests/test_math_utils.py lineno: 79 - domain: test_floating_point_error - nodeid: tests/test_math_utils.py::test_floating_point_overflow type: Function - path: tests/test_math_utils.py lineno: 83 - domain: test_floating_point_overflow - nodeid: tests/test_math_utils.py::test_value_error type: Function - path: tests/test_math_utils.py lineno: 87 - domain: test_value_error - nodeid: tests/test_math_utils.py::test_wrong_argument_error type: Function - path: tests/test_math_utils.py lineno: 91 - domain: test_wrong_argument_error - nodeid: tests/test_math_utils.py::test_unhandled_exception type: Function - path: tests/test_math_utils.py lineno: 95 - domain: test_unhandled_exception - nodeid: tests/test_math_utils.py::test_custom_error type: Function - path: tests/test_math_utils.py lineno: 99 - domain: test_custom_error - nodeid: tests/test_math_utils.py::test_stop_iteration_direct type: Function - path: tests/test_math_utils.py lineno: 103 - domain: test_stop_iteration_direct - nodeid: tests/test_math_utils.py::test_generator_exit_direct type: Function - path: tests/test_math_utils.py lineno: 107 - domain: test_generator_exit_direct - nodeid: tests/test_math_utils.py::test_malformed_code type: Function - path: tests/test_math_utils.py lineno: 111 - domain: test_malformed_code - nodeid: tests/test_math_utils.py::test_sys_exit type: Function - path: tests/test_math_utils.py lineno: 115 - domain: test_sys_exit - nodeid: tests/test_math_utils.py::test_broken_function type: Function - path: tests/test_math_utils.py lineno: 119 - domain: test_broken_function - nodeid: tests/test_math_utils.py::test_import_error type: Function - path: tests/test_math_utils.py lineno: 125 - domain: test_import_error - nodeid: tests/test_math_utils.py::test_module_not_found_error type: Function - path: tests/test_math_utils.py lineno: 129 - domain: test_module_not_found_error ``` @@ -564,139 +6066,87 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… tests/test_param.py - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: tests/test_param.py::test_basic_ids[one] type: Function - path: tests/test_param.py lineno: 3 - domain: test_basic_ids[one] - nodeid: tests/test_param.py::test_basic_ids[two] type: Function - path: tests/test_param.py lineno: 3 - domain: test_basic_ids[two] - nodeid: tests/test_param.py::test_with_reason_and_marks[ten] type: Function - path: tests/test_param.py lineno: 11 - domain: test_with_reason_and_marks[ten] - nodeid: tests/test_param.py::test_with_reason_and_marks[twenty] type: Function - path: tests/test_param.py lineno: 11 - domain: test_with_reason_and_marks[twenty] - nodeid: tests/test_param.py::test_multiple_positional_args[1-2] type: Function - path: tests/test_param.py lineno: 19 - domain: test_multiple_positional_args[1-2] - nodeid: tests/test_param.py::test_multiple_positional_args[3-4] type: Function - path: tests/test_param.py lineno: 19 - domain: test_multiple_positional_args[3-4] - nodeid: tests/test_param.py::test_non_literal_with_id[custom-obj] type: Function - path: tests/test_param.py lineno: 27 - domain: test_non_literal_with_id[custom-obj] - nodeid: tests/test_param.py::test_timedistance_v1[a0-b0-expected0] type: Function - path: tests/test_param.py lineno: 43 - domain: test_timedistance_v1[a0-b0-expected0] - nodeid: tests/test_param.py::test_timedistance_v1[a1-b1-expected1] type: Function - path: tests/test_param.py lineno: 43 - domain: test_timedistance_v1[a1-b1-expected1] - nodeid: tests/test_param.py::test_sum_positive[one] type: Function - path: tests/test_param.py lineno: 55 - domain: test_sum_positive[one] - nodeid: tests/test_param.py::test_sum_positive[two] type: Function - path: tests/test_param.py lineno: 55 - domain: test_sum_positive[two] - nodeid: tests/test_param.py::test_sum_positive[edge] type: Function - path: tests/test_param.py lineno: 55 - domain: test_sum_positive[edge] - nodeid: tests/test_param.py::test_dynamic[ten] type: Function - path: tests/test_param.py lineno: 65 - domain: test_dynamic[ten] - nodeid: tests/test_param.py::test_dynamic[twenty] type: Function - path: tests/test_param.py lineno: 65 - domain: test_dynamic[twenty] - nodeid: tests/test_param.py::test_dynamic[thirty] type: Function - path: tests/test_param.py lineno: 65 - domain: test_dynamic[thirty] - nodeid: tests/test_param.py::test_element_type[\U0001f525] type: Function - path: tests/test_param.py lineno: 74 - domain: test_element_type[\U0001f525] - nodeid: tests/test_param.py::test_element_type[\U0001f4a7] type: Function - path: tests/test_param.py lineno: 74 - domain: test_element_type[\U0001f4a7] - nodeid: tests/test_param.py::test_element_type[\U0001f30d] type: Function - path: tests/test_param.py lineno: 74 - domain: test_element_type[\U0001f30d] - nodeid: tests/test_param.py::test_combination[a-1] type: Function - path: tests/test_param.py lineno: 78 - domain: test_combination[a-1] - nodeid: tests/test_param.py::test_combination[a-2] type: Function - path: tests/test_param.py lineno: 78 - domain: test_combination[a-2] - nodeid: tests/test_param.py::test_combination[b-1] type: Function - path: tests/test_param.py lineno: 78 - domain: test_combination[b-1] - nodeid: tests/test_param.py::test_combination[b-2] type: Function - path: tests/test_param.py lineno: 78 - domain: test_combination[b-2] - nodeid: tests/test_param.py::test_indirect_fixture[1] type: Function - path: tests/test_param.py lineno: 89 - domain: test_indirect_fixture[1] - nodeid: tests/test_param.py::test_indirect_fixture[2] type: Function - path: tests/test_param.py lineno: 89 - domain: test_indirect_fixture[2] - nodeid: tests/test_param.py::test_addition type: Function - path: tests/test_param.py lineno: 94 - domain: test_addition - nodeid: tests/test_param.py::test_basic_error type: Function - path: tests/test_param.py lineno: 99 - domain: test_basic_error ``` @@ -704,54 +6154,36 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… tests/test_string_utils.py - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: tests/test_string_utils.py::test_uppercase_normal type: Function - path: tests/test_string_utils.py lineno: 9 - domain: test_uppercase_normal - nodeid: tests/test_string_utils.py::test_uppercase_type_error type: Function - path: tests/test_string_utils.py lineno: 13 - domain: test_uppercase_type_error - nodeid: tests/test_string_utils.py::test_reverse_string type: Function - path: tests/test_string_utils.py lineno: 17 - domain: test_reverse_string - nodeid: tests/test_string_utils.py::test_warning_emit type: Function - path: tests/test_string_utils.py lineno: 21 - domain: test_warning_emit - nodeid: tests/test_string_utils.py::test_unicode_decode_error type: Function - path: tests/test_string_utils.py lineno: 25 - domain: test_unicode_decode_error - nodeid: tests/test_string_utils.py::test_unicode_decode_surrogateescape type: Function - path: tests/test_string_utils.py lineno: 29 - domain: test_unicode_decode_surrogateescape - nodeid: tests/test_string_utils.py::test_syntax_warning type: Function - path: tests/test_string_utils.py lineno: 33 - domain: test_syntax_warning - nodeid: tests/test_string_utils.py::test_xfail_uppercase_digits type: Function - path: tests/test_string_utils.py lineno: 37 - domain: test_xfail_uppercase_digits - nodeid: tests/test_string_utils.py::test_keyboard_interrupt_direct type: Function - path: tests/test_string_utils.py lineno: 48 - domain: test_keyboard_interrupt_direct ``` @@ -763,7 +6195,7 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni โœ… . - **Outcome:** `passed` - - **children:** + - **result:** ```python - nodeid: ci-reports @@ -776,3 +6208,35 @@ INTERNALERROR> pluggy._manager.PluginValidationError: unknown hook 'pytest_warni +## โš ๏ธ Warnings + +
+
+Warnings #1 + +``` +message: Test warning +category: UserWarning +when: runtest +filename: /workspace/tligui_y/slic/tests/test_string_utils.py +lineno: 24 +``` + +
+
+ +
+
+Warnings #2 + +``` +message: This is a syntax warning +category: SyntaxWarning +when: runtest +filename: /workspace/tligui_y/slic/tests/test_string_utils.py +lineno: 36 +``` + +
+
+ diff --git a/ci-reports/markdown/coverage-summary.md b/ci-reports/markdown/coverage-summary.md index 2f4acdf8..ff0891a9 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/json-tree-view.txt b/ci-reports/markdown/json-tree-view.txt index 8a93ef15..73539efe 100644 --- a/ci-reports/markdown/json-tree-view.txt +++ b/ci-reports/markdown/json-tree-view.txt @@ -1,47 +1,53 @@ ๐Ÿ“ ci-reports/markdown/pytest-report.json -โ”œโ”€โ”€ created: 1753085551.0529785 -โ”œโ”€โ”€ duration: 0.1884441375732422 -โ”œโ”€โ”€ exitcode: 3 +โ”œโ”€โ”€ created: 1753086150.742535 +โ”œโ”€โ”€ duration: 0.8041284084320068 +โ”œโ”€โ”€ exitcode: 2 โ”œโ”€โ”€ root: /workspace/tligui_y/slic โ”œโ”€โ”€ environment โ”œโ”€โ”€ summary -โ”‚ โ””โ”€โ”€ total: 0 +โ”‚ โ”œโ”€โ”€ passed: 38 +โ”‚ โ”œโ”€โ”€ failed: 33 +โ”‚ โ”œโ”€โ”€ xfailed: 2 +โ”‚ โ”œโ”€โ”€ skipped: 1 +โ”‚ โ”œโ”€โ”€ error: 1 +โ”‚ โ”œโ”€โ”€ total: 75 +โ”‚ โ””โ”€โ”€ collected: 75 โ”œโ”€โ”€ collectors โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ””โ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: . โ”‚ โ”‚ โ””โ”€โ”€ type: Dir โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/data โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/export โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/history โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/plugin/behaviors โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/plugin/packages โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/plugin/screen-diff โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/plugin โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/plugin/behaviors โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: Dir @@ -54,11 +60,11 @@ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/widgets โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure/data โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: Dir @@ -77,15 +83,15 @@ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/coverage โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/markdown โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports/allure โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: Dir @@ -98,11 +104,11 @@ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: functions โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_broken_fct.py โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed -โ”‚ โ”‚ โ”œโ”€โ”€ children +โ”‚ โ”‚ โ”œโ”€โ”€ result โ”‚ โ”‚ โ””โ”€โ”€ longrepr: โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493 โ”‚ โ”‚ : in importtestmodule @@ -137,7 +143,7 @@ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_collector_error.py โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed -โ”‚ โ”‚ โ”œโ”€โ”€ children +โ”‚ โ”‚ โ”œโ”€โ”€ result โ”‚ โ”‚ โ””โ”€โ”€ longrepr: ImportError while importing test module โ”‚ โ”‚ '/workspace/tligui_y/slic/tests/test_collector_error.py'. โ”‚ โ”‚ Hint: make sure your test modules/packages have valid Python names. @@ -151,485 +157,335 @@ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_write_file โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 9 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_write_file +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 9 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_read_file โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 15 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_read_file +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 15 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_cause_io_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_cause_io_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_file_not_found โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 26 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_file_not_found +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 26 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_permission_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 30 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_permission_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 30 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_mock_open_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 37 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_mock_open_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 37 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_io_utils.py::test_file_handle_closed_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 45 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_file_handle_closed_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 45 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_os_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 51 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_os_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 51 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_io_utils.py::test_write_file_in_readonly_mode โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 58 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_write_file_in_readonly_mode +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 58 โ”‚ โ”‚ โ””โ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_file_not_found_error โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py -โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 67 -โ”‚ โ”‚ โ””โ”€โ”€ domain: test_file_not_found_error +โ”‚ โ”‚ โ””โ”€โ”€ lineno: 67 โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_broken โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 13 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_broken +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 13 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_call_missing_function โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 17 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_call_missing_function +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 17 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_pass[2-2-4] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_pass[1-5-6] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_pass[3-4-7] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_pass[3-5-8] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_pass[3-6-9] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 22 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass_id โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_pass_id +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 36 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass_id โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_pass_id +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 36 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass_id โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_pass_id +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 36 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_fail โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 48 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition_fail +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 48 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_division_zero โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 52 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_division_zero +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 52 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_multiply_xfail โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 56 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_multiply_xfail +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 56 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_runtime_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 61 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_runtime_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 61 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_memory_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_memory_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 65 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_timeout_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 69 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_timeout_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 69 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_recursion_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 73 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_recursion_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 73 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_floating_point_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 79 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_floating_point_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 79 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_math_utils.py::test_floating_point_overflow โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 83 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_floating_point_overflow +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 83 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_value_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 87 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_value_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 87 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_wrong_argument_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 91 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_wrong_argument_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 91 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_unhandled_exception โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 95 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_unhandled_exception +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 95 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_custom_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 99 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_custom_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 99 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_stop_iteration_direct โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 103 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_stop_iteration_direct +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 103 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_generator_exit_direct โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 107 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_generator_exit_direct +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 107 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_malformed_code โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 111 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_malformed_code +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 111 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_sys_exit โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 115 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_sys_exit +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 115 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_broken_function โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 119 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_broken_function +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 119 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_import_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 125 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_import_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 125 โ”‚ โ”‚ โ””โ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ tests/test_math_utils.py::test_module_not_found_error โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py -โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 129 -โ”‚ โ”‚ โ””โ”€โ”€ domain: test_module_not_found_error +โ”‚ โ”‚ โ””โ”€โ”€ lineno: 129 โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_basic_ids โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 3 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_basic_ids +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 3 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_basic_ids โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 3 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_basic_ids +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 3 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_with_reason_and_marks โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 11 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_with_reason_and_marks +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 11 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_with_reason_and_marks โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 11 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_with_reason_and_marks +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 11 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_param.py::test_multiple_positional_args[1-2] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 19 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_multiple_positional_args[1-2] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 19 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_param.py::test_multiple_positional_args[3-4] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 19 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_multiple_positional_args[3-4] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 19 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_non_literal_with_id โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 27 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_non_literal_with_id +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 27 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_timedistance_v1 โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 43 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_timedistance_v1 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 43 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_timedistance_v1 โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 43 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_timedistance_v1 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 43 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_sum_positive โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_sum_positive +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 55 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_sum_positive โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_sum_positive +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 55 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_sum_positive โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_sum_positive +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 55 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_dynamic โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_dynamic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 65 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_dynamic โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_dynamic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 65 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_dynamic โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_dynamic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 65 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_element_type[\U0001f525] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 74 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_element_type[\U0001f525] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 74 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_element_type[\U0001f4a7] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 74 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_element_type[\U0001f4a7] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 74 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_element_type[\U0001f30d] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 74 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_element_type[\U0001f30d] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 74 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_combination โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_combination +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 78 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_combination โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_combination +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 78 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_combination โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_combination +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 78 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_combination โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_combination +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 78 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_indirect_fixture[1] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 89 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_indirect_fixture[1] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 89 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_indirect_fixture[2] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 89 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_indirect_fixture[2] +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 89 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_addition โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 94 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_addition +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 94 โ”‚ โ”‚ โ””โ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_basic_error โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py -โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 99 -โ”‚ โ”‚ โ””โ”€โ”€ domain: test_basic_error +โ”‚ โ”‚ โ””โ”€โ”€ lineno: 99 โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_uppercase_normal โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 9 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_uppercase_normal +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 9 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_string_utils.py::test_uppercase_type_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 13 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_uppercase_type_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 13 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_reverse_string โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 17 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_reverse_string +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 17 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_warning_emit โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 21 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_warning_emit +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 21 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_string_utils.py::test_unicode_decode_error โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 25 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_unicode_decode_error +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 25 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_string_utils.py::test_unicode_decode_surrogateesc โ”‚ โ”‚ โ”‚ โ”‚ ape โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 29 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_unicode_decode_surrogateescape +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 29 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_syntax_warning โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 33 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_syntax_warning +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 33 โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ โ”‚ tests/test_string_utils.py::test_xfail_uppercase_digits โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 37 -โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ domain: test_xfail_uppercase_digits +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lineno: 37 โ”‚ โ”‚ โ””โ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: โ”‚ โ”‚ โ”‚ tests/test_string_utils.py::test_keyboard_interrupt_direct โ”‚ โ”‚ โ”œโ”€โ”€ type: Function -โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py -โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 48 -โ”‚ โ”‚ โ””โ”€โ”€ domain: test_keyboard_interrupt_direct +โ”‚ โ”‚ โ””โ”€โ”€ lineno: 48 โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ”‚ โ””โ”€โ”€ children +โ”‚ โ”‚ โ””โ”€โ”€ result โ”‚ โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_broken_fct.py โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ type: Module @@ -651,7 +507,7 @@ โ”‚ โ””โ”€โ”€ - โ”‚ โ”œโ”€โ”€ nodeid: . โ”‚ โ”œโ”€โ”€ outcome: passed -โ”‚ โ””โ”€โ”€ children +โ”‚ โ””โ”€โ”€ result โ”‚ โ”œโ”€โ”€ - โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: ci-reports โ”‚ โ”‚ โ””โ”€โ”€ type: Dir @@ -661,4 +517,2482 @@ โ”‚ โ””โ”€โ”€ - โ”‚ โ”œโ”€โ”€ nodeid: tests โ”‚ โ””โ”€โ”€ type: Dir -โ””โ”€โ”€ tests +โ”œโ”€โ”€ tests +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_write_file +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 9 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_write_file +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.003419185057282448 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000472470885142684 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00024303095415234566 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_read_file +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 15 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_read_file +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0004742399323731661 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002890131436288357 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001505659893155098 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00011289305984973907 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016151205636560917 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/functions/io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 10 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: OSError: Forced IO Error for testing +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 25 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: functions/io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 10 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: OSError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_cause_io_error(): +โ”‚ โ”‚ โ”‚ # Raises manual IOError to simulate IO failure +โ”‚ โ”‚ โ”‚ > cause_io_error() +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:25: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def cause_io_error(): +โ”‚ โ”‚ โ”‚ > raise IOError("Forced IO Error for testing") +โ”‚ โ”‚ โ”‚ E OSError: Forced IO Error for testing +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ functions/io_utils.py:10: OSError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001429300755262375 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00012631993740797043 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00017893104813992977 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/functions/io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 2 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: FileNotFoundError: [Errno 2] No such file or +โ”‚ โ”‚ โ”‚ โ”‚ directory: 'nonexistent.file' +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 29 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: functions/io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 2 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: FileNotFoundError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_file_not_found(): +โ”‚ โ”‚ โ”‚ # Reading non-existing file raises FileNotFoundError +โ”‚ โ”‚ โ”‚ > read_file("nonexistent.file") +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:29: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ path = 'nonexistent.file' +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def read_file(path): +โ”‚ โ”‚ โ”‚ > with open(path, "r", encoding="utf-8") as f: +โ”‚ โ”‚ โ”‚ E FileNotFoundError: [Errno 2] No such file or directory: +โ”‚ โ”‚ โ”‚ 'nonexistent.file' +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ functions/io_utils.py:2: FileNotFoundError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013928301632404327 +โ”‚ โ”‚ โ””โ”€โ”€ 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.0002248440869152546 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018275482580065727 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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 0x7fe4e2616af0> +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def test_permission_error(monkeypatch): +โ”‚ โ”‚ โ”‚ # Patch open to raise PermissionError simulating access +โ”‚ โ”‚ โ”‚ denial +โ”‚ โ”‚ โ”‚ def raise_perm_error(*args, **kwargs): +โ”‚ โ”‚ โ”‚ raise PermissionError("Permission denied") +โ”‚ โ”‚ โ”‚ monkeypatch.setattr("builtins.open", raise_perm_error) +โ”‚ โ”‚ โ”‚ > read_file("anyfile.txt") +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:36: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ functions/io_utils.py:2: in read_file +โ”‚ โ”‚ โ”‚ with open(path, "r", encoding="utf-8") as f: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ args = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'} +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def raise_perm_error(*args, **kwargs): +โ”‚ โ”‚ โ”‚ > raise PermissionError("Permission denied") +โ”‚ โ”‚ โ”‚ E PermissionError: Permission denied +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:34: PermissionError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016953307203948498 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00020636292174458504 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0033249349799007177 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/un +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ittest/mock.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1140 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: OSError: Mocked IOError +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 43 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: .pixi/envs/default/lib/python3.8/unittest/mock.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1081 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in __call__ +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: .pixi/envs/default/lib/python3.8/unittest/mock.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1085 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in _mock_call +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: .pixi/envs/default/lib/python3.8/unittest/mock.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 1140 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: OSError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: monkeypatch = <_pytest.monkeypatch.MonkeyPatch object +โ”‚ โ”‚ โ”‚ at 0x7fe4e4b609d0> +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ 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 +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000313405878841877 +โ”‚ โ”‚ โ””โ”€โ”€ 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.0001538179349154234 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001958401408046484 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 50 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ValueError: I/O operation on closed file +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 50 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ValueError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_file_handle_closed_error(): +โ”‚ โ”‚ โ”‚ # Accessing closed file raises ValueError +โ”‚ โ”‚ โ”‚ f = io.StringIO("content") +โ”‚ โ”‚ โ”‚ f.close() +โ”‚ โ”‚ โ”‚ > f.read() +โ”‚ โ”‚ โ”‚ E ValueError: I/O operation on closed file +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:50: ValueError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018512201495468616 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00024126004427671432 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00022352603264153004 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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 0x7fe4e4a56130> +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def test_os_error(monkeypatch): +โ”‚ โ”‚ โ”‚ # Patch os.remove to raise OSError simulating filesystem +โ”‚ โ”‚ โ”‚ error +โ”‚ โ”‚ โ”‚ def raise_os_error(path): +โ”‚ โ”‚ โ”‚ raise OSError("Simulated OSError") +โ”‚ โ”‚ โ”‚ monkeypatch.setattr("os.remove", raise_os_error) +โ”‚ โ”‚ โ”‚ > os.remove("file.txt") +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:57: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ path = 'file.txt' +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def raise_os_error(path): +โ”‚ โ”‚ โ”‚ > raise OSError("Simulated OSError") +โ”‚ โ”‚ โ”‚ E OSError: Simulated OSError +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:55: OSError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000180921982973814 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_write_file_in_readonly_mode +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 58 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_write_file_in_readonly_mode +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0006433418020606041 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0011733209248632193 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015070708468556404 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_io_utils.py::test_file_not_found_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 67 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_file_not_found_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011498690582811832 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018516392447054386 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 70 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: FileNotFoundError: [Errno 2] No such file or +โ”‚ โ”‚ โ”‚ โ”‚ directory: 'no_such_file.txt' +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_io_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 70 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: FileNotFoundError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_file_not_found_error(): +โ”‚ โ”‚ โ”‚ # Raises FileNotFoundError when opening a non-existent +โ”‚ โ”‚ โ”‚ file +โ”‚ โ”‚ โ”‚ > open("no_such_file.txt", "r") +โ”‚ โ”‚ โ”‚ E FileNotFoundError: [Errno 2] No such file or directory: +โ”‚ โ”‚ โ”‚ 'no_such_file.txt' +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_io_utils.py:70: FileNotFoundError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013639195822179317 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00013531814329326153 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015336903743445873 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 16 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: NameError: name 'want_the_test_to_fail' is not +โ”‚ โ”‚ โ”‚ โ”‚ defined +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 16 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: NameError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_broken(): +โ”‚ โ”‚ โ”‚ # simulating a broken or faulty test implementation that +โ”‚ โ”‚ โ”‚ will cause the test to error +โ”‚ โ”‚ โ”‚ > want_the_test_to_fail +โ”‚ โ”‚ โ”‚ E NameError: name 'want_the_test_to_fail' is not defined +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:16: NameError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001357619185000658 +โ”‚ โ”‚ โ””โ”€โ”€ 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.00011618714779615402 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015196599997580051 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 20 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: AttributeError: module 'functions.math_utils' has +โ”‚ โ”‚ โ”‚ โ”‚ no attribute 'non_existent_function' +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 20 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: AttributeError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_call_missing_function(): +โ”‚ โ”‚ โ”‚ # Accessing a missing function attribute raises +โ”‚ โ”‚ โ”‚ AttributeError +โ”‚ โ”‚ โ”‚ > getattr(math_utils, "non_existent_function")() +โ”‚ โ”‚ โ”‚ E AttributeError: module 'functions.math_utils' has no +โ”‚ โ”‚ โ”‚ attribute 'non_existent_function' +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:20: AttributeError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013581500388681889 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[2-2-4] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_pass[2-2-4] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 2-2-4 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00031072297133505344 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014862394891679287 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015942403115332127 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[1-5-6] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_pass[1-5-6] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 1-5-6 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002567949704825878 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001669351477175951 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014910101890563965 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[3-4-7] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_pass[3-4-7] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 3-4-7 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00024331314489245415 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014110002666711807 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013592513278126717 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[3-5-8] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_pass[3-5-8] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 3-5-8 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00024708383716642857 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014045112766325474 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013470486737787724 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass[3-6-9] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 22 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_pass[3-6-9] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 3-6-9 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00024416414089500904 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015440606512129307 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014007603749632835 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass_id +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_pass_id +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ a=2,b=2,expected=4 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002395219635218382 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013332907110452652 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013489299453794956 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass_id +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_pass_id +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ a=1,b=5,expected=6 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00024176808074116707 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001257229596376419 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014199083670973778 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_pass_id +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 36 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_pass_id +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ a=3,b=4,expected=7 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00025285803712904453 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012931902892887592 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013254000805318356 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_addition_fail +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 48 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition_fail +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00010879593901336193 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0004584621638059616 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 51 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: assert 4 == 5 +โ”‚ โ”‚ โ”‚ โ”‚ + where 4 = addition(2, 2) +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 51 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: AssertionError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_addition_fail(): +โ”‚ โ”‚ โ”‚ # Assertion failure: expected incorrect result +โ”‚ โ”‚ โ”‚ > assert addition(2, 2) == 5 +โ”‚ โ”‚ โ”‚ E assert 4 == 5 +โ”‚ โ”‚ โ”‚ E + where 4 = addition(2, 2) +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:51: AssertionError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014171120710670948 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_division_zero +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 52 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_division_zero +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011756992898881435 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016937893815338612 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/functions/math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 5 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ZeroDivisionError: division by zero +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: functions/math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 5 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ZeroDivisionError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_division_zero(): +โ”‚ โ”‚ โ”‚ # Will raise ZeroDivisionError if not handled in +โ”‚ โ”‚ โ”‚ division +โ”‚ โ”‚ โ”‚ > division(1, 0) +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:55: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ a = 1, b = 0 +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def division(a, b): +โ”‚ โ”‚ โ”‚ > return a / b +โ”‚ โ”‚ โ”‚ E ZeroDivisionError: division by zero +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ functions/math_utils.py:5: ZeroDivisionError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014337711036205292 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_multiply_xfail +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 56 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: xfailed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_multiply_xfail +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ xfail +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014761206693947315 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00030593201518058777 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: skipped +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 60 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: assert 4 == 5 +โ”‚ โ”‚ โ”‚ โ”‚ + where 4 = multiply(2, 2) +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 60 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: AssertionError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: @pytest.mark.xfail(reason="Expected failure") +โ”‚ โ”‚ โ”‚ def test_multiply_xfail(): +โ”‚ โ”‚ โ”‚ # Expected fail test (xfail): incorrect expected +โ”‚ โ”‚ โ”‚ multiply result +โ”‚ โ”‚ โ”‚ > assert multiply(2, 2) == 5 +โ”‚ โ”‚ โ”‚ E assert 4 == 5 +โ”‚ โ”‚ โ”‚ E + where 4 = multiply(2, 2) +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:60: AssertionError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014047999866306782 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_runtime_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 61 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_runtime_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011773314327001572 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001638028770685196 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 64 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: RuntimeError: Forced runtime error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 64 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: RuntimeError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_runtime_error(): +โ”‚ โ”‚ โ”‚ # Test raises an uncaught RuntimeError +โ”‚ โ”‚ โ”‚ > raise RuntimeError("Forced runtime error") +โ”‚ โ”‚ โ”‚ E RuntimeError: Forced runtime error +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:64: RuntimeError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013491790741682053 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_memory_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_memory_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000116697046905756 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014961487613618374 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 68 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: MemoryError: Simulated memory error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 68 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: MemoryError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_memory_error(): +โ”‚ โ”‚ โ”‚ # Manually raise MemoryError to simulate out-of-memory +โ”‚ โ”‚ โ”‚ condition +โ”‚ โ”‚ โ”‚ > raise MemoryError("Simulated memory error") +โ”‚ โ”‚ โ”‚ E MemoryError: Simulated memory error +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:68: MemoryError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014125881716609 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_timeout_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 69 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_timeout_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012048985809087753 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015808199532330036 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 72 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: TimeoutError: Simulated timeout error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 72 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: TimeoutError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_timeout_error(): +โ”‚ โ”‚ โ”‚ # Manually raise TimeoutError simulating timeout +โ”‚ โ”‚ โ”‚ conditions +โ”‚ โ”‚ โ”‚ > raise TimeoutError("Simulated timeout error") +โ”‚ โ”‚ โ”‚ E TimeoutError: Simulated timeout error +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:72: TimeoutError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013959710486233234 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_recursion_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 73 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_recursion_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001256088726222515 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0007832208648324013 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 77 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: RecursionError: maximum recursion depth exceeded +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 77 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in recursive +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 77 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in recursive +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_recursion_error(): +โ”‚ โ”‚ โ”‚ # Infinite recursion triggers RecursionError +โ”‚ โ”‚ โ”‚ def recursive(): +โ”‚ โ”‚ โ”‚ return recursive() +โ”‚ โ”‚ โ”‚ > recursive() +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:78: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:77: in recursive +โ”‚ โ”‚ โ”‚ return recursive() +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:77: in recursive +โ”‚ โ”‚ โ”‚ return recursive() +โ”‚ โ”‚ โ”‚ E RecursionError: maximum recursion depth exceeded +โ”‚ โ”‚ โ”‚ !!! Recursion detected (same locals & position) +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00023767701350152493 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_floating_point_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 79 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_floating_point_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014870893210172653 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001807732041925192 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 82 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: FloatingPointError: Simulated floating point error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 82 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: FloatingPointError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_floating_point_error(): +โ”‚ โ”‚ โ”‚ # Manually raise FloatingPointError +โ”‚ โ”‚ โ”‚ > raise FloatingPointError("Simulated floating point +โ”‚ โ”‚ โ”‚ error") +โ”‚ โ”‚ โ”‚ E FloatingPointError: Simulated floating point error +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:82: FloatingPointError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00019396096467971802 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_floating_point_overflow +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 83 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_floating_point_overflow +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016696378588676453 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001955660991370678 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 86 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: OverflowError: math range error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 86 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: OverflowError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_floating_point_overflow(): +โ”‚ โ”‚ โ”‚ # Exponential overflow triggers OverflowError +โ”‚ โ”‚ โ”‚ > math.exp(1000) +โ”‚ โ”‚ โ”‚ E OverflowError: math range error +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:86: OverflowError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015675905160605907 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_value_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 87 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_value_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000126649159938097 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001802078913897276 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 90 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ValueError: invalid literal for int() with base 10: +โ”‚ โ”‚ โ”‚ โ”‚ 'invalid' +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 90 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ValueError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_value_error(): +โ”‚ โ”‚ โ”‚ # ValueError on invalid integer conversion +โ”‚ โ”‚ โ”‚ > int("invalid") +โ”‚ โ”‚ โ”‚ E ValueError: invalid literal for int() with base 10: +โ”‚ โ”‚ โ”‚ 'invalid' +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:90: ValueError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001477380283176899 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_wrong_argument_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 91 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_wrong_argument_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012752297334372997 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000165645033121109 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 94 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: TypeError: 'int' object is not iterable +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 94 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: TypeError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_wrong_argument_error(): +โ”‚ โ”‚ โ”‚ # TypeError when passing wrong argument type to sum +โ”‚ โ”‚ โ”‚ > sum(5) +โ”‚ โ”‚ โ”‚ E TypeError: 'int' object is not iterable +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:94: TypeError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014363601803779602 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_unhandled_exception +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 95 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_unhandled_exception +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013963296078145504 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000164153054356575 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 98 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: Exception: Generic unhandled exception +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 98 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: Exception +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_unhandled_exception(): +โ”‚ โ”‚ โ”‚ # Raises generic unhandled Exception +โ”‚ โ”‚ โ”‚ > raise Exception("Generic unhandled exception") +โ”‚ โ”‚ โ”‚ E Exception: Generic unhandled exception +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:98: Exception +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001435901504009962 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_custom_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 99 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_custom_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012350897304713726 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001639300025999546 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 102 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: test_math_utils.CustomError: Custom error +โ”‚ โ”‚ โ”‚ โ”‚ simulation +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 102 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: CustomError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_custom_error(): +โ”‚ โ”‚ โ”‚ # Raises user-defined CustomError exception +โ”‚ โ”‚ โ”‚ > raise CustomError("Custom error simulation") +โ”‚ โ”‚ โ”‚ E test_math_utils.CustomError: Custom error simulation +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:102: CustomError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013932213187217712 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_stop_iteration_direct +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 103 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_stop_iteration_direct +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013334909453988075 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000156317837536335 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/si +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ te-packages/_pytest/capture.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 880 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: RuntimeError: generator raised StopIteration +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/r +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ unner.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 341 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/r +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ unner.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 242 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/pluggy/_h +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ooks.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 513 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in __call__ +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/pluggy/_m +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ anager.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 120 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in _hookexec +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/t +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ hreadexception.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 92 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in pytest_runtest_call +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/t +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ hreadexception.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 68 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in thread_exception_runtest_hook +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/u +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ nraisableexception.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 95 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in pytest_runtest_call +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/u +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ nraisableexception.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 70 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in unraisable_exception_runtest_hook +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/l +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ogging.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 846 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in pytest_runtest_call +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/l +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ogging.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 829 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in _runtest_for +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/c +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ apture.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 880 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: RuntimeError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_stop_iteration_direct(): +โ”‚ โ”‚ โ”‚ # Directly raise StopIteration exception +โ”‚ โ”‚ โ”‚ > raise StopIteration() +โ”‚ โ”‚ โ”‚ E StopIteration +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:106: StopIteration +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ The above exception was the direct cause of the following +โ”‚ โ”‚ โ”‚ exception: +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ cls = +โ”‚ โ”‚ โ”‚ func = . at +โ”‚ โ”‚ โ”‚ 0x7fe4e263e790> +โ”‚ โ”‚ โ”‚ 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.p +โ”‚ โ”‚ โ”‚ y:120: in _hookexec +โ”‚ โ”‚ โ”‚ return self._inner_hookexec(hook_name, methods, kwargs, +โ”‚ โ”‚ โ”‚ firstresult) +โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexc +โ”‚ โ”‚ โ”‚ eption.py:92: in pytest_runtest_call +โ”‚ โ”‚ โ”‚ yield from thread_exception_runtest_hook() +โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/threadexc +โ”‚ โ”‚ โ”‚ eption.py:68: in thread_exception_runtest_hook +โ”‚ โ”‚ โ”‚ yield +โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisabl +โ”‚ โ”‚ โ”‚ eexception.py:95: in pytest_runtest_call +โ”‚ โ”‚ โ”‚ yield from unraisable_exception_runtest_hook() +โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/unraisabl +โ”‚ โ”‚ โ”‚ eexception.py:70: in unraisable_exception_runtest_hook +โ”‚ โ”‚ โ”‚ yield +โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.p +โ”‚ โ”‚ โ”‚ y:846: in pytest_runtest_call +โ”‚ โ”‚ โ”‚ yield from self._runtest_for(item, "call") +โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/site-packages/_pytest/logging.p +โ”‚ โ”‚ โ”‚ y:829: in _runtest_for +โ”‚ โ”‚ โ”‚ yield +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ self = _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.p +โ”‚ โ”‚ โ”‚ y:880: RuntimeError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002864869311451912 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_generator_exit_direct +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 107 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_generator_exit_direct +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014689704403281212 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018528103828430176 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 110 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: GeneratorExit +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 110 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: GeneratorExit +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_generator_exit_direct(): +โ”‚ โ”‚ โ”‚ # Directly raise GeneratorExit exception +โ”‚ โ”‚ โ”‚ > raise GeneratorExit() +โ”‚ โ”‚ โ”‚ E GeneratorExit +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:110: GeneratorExit +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00020994199439883232 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_malformed_code +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 111 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_malformed_code +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013714516535401344 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001826849766075611 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 114 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: File "", line 1 +โ”‚ โ”‚ โ”‚ โ”‚ def bad(: +โ”‚ โ”‚ โ”‚ โ”‚ ^ +โ”‚ โ”‚ โ”‚ โ”‚ SyntaxError: invalid syntax +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 114 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: SyntaxError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_malformed_code(): +โ”‚ โ”‚ โ”‚ # SyntaxError when executing malformed Python code +โ”‚ โ”‚ โ”‚ > exec("def bad(:\n pass") +โ”‚ โ”‚ โ”‚ E File "", line 1 +โ”‚ โ”‚ โ”‚ E def bad(: +โ”‚ โ”‚ โ”‚ E ^ +โ”‚ โ”‚ โ”‚ E SyntaxError: invalid syntax +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:114: SyntaxError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001661311835050583 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_sys_exit +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 115 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_sys_exit +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013048900291323662 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016428297385573387 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 118 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: SystemExit: 1 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 118 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: SystemExit +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_sys_exit(): +โ”‚ โ”‚ โ”‚ # Simulate SystemExit via sys.exit +โ”‚ โ”‚ โ”‚ > sys.exit(1) +โ”‚ โ”‚ โ”‚ E SystemExit: 1 +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:118: SystemExit +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014870497398078442 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_broken_function +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 119 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_broken_function +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013548904098570347 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001607921440154314 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 123 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: TypeError: Broken function +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 124 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 123 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: TypeError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_broken_function(): +โ”‚ โ”‚ โ”‚ # Simulate broken function raising TypeError +โ”‚ โ”‚ โ”‚ def broken_func(*args, **kwargs): +โ”‚ โ”‚ โ”‚ raise TypeError("Broken function") +โ”‚ โ”‚ โ”‚ > broken_func() +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:124: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ args = (), kwargs = {} +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def broken_func(*args, **kwargs): +โ”‚ โ”‚ โ”‚ > raise TypeError("Broken function") +โ”‚ โ”‚ โ”‚ E TypeError: Broken function +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:123: TypeError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000142277916893363 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_import_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 125 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_import_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012082117609679699 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001567548606544733 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 128 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ImportError: Simulated ImportError +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 128 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ImportError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_import_error(): +โ”‚ โ”‚ โ”‚ # Directly raise ImportError exception +โ”‚ โ”‚ โ”‚ > raise ImportError("Simulated ImportError") +โ”‚ โ”‚ โ”‚ E ImportError: Simulated ImportError +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:128: ImportError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013832305558025837 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_math_utils.py::test_module_not_found_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 129 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_module_not_found_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012366706505417824 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00047593098133802414 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 973 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: ModuleNotFoundError: No module named +โ”‚ โ”‚ โ”‚ โ”‚ 'non_existent_module_xyz' +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_math_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 132 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/importlib/__init__.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 127 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: in import_module +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 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(): +โ”‚ โ”‚ โ”‚ # Raises ModuleNotFoundError (subclass of ImportError) +โ”‚ โ”‚ โ”‚ for missing module +โ”‚ โ”‚ โ”‚ > importlib.import_module("non_existent_module_xyz") +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_math_utils.py:132: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in +โ”‚ โ”‚ โ”‚ import_module +โ”‚ โ”‚ โ”‚ return _bootstrap._gcd_import(name, package, level) +โ”‚ โ”‚ โ”‚ :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 +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00019715703092515469 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_basic_ids +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 3 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_basic_ids +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ one +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002710449043661356 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015092105604708195 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001268621999770403 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_basic_ids +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 3 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_basic_ids +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ two +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001794830895960331 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012820097617805004 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012323795817792416 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_with_reason_and_marks +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 11 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_with_reason_and_marks +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ten +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001810300163924694 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012784008868038654 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011803698725998402 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_with_reason_and_marks +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 11 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: skipped +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_with_reason_and_marks +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ skip +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ twenty +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00026119197718799114 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: skipped +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: ('/workspace/tligui_y/slic/tests/test_param.py', 12, +โ”‚ โ”‚ โ”‚ 'Skipped: nope') +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011255498975515366 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_multiple_positional_args[1-2] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 19 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_multiple_positional_args[1-2] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 1-2 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000236947787925601 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012927898205816746 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013408297672867775 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_multiple_positional_args[3-4] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 19 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_multiple_positional_args[3-4] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 3-4 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00022608600556850433 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001266608014702797 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012320210225880146 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_non_literal_with_id +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 27 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_non_literal_with_id +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ custom-obj +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001700578723102808 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000130112050101161 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001140739768743515 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_timedistance_v1 +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 43 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_timedistance_v1 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ a0-b0-expected0 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00025296397507190704 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012605194933712482 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014653708785772324 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_timedistance_v1 +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 43 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_timedistance_v1 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ a1-b1-expected1 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00026221410371363163 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012742099352180958 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000133465975522995 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_sum_positive +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_sum_positive +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ one +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00021141208708286285 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001249860506504774 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012351106852293015 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_sum_positive +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_sum_positive +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ two +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00021494505926966667 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012786895968019962 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012217299081385136 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_sum_positive +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 55 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_sum_positive +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ edge +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002167790662497282 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002656050492078066 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_param.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 58 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: assert (-1 + -1) >= 0 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 58 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: AssertionError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: x = -1, y = -1 +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ @pytest.mark.parametrize("x, y", [(param["x"], param["y"]) +โ”‚ โ”‚ โ”‚ for _, param in scenarios], ids=) +โ”‚ โ”‚ โ”‚ def test_sum_positive(x, y): +โ”‚ โ”‚ โ”‚ > assert (x + y) >= 0 +โ”‚ โ”‚ โ”‚ E assert (-1 + -1) >= 0 +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_param.py:58: AssertionError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000179684953764081 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_dynamic +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_dynamic +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ten +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002031258773058653 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013391789980232716 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011843699030578136 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_dynamic +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_dynamic +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ twenty +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001749400980770588 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001242249272763729 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011219712905585766 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_dynamic +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 65 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_dynamic +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ thirty +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00018349196761846542 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012882915325462818 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001130630262196064 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_element_type[\U0001f525] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 74 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_element_type[\U0001f525] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ \U0001f525 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016994192264974117 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012962380424141884 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011412100866436958 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_element_type[\U0001f4a7] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 74 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_element_type[\U0001f4a7] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ \U0001f4a7 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016118120402097702 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012306193821132183 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00010870699770748615 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_element_type[\U0001f30d] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 74 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_element_type[\U0001f30d] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ \U0001f30d +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015518395230174065 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001309509389102459 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011090096086263657 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_combination +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_combination +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ a-1 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00020080292597413063 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001306449994444847 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012210989370942116 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_combination +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_combination +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ a-2 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0002049049362540245 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001269590575248003 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000125763937830925 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_combination +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_combination +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ b-1 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001976208295673132 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012423284351825714 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000127855921164155 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_combination +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 78 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_combination +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ b-2 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00020208791829645634 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012378999963402748 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013137515634298325 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_indirect_fixture[1] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 89 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_indirect_fixture[1] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 1 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016164383850991726 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012804497964680195 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011342903599143028 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_indirect_fixture[2] +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 89 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_indirect_fixture[2] +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ parametrize +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ 2 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00016286317259073257 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012227008119225502 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011130701750516891 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_addition +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 94 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_addition +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00010095001198351383 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015792297199368477 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_param.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 97 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: NameError: name 'addition' is not defined +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_param.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 97 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: NameError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: a = 5, b = 5, expected = 10 +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def test_addition(a = 5, b = 5, expected = 10): +โ”‚ โ”‚ โ”‚ # Has to pass +โ”‚ โ”‚ โ”‚ > assert addition(a, b) == expected +โ”‚ โ”‚ โ”‚ E NameError: name 'addition' is not defined +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_param.py:97: NameError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014517712406814098 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_param.py::test_basic_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 99 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: error +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_basic_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_param.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015376601368188858 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: file /workspace/tligui_y/slic/tests/test_param.py, +โ”‚ โ”‚ โ”‚ line 100 +โ”‚ โ”‚ โ”‚ def test_basic_error(x): +โ”‚ โ”‚ โ”‚ E fixture 'x' not found +โ”‚ โ”‚ โ”‚ > available fixtures: cache, capfd, capfdbinary, caplog, +โ”‚ โ”‚ โ”‚ capsys, capsysbinary, complex_setup, cov, doctest_namespace, +โ”‚ โ”‚ โ”‚ element, extra, extras, include_metadata_in_junit_xml, +โ”‚ โ”‚ โ”‚ json_metadata, metadata, monkeypatch, no_cover, pytestconfig, +โ”‚ โ”‚ โ”‚ record_property, record_testsuite_property, +โ”‚ โ”‚ โ”‚ record_xml_attribute, recwarn, tmp_path, tmp_path_factory, +โ”‚ โ”‚ โ”‚ tmpdir, tmpdir_factory +โ”‚ โ”‚ โ”‚ > use 'pytest --fixtures ' for help on them. +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ /workspace/tligui_y/slic/tests/test_param.py:100 +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001266880426555872 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_uppercase_normal +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 9 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_uppercase_normal +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012137484736740589 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001478111371397972 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00010024895891547203 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_uppercase_type_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 13 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_uppercase_type_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.000106095802038908 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015716394409537315 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/functions/string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 3 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: TypeError: Input cannot be None +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 16 +โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: functions/string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 3 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: TypeError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_uppercase_type_error(): +โ”‚ โ”‚ โ”‚ # TypeError when input is None (invalid input) +โ”‚ โ”‚ โ”‚ > uppercase(None) +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_string_utils.py:16: +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ _ _ _ _ _ _ _ _ +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ s = None +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ def uppercase(s): +โ”‚ โ”‚ โ”‚ if s is None: +โ”‚ โ”‚ โ”‚ > raise TypeError("Input cannot be None") +โ”‚ โ”‚ โ”‚ E TypeError: Input cannot be None +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ functions/string_utils.py:3: TypeError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013588415458798409 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_reverse_string +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 17 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_reverse_string +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011761300265789032 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014080386608839035 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 9.911693632602692e-05 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_warning_emit +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 21 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_warning_emit +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011179898865520954 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00014877296052873135 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 9.969901293516159e-05 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_unicode_decode_error +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 25 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_unicode_decode_error +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00011409702710807323 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001466700341552496 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 28 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: UnicodeDecodeError: 'utf-8' codec can't decode byte +โ”‚ โ”‚ โ”‚ โ”‚ 0xff in position 0: invalid start byte +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 28 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: UnicodeDecodeError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_unicode_decode_error(): +โ”‚ โ”‚ โ”‚ # UnicodeDecodeError when decoding invalid byte sequence +โ”‚ โ”‚ โ”‚ > b'\xff'.decode('utf-8') +โ”‚ โ”‚ โ”‚ E UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff +โ”‚ โ”‚ โ”‚ in position 0: invalid start byte +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_string_utils.py:28: UnicodeDecodeError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013504689559340477 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: +โ”‚ โ”‚ โ”‚ tests/test_string_utils.py::test_unicode_decode_surrogateescape +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 29 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_unicode_decode_surrogateescape +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00012762891128659248 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00015335390344262123 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: failed +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 32 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: UnicodeDecodeError: 'utf-8' codec can't decode byte +โ”‚ โ”‚ โ”‚ โ”‚ 0x80 in position 0: invalid start byte +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 32 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: UnicodeDecodeError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: def test_unicode_decode_surrogateescape(): +โ”‚ โ”‚ โ”‚ # UnicodeDecodeError with strict error handler on +โ”‚ โ”‚ โ”‚ invalid byte +โ”‚ โ”‚ โ”‚ > b"\x80".decode("utf-8", errors="strict") +โ”‚ โ”‚ โ”‚ E UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 +โ”‚ โ”‚ โ”‚ in position 0: invalid start byte +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_string_utils.py:32: UnicodeDecodeError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001336880959570408 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_syntax_warning +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 33 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_syntax_warning +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001194619107991457 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001617218367755413 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00010246597230434418 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ - +โ”‚ โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_xfail_uppercase_digits +โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 37 +โ”‚ โ”‚ โ”œโ”€โ”€ outcome: xfailed +โ”‚ โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_xfail_uppercase_digits +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ xfail +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ pytestmark +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ”‚ โ”œโ”€โ”€ setup +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0001197748351842165 +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ”‚ โ”œโ”€โ”€ call +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.0006523651536554098 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ outcome: skipped +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ crash +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: /workspace/tligui_y/slic/tests/test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 41 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: AssertionError: assert 'ABC123' == 'ABC1234' +โ”‚ โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ โ”‚ - ABC1234 +โ”‚ โ”‚ โ”‚ โ”‚ ? - +โ”‚ โ”‚ โ”‚ โ”‚ + ABC123 +โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ traceback +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ - +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ path: tests/test_string_utils.py +โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ lineno: 41 +โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ message: AssertionError +โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ longrepr: @pytest.mark.xfail(reason="Expected failure: uppercase +โ”‚ โ”‚ โ”‚ does not handle digits") +โ”‚ โ”‚ โ”‚ def test_xfail_uppercase_digits(): +โ”‚ โ”‚ โ”‚ # Expected fail test because uppercase won't change +โ”‚ โ”‚ โ”‚ digits +โ”‚ โ”‚ โ”‚ > assert uppercase("abc123") == "ABC1234" +โ”‚ โ”‚ โ”‚ E AssertionError: assert 'ABC123' == 'ABC1234' +โ”‚ โ”‚ โ”‚ E +โ”‚ โ”‚ โ”‚ E - ABC1234 +โ”‚ โ”‚ โ”‚ E ? - +โ”‚ โ”‚ โ”‚ E + ABC123 +โ”‚ โ”‚ โ”‚ +โ”‚ โ”‚ โ”‚ tests/test_string_utils.py:41: AssertionError +โ”‚ โ”‚ โ””โ”€โ”€ teardown +โ”‚ โ”‚ โ”œโ”€โ”€ duration: 0.00013429392129182816 +โ”‚ โ”‚ โ””โ”€โ”€ outcome: passed +โ”‚ โ””โ”€โ”€ - +โ”‚ โ”œโ”€โ”€ nodeid: tests/test_string_utils.py::test_keyboard_interrupt_direct +โ”‚ โ”œโ”€โ”€ lineno: 48 +โ”‚ โ”œโ”€โ”€ outcome: passed +โ”‚ โ”œโ”€โ”€ keywords +โ”‚ โ”‚ โ”œโ”€โ”€ test_keyboard_interrupt_direct +โ”‚ โ”‚ โ”œโ”€โ”€ test_string_utils.py +โ”‚ โ”‚ โ”œโ”€โ”€ tests +โ”‚ โ”‚ โ”œโ”€โ”€ slic +โ”‚ โ”‚ โ””โ”€โ”€ +โ”‚ โ””โ”€โ”€ setup +โ”‚ โ”œโ”€โ”€ duration: 0.00011712592095136642 +โ”‚ โ””โ”€โ”€ outcome: passed +โ””โ”€โ”€ warnings + โ”œโ”€โ”€ - + โ”‚ โ”œโ”€โ”€ message: Test warning + โ”‚ โ”œโ”€โ”€ category: UserWarning + โ”‚ โ”œโ”€โ”€ when: runtest + โ”‚ โ”œโ”€โ”€ filename: /workspace/tligui_y/slic/tests/test_string_utils.py + โ”‚ โ””โ”€โ”€ lineno: 24 + โ””โ”€โ”€ - + โ”œโ”€โ”€ message: This is a syntax warning + โ”œโ”€โ”€ category: SyntaxWarning + โ”œโ”€โ”€ when: runtest + โ”œโ”€โ”€ filename: /workspace/tligui_y/slic/tests/test_string_utils.py + โ””โ”€โ”€ lineno: 36 diff --git a/ci-reports/markdown/pytest-report.json b/ci-reports/markdown/pytest-report.json index 3181dda5..b47997f6 100644 --- a/ci-reports/markdown/pytest-report.json +++ b/ci-reports/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1753085551.0529785, "duration": 0.1884441375732422, "exitcode": 3, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"total": 0}, "collectors": [{"nodeid": "", "outcome": "passed", "children": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/data", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/export", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/history", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/plugin/behaviors", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/plugin/packages", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "outcome": "passed", "children": []}, {"nodeid": "ci-reports/allure/plugin", "outcome": "passed", "children": [{"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", "children": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "children": [{"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", "children": []}, {"nodeid": "ci-reports/markdown", "outcome": "passed", "children": []}, {"nodeid": "ci-reports", "outcome": "passed", "children": [{"nodeid": "ci-reports/allure", "type": "Dir"}, {"nodeid": "ci-reports/coverage", "type": "Dir"}, {"nodeid": "ci-reports/markdown", "type": "Dir"}]}, {"nodeid": "functions", "outcome": "passed", "children": []}, {"nodeid": "tests/test_broken_fct.py", "outcome": "failed", "children": [], "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", "children": [], "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", "children": [{"nodeid": "tests/test_io_utils.py::test_write_file", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 9, "domain": "test_write_file"}, {"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 15, "domain": "test_read_file"}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 22, "domain": "test_cause_io_error"}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 26, "domain": "test_file_not_found"}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 30, "domain": "test_permission_error"}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 37, "domain": "test_mock_open_error"}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 45, "domain": "test_file_handle_closed_error"}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 51, "domain": "test_os_error"}, {"nodeid": "tests/test_io_utils.py::test_write_file_in_readonly_mode", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 58, "domain": "test_write_file_in_readonly_mode"}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "path": "tests/test_io_utils.py", "lineno": 67, "domain": "test_file_not_found_error"}]}, {"nodeid": "tests/test_math_utils.py", "outcome": "passed", "children": [{"nodeid": "tests/test_math_utils.py::test_broken", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 13, "domain": "test_broken"}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 17, "domain": "test_call_missing_function"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[2-2-4]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[1-5-6]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[3-4-7]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[3-5-8]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 22, "domain": "test_addition_pass[3-6-9]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 36, "domain": "test_addition_pass_id[a=2,b=2,expected=4]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 36, "domain": "test_addition_pass_id[a=1,b=5,expected=6]"}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 36, "domain": "test_addition_pass_id[a=3,b=4,expected=7]"}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 48, "domain": "test_addition_fail"}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 52, "domain": "test_division_zero"}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 56, "domain": "test_multiply_xfail"}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 61, "domain": "test_runtime_error"}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 65, "domain": "test_memory_error"}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 69, "domain": "test_timeout_error"}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 73, "domain": "test_recursion_error"}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 79, "domain": "test_floating_point_error"}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 83, "domain": "test_floating_point_overflow"}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 87, "domain": "test_value_error"}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 91, "domain": "test_wrong_argument_error"}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 95, "domain": "test_unhandled_exception"}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 99, "domain": "test_custom_error"}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 103, "domain": "test_stop_iteration_direct"}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 107, "domain": "test_generator_exit_direct"}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 111, "domain": "test_malformed_code"}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 115, "domain": "test_sys_exit"}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 119, "domain": "test_broken_function"}, {"nodeid": "tests/test_math_utils.py::test_import_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 125, "domain": "test_import_error"}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "path": "tests/test_math_utils.py", "lineno": 129, "domain": "test_module_not_found_error"}]}, {"nodeid": "tests/test_param.py", "outcome": "passed", "children": [{"nodeid": "tests/test_param.py::test_basic_ids[one]", "type": "Function", "path": "tests/test_param.py", "lineno": 3, "domain": "test_basic_ids[one]"}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "type": "Function", "path": "tests/test_param.py", "lineno": 3, "domain": "test_basic_ids[two]"}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "type": "Function", "path": "tests/test_param.py", "lineno": 11, "domain": "test_with_reason_and_marks[ten]"}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "type": "Function", "path": "tests/test_param.py", "lineno": 11, "domain": "test_with_reason_and_marks[twenty]"}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "type": "Function", "path": "tests/test_param.py", "lineno": 19, "domain": "test_multiple_positional_args[1-2]"}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "type": "Function", "path": "tests/test_param.py", "lineno": 19, "domain": "test_multiple_positional_args[3-4]"}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "type": "Function", "path": "tests/test_param.py", "lineno": 27, "domain": "test_non_literal_with_id[custom-obj]"}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "type": "Function", "path": "tests/test_param.py", "lineno": 43, "domain": "test_timedistance_v1[a0-b0-expected0]"}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "type": "Function", "path": "tests/test_param.py", "lineno": 43, "domain": "test_timedistance_v1[a1-b1-expected1]"}, {"nodeid": "tests/test_param.py::test_sum_positive[one]", "type": "Function", "path": "tests/test_param.py", "lineno": 55, "domain": "test_sum_positive[one]"}, {"nodeid": "tests/test_param.py::test_sum_positive[two]", "type": "Function", "path": "tests/test_param.py", "lineno": 55, "domain": "test_sum_positive[two]"}, {"nodeid": "tests/test_param.py::test_sum_positive[edge]", "type": "Function", "path": "tests/test_param.py", "lineno": 55, "domain": "test_sum_positive[edge]"}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "type": "Function", "path": "tests/test_param.py", "lineno": 65, "domain": "test_dynamic[ten]"}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "type": "Function", "path": "tests/test_param.py", "lineno": 65, "domain": "test_dynamic[twenty]"}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "type": "Function", "path": "tests/test_param.py", "lineno": 65, "domain": "test_dynamic[thirty]"}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", "type": "Function", "path": "tests/test_param.py", "lineno": 74, "domain": "test_element_type[\\U0001f525]"}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", "type": "Function", "path": "tests/test_param.py", "lineno": 74, "domain": "test_element_type[\\U0001f4a7]"}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", "type": "Function", "path": "tests/test_param.py", "lineno": 74, "domain": "test_element_type[\\U0001f30d]"}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "type": "Function", "path": "tests/test_param.py", "lineno": 78, "domain": "test_combination[a-1]"}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "type": "Function", "path": "tests/test_param.py", "lineno": 78, "domain": "test_combination[a-2]"}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "type": "Function", "path": "tests/test_param.py", "lineno": 78, "domain": "test_combination[b-1]"}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "type": "Function", "path": "tests/test_param.py", "lineno": 78, "domain": "test_combination[b-2]"}, {"nodeid": "tests/test_param.py::test_indirect_fixture[1]", "type": "Function", "path": "tests/test_param.py", "lineno": 89, "domain": "test_indirect_fixture[1]"}, {"nodeid": "tests/test_param.py::test_indirect_fixture[2]", "type": "Function", "path": "tests/test_param.py", "lineno": 89, "domain": "test_indirect_fixture[2]"}, {"nodeid": "tests/test_param.py::test_addition", "type": "Function", "path": "tests/test_param.py", "lineno": 94, "domain": "test_addition"}, {"nodeid": "tests/test_param.py::test_basic_error", "type": "Function", "path": "tests/test_param.py", "lineno": 99, "domain": "test_basic_error"}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "children": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 9, "domain": "test_uppercase_normal"}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 13, "domain": "test_uppercase_type_error"}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 17, "domain": "test_reverse_string"}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 21, "domain": "test_warning_emit"}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 25, "domain": "test_unicode_decode_error"}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 29, "domain": "test_unicode_decode_surrogateescape"}, {"nodeid": "tests/test_string_utils.py::test_syntax_warning", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 33, "domain": "test_syntax_warning"}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 37, "domain": "test_xfail_uppercase_digits"}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "path": "tests/test_string_utils.py", "lineno": 48, "domain": "test_keyboard_interrupt_direct"}]}, {"nodeid": "tests", "outcome": "passed", "children": [{"nodeid": "tests/test_broken_fct.py", "type": "Module"}, {"nodeid": "tests/test_collector_error.py", "type": "Module"}, {"nodeid": "tests/test_io_utils.py", "type": "Module"}, {"nodeid": "tests/test_math_utils.py", "type": "Module"}, {"nodeid": "tests/test_param.py", "type": "Module"}, {"nodeid": "tests/test_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "children": [{"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "tests": []} \ No newline at end of file +{"created": 1753086150.742535, "duration": 0.8041284084320068, "exitcode": 2, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 38, "failed": 33, "xfailed": 2, "skipped": 1, "error": 1, "total": 75, "collected": 75}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": ".", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/data", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/export", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/history", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/behaviors", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/packages", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure/plugin", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/plugin/behaviors", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/packages", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin/screen-diff", "type": "Dir"}]}, {"nodeid": "ci-reports/allure/widgets", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/allure", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure/data", "type": "Dir"}, {"nodeid": "ci-reports/allure/export", "type": "Dir"}, {"nodeid": "ci-reports/allure/history", "type": "Dir"}, {"nodeid": "ci-reports/allure/plugin", "type": "Dir"}, {"nodeid": "ci-reports/allure/widgets", "type": "Dir"}]}, {"nodeid": "ci-reports/coverage", "outcome": "passed", "result": []}, {"nodeid": "ci-reports/markdown", "outcome": "passed", "result": []}, {"nodeid": "ci-reports", "outcome": "passed", "result": [{"nodeid": "ci-reports/allure", "type": "Dir"}, {"nodeid": "ci-reports/coverage", "type": "Dir"}, {"nodeid": "ci-reports/markdown", "type": "Dir"}]}, {"nodeid": "functions", "outcome": "passed", "result": []}, {"nodeid": "tests/test_broken_fct.py", "outcome": "failed", "result": [], "longrepr": ".pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493: in importtestmodule\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_write_file", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_io_utils.py::test_read_file", "type": "Function", "lineno": 15}, {"nodeid": "tests/test_io_utils.py::test_cause_io_error", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_io_utils.py::test_file_not_found", "type": "Function", "lineno": 26}, {"nodeid": "tests/test_io_utils.py::test_permission_error", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_io_utils.py::test_mock_open_error", "type": "Function", "lineno": 37}, {"nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_io_utils.py::test_os_error", "type": "Function", "lineno": 51}, {"nodeid": "tests/test_io_utils.py::test_write_file_in_readonly_mode", "type": "Function", "lineno": 58}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "type": "Function", "lineno": 67}]}, {"nodeid": "tests/test_math_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_math_utils.py::test_broken", "type": "Function", "lineno": 13}, {"nodeid": "tests/test_math_utils.py::test_call_missing_function", "type": "Function", "lineno": 17}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "type": "Function", "lineno": 22}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "type": "Function", "lineno": 36}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "type": "Function", "lineno": 48}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "type": "Function", "lineno": 52}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "type": "Function", "lineno": 61}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "type": "Function", "lineno": 69}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "type": "Function", "lineno": 73}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "type": "Function", "lineno": 83}, {"nodeid": "tests/test_math_utils.py::test_value_error", "type": "Function", "lineno": 87}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "type": "Function", "lineno": 91}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "type": "Function", "lineno": 95}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "type": "Function", "lineno": 99}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "type": "Function", "lineno": 103}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "type": "Function", "lineno": 107}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "type": "Function", "lineno": 111}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "type": "Function", "lineno": 115}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "type": "Function", "lineno": 119}, {"nodeid": "tests/test_math_utils.py::test_import_error", "type": "Function", "lineno": 125}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "type": "Function", "lineno": 129}]}, {"nodeid": "tests/test_param.py", "outcome": "passed", "result": [{"nodeid": "tests/test_param.py::test_basic_ids[one]", "type": "Function", "lineno": 3}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "type": "Function", "lineno": 3}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "type": "Function", "lineno": 11}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "type": "Function", "lineno": 43}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "type": "Function", "lineno": 43}, {"nodeid": "tests/test_param.py::test_sum_positive[one]", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_param.py::test_sum_positive[two]", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_param.py::test_sum_positive[edge]", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", "type": "Function", "lineno": 74}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", "type": "Function", "lineno": 74}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", "type": "Function", "lineno": 74}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "type": "Function", "lineno": 78}, {"nodeid": "tests/test_param.py::test_indirect_fixture[1]", "type": "Function", "lineno": 89}, {"nodeid": "tests/test_param.py::test_indirect_fixture[2]", "type": "Function", "lineno": 89}, {"nodeid": "tests/test_param.py::test_addition", "type": "Function", "lineno": 94}, {"nodeid": "tests/test_param.py::test_basic_error", "type": "Function", "lineno": 99}]}, {"nodeid": "tests/test_string_utils.py", "outcome": "passed", "result": [{"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "type": "Function", "lineno": 9}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "type": "Function", "lineno": 13}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "type": "Function", "lineno": 17}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "type": "Function", "lineno": 25}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "type": "Function", "lineno": 29}, {"nodeid": "tests/test_string_utils.py::test_syntax_warning", "type": "Function", "lineno": 33}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "type": "Function", "lineno": 37}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "type": "Function", "lineno": 48}]}, {"nodeid": "tests", "outcome": "passed", "result": [{"nodeid": "tests/test_broken_fct.py", "type": "Module"}, {"nodeid": "tests/test_collector_error.py", "type": "Module"}, {"nodeid": "tests/test_io_utils.py", "type": "Module"}, {"nodeid": "tests/test_math_utils.py", "type": "Module"}, {"nodeid": "tests/test_param.py", "type": "Module"}, {"nodeid": "tests/test_string_utils.py", "type": "Module"}]}, {"nodeid": ".", "outcome": "passed", "result": [{"nodeid": "ci-reports", "type": "Dir"}, {"nodeid": "functions", "type": "Package"}, {"nodeid": "tests", "type": "Dir"}]}], "tests": [{"nodeid": "tests/test_io_utils.py::test_write_file", "lineno": 9, "outcome": "passed", "keywords": ["test_write_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.003419185057282448, "outcome": "passed"}, "call": {"duration": 0.000472470885142684, "outcome": "passed"}, "teardown": {"duration": 0.00024303095415234566, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_read_file", "lineno": 15, "outcome": "passed", "keywords": ["test_read_file", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0004742399323731661, "outcome": "passed"}, "call": {"duration": 0.0002890131436288357, "outcome": "passed"}, "teardown": {"duration": 0.0001505659893155098, "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.00011289305984973907, "outcome": "passed"}, "call": {"duration": 0.00016151205636560917, "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.0001429300755262375, "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.00012631993740797043, "outcome": "passed"}, "call": {"duration": 0.00017893104813992977, "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.00013928301632404327, "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.0002248440869152546, "outcome": "passed"}, "call": {"duration": 0.00018275482580065727, "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 0x7fe4e2616af0>\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.00016953307203948498, "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.00020636292174458504, "outcome": "passed"}, "call": {"duration": 0.0033249349799007177, "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 0x7fe4e4b609d0>\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.000313405878841877, "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.0001538179349154234, "outcome": "passed"}, "call": {"duration": 0.0001958401408046484, "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.00018512201495468616, "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.00024126004427671432, "outcome": "passed"}, "call": {"duration": 0.00022352603264153004, "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 0x7fe4e4a56130>\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.000180921982973814, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_write_file_in_readonly_mode", "lineno": 58, "outcome": "passed", "keywords": ["test_write_file_in_readonly_mode", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0006433418020606041, "outcome": "passed"}, "call": {"duration": 0.0011733209248632193, "outcome": "passed"}, "teardown": {"duration": 0.00015070708468556404, "outcome": "passed"}}, {"nodeid": "tests/test_io_utils.py::test_file_not_found_error", "lineno": 67, "outcome": "failed", "keywords": ["test_file_not_found_error", "test_io_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011498690582811832, "outcome": "passed"}, "call": {"duration": 0.00018516392447054386, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_io_utils.py", "lineno": 70, "message": "FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'"}, "traceback": [{"path": "tests/test_io_utils.py", "lineno": 70, "message": "FileNotFoundError"}], "longrepr": "def test_file_not_found_error():\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:70: FileNotFoundError"}, "teardown": {"duration": 0.00013639195822179317, "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.00013531814329326153, "outcome": "passed"}, "call": {"duration": 0.00015336903743445873, "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.0001357619185000658, "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.00011618714779615402, "outcome": "passed"}, "call": {"duration": 0.00015196599997580051, "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.00013581500388681889, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[2-2-4]", "parametrize", "pytestmark", "2-2-4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00031072297133505344, "outcome": "passed"}, "call": {"duration": 0.00014862394891679287, "outcome": "passed"}, "teardown": {"duration": 0.00015942403115332127, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[1-5-6]", "parametrize", "pytestmark", "1-5-6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002567949704825878, "outcome": "passed"}, "call": {"duration": 0.0001669351477175951, "outcome": "passed"}, "teardown": {"duration": 0.00014910101890563965, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-4-7]", "parametrize", "pytestmark", "3-4-7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024331314489245415, "outcome": "passed"}, "call": {"duration": 0.00014110002666711807, "outcome": "passed"}, "teardown": {"duration": 0.00013592513278126717, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-5-8]", "parametrize", "pytestmark", "3-5-8", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024708383716642857, "outcome": "passed"}, "call": {"duration": 0.00014045112766325474, "outcome": "passed"}, "teardown": {"duration": 0.00013470486737787724, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", "lineno": 22, "outcome": "passed", "keywords": ["test_addition_pass[3-6-9]", "parametrize", "pytestmark", "3-6-9", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024416414089500904, "outcome": "passed"}, "call": {"duration": 0.00015440606512129307, "outcome": "passed"}, "teardown": {"duration": 0.00014007603749632835, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=2,b=2,expected=4]", "parametrize", "pytestmark", "a=2,b=2,expected=4", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0002395219635218382, "outcome": "passed"}, "call": {"duration": 0.00013332907110452652, "outcome": "passed"}, "teardown": {"duration": 0.00013489299453794956, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=1,b=5,expected=6]", "parametrize", "pytestmark", "a=1,b=5,expected=6", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00024176808074116707, "outcome": "passed"}, "call": {"duration": 0.0001257229596376419, "outcome": "passed"}, "teardown": {"duration": 0.00014199083670973778, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", "lineno": 36, "outcome": "passed", "keywords": ["test_addition_pass_id[a=3,b=4,expected=7]", "parametrize", "pytestmark", "a=3,b=4,expected=7", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00025285803712904453, "outcome": "passed"}, "call": {"duration": 0.00012931902892887592, "outcome": "passed"}, "teardown": {"duration": 0.00013254000805318356, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_addition_fail", "lineno": 48, "outcome": "failed", "keywords": ["test_addition_fail", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00010879593901336193, "outcome": "passed"}, "call": {"duration": 0.0004584621638059616, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 51, "message": "assert 4 == 5\n + where 4 = addition(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 51, "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:51: AssertionError"}, "teardown": {"duration": 0.00014171120710670948, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_division_zero", "lineno": 52, "outcome": "failed", "keywords": ["test_division_zero", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011756992898881435, "outcome": "passed"}, "call": {"duration": 0.00016937893815338612, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError: division by zero"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 55, "message": ""}, {"path": "functions/math_utils.py", "lineno": 5, "message": "ZeroDivisionError"}], "longrepr": "def test_division_zero():\n # Will raise ZeroDivisionError if not handled in division\n> division(1, 0)\n\ntests/test_math_utils.py:55: \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.00014337711036205292, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_multiply_xfail", "lineno": 56, "outcome": "xfailed", "keywords": ["test_multiply_xfail", "xfail", "pytestmark", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014761206693947315, "outcome": "passed"}, "call": {"duration": 0.00030593201518058777, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 60, "message": "assert 4 == 5\n + where 4 = multiply(2, 2)"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 60, "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:60: AssertionError"}, "teardown": {"duration": 0.00014047999866306782, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_runtime_error", "lineno": 61, "outcome": "failed", "keywords": ["test_runtime_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011773314327001572, "outcome": "passed"}, "call": {"duration": 0.0001638028770685196, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError: Forced runtime error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 64, "message": "RuntimeError"}], "longrepr": "def test_runtime_error():\n # Test raises an uncaught RuntimeError\n> raise RuntimeError(\"Forced runtime error\")\nE RuntimeError: Forced runtime error\n\ntests/test_math_utils.py:64: RuntimeError"}, "teardown": {"duration": 0.00013491790741682053, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_memory_error", "lineno": 65, "outcome": "failed", "keywords": ["test_memory_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000116697046905756, "outcome": "passed"}, "call": {"duration": 0.00014961487613618374, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 68, "message": "MemoryError: Simulated memory error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 68, "message": "MemoryError"}], "longrepr": "def test_memory_error():\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:68: MemoryError"}, "teardown": {"duration": 0.00014125881716609, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_timeout_error", "lineno": 69, "outcome": "failed", "keywords": ["test_timeout_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012048985809087753, "outcome": "passed"}, "call": {"duration": 0.00015808199532330036, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError: Simulated timeout error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 72, "message": "TimeoutError"}], "longrepr": "def test_timeout_error():\n # Manually raise TimeoutError simulating timeout conditions\n> raise TimeoutError(\"Simulated timeout error\")\nE TimeoutError: Simulated timeout error\n\ntests/test_math_utils.py:72: TimeoutError"}, "teardown": {"duration": 0.00013959710486233234, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_recursion_error", "lineno": 73, "outcome": "failed", "keywords": ["test_recursion_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001256088726222515, "outcome": "passed"}, "call": {"duration": 0.0007832208648324013, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 77, "message": "RecursionError: maximum recursion depth exceeded"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 78, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}, {"path": "tests/test_math_utils.py", "lineno": 77, "message": "in recursive"}], "longrepr": "def test_recursion_error():\n # Infinite recursion triggers RecursionError\n def recursive():\n return recursive()\n> recursive()\n\ntests/test_math_utils.py:78: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ntests/test_math_utils.py:77: in recursive\n return recursive()\ntests/test_math_utils.py:77: in recursive\n return recursive()\nE RecursionError: maximum recursion depth exceeded\n!!! Recursion detected (same locals & position)"}, "teardown": {"duration": 0.00023767701350152493, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_error", "lineno": 79, "outcome": "failed", "keywords": ["test_floating_point_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014870893210172653, "outcome": "passed"}, "call": {"duration": 0.0001807732041925192, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError: Simulated floating point error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 82, "message": "FloatingPointError"}], "longrepr": "def test_floating_point_error():\n # Manually raise FloatingPointError\n> raise FloatingPointError(\"Simulated floating point error\")\nE FloatingPointError: Simulated floating point error\n\ntests/test_math_utils.py:82: FloatingPointError"}, "teardown": {"duration": 0.00019396096467971802, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_floating_point_overflow", "lineno": 83, "outcome": "failed", "keywords": ["test_floating_point_overflow", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00016696378588676453, "outcome": "passed"}, "call": {"duration": 0.0001955660991370678, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 86, "message": "OverflowError: math range error"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 86, "message": "OverflowError"}], "longrepr": "def test_floating_point_overflow():\n # Exponential overflow triggers OverflowError\n> math.exp(1000)\nE OverflowError: math range error\n\ntests/test_math_utils.py:86: OverflowError"}, "teardown": {"duration": 0.00015675905160605907, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_value_error", "lineno": 87, "outcome": "failed", "keywords": ["test_value_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000126649159938097, "outcome": "passed"}, "call": {"duration": 0.0001802078913897276, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 90, "message": "ValueError: invalid literal for int() with base 10: 'invalid'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 90, "message": "ValueError"}], "longrepr": "def test_value_error():\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:90: ValueError"}, "teardown": {"duration": 0.0001477380283176899, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_wrong_argument_error", "lineno": 91, "outcome": "failed", "keywords": ["test_wrong_argument_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012752297334372997, "outcome": "passed"}, "call": {"duration": 0.000165645033121109, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 94, "message": "TypeError: 'int' object is not iterable"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 94, "message": "TypeError"}], "longrepr": "def test_wrong_argument_error():\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:94: TypeError"}, "teardown": {"duration": 0.00014363601803779602, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_unhandled_exception", "lineno": 95, "outcome": "failed", "keywords": ["test_unhandled_exception", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013963296078145504, "outcome": "passed"}, "call": {"duration": 0.000164153054356575, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 98, "message": "Exception: Generic unhandled exception"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 98, "message": "Exception"}], "longrepr": "def test_unhandled_exception():\n # Raises generic unhandled Exception\n> raise Exception(\"Generic unhandled exception\")\nE Exception: Generic unhandled exception\n\ntests/test_math_utils.py:98: Exception"}, "teardown": {"duration": 0.0001435901504009962, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_custom_error", "lineno": 99, "outcome": "failed", "keywords": ["test_custom_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012350897304713726, "outcome": "passed"}, "call": {"duration": 0.0001639300025999546, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 102, "message": "test_math_utils.CustomError: Custom error simulation"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 102, "message": "CustomError"}], "longrepr": "def test_custom_error():\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:102: CustomError"}, "teardown": {"duration": 0.00013932213187217712, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", "lineno": 103, "outcome": "failed", "keywords": ["test_stop_iteration_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013334909453988075, "outcome": "passed"}, "call": {"duration": 0.000156317837536335, "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:106: StopIteration\n\nThe above exception was the direct cause of the following exception:\n\ncls = \nfunc = . at 0x7fe4e263e790>\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.0002864869311451912, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_generator_exit_direct", "lineno": 107, "outcome": "failed", "keywords": ["test_generator_exit_direct", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00014689704403281212, "outcome": "passed"}, "call": {"duration": 0.00018528103828430176, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 110, "message": "GeneratorExit"}], "longrepr": "def test_generator_exit_direct():\n # Directly raise GeneratorExit exception\n> raise GeneratorExit()\nE GeneratorExit\n\ntests/test_math_utils.py:110: GeneratorExit"}, "teardown": {"duration": 0.00020994199439883232, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_malformed_code", "lineno": 111, "outcome": "failed", "keywords": ["test_malformed_code", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013714516535401344, "outcome": "passed"}, "call": {"duration": 0.0001826849766075611, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 114, "message": " File \"\", line 1\n def bad(:\n ^\nSyntaxError: invalid syntax"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 114, "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:114: SyntaxError"}, "teardown": {"duration": 0.0001661311835050583, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_sys_exit", "lineno": 115, "outcome": "failed", "keywords": ["test_sys_exit", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013048900291323662, "outcome": "passed"}, "call": {"duration": 0.00016428297385573387, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 118, "message": "SystemExit: 1"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 118, "message": "SystemExit"}], "longrepr": "def test_sys_exit():\n # Simulate SystemExit via sys.exit\n> sys.exit(1)\nE SystemExit: 1\n\ntests/test_math_utils.py:118: SystemExit"}, "teardown": {"duration": 0.00014870497398078442, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_broken_function", "lineno": 119, "outcome": "failed", "keywords": ["test_broken_function", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00013548904098570347, "outcome": "passed"}, "call": {"duration": 0.0001607921440154314, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 123, "message": "TypeError: Broken function"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 124, "message": ""}, {"path": "tests/test_math_utils.py", "lineno": 123, "message": "TypeError"}], "longrepr": "def test_broken_function():\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:124: \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:123: TypeError"}, "teardown": {"duration": 0.000142277916893363, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_import_error", "lineno": 125, "outcome": "failed", "keywords": ["test_import_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012082117609679699, "outcome": "passed"}, "call": {"duration": 0.0001567548606544733, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_math_utils.py", "lineno": 128, "message": "ImportError: Simulated ImportError"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 128, "message": "ImportError"}], "longrepr": "def test_import_error():\n # Directly raise ImportError exception\n> raise ImportError(\"Simulated ImportError\")\nE ImportError: Simulated ImportError\n\ntests/test_math_utils.py:128: ImportError"}, "teardown": {"duration": 0.00013832305558025837, "outcome": "passed"}}, {"nodeid": "tests/test_math_utils.py::test_module_not_found_error", "lineno": 129, "outcome": "failed", "keywords": ["test_module_not_found_error", "test_math_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012366706505417824, "outcome": "passed"}, "call": {"duration": 0.00047593098133802414, "outcome": "failed", "crash": {"path": "", "lineno": 973, "message": "ModuleNotFoundError: No module named 'non_existent_module_xyz'"}, "traceback": [{"path": "tests/test_math_utils.py", "lineno": 132, "message": ""}, {"path": ".pixi/envs/default/lib/python3.8/importlib/__init__.py", "lineno": 127, "message": "in import_module"}, {"path": "", "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:132: \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.00019715703092515469, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_ids[one]", "lineno": 3, "outcome": "passed", "keywords": ["test_basic_ids[one]", "parametrize", "pytestmark", "one", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002710449043661356, "outcome": "passed"}, "call": {"duration": 0.00015092105604708195, "outcome": "passed"}, "teardown": {"duration": 0.0001268621999770403, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_ids[two]", "lineno": 3, "outcome": "passed", "keywords": ["test_basic_ids[two]", "parametrize", "pytestmark", "two", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001794830895960331, "outcome": "passed"}, "call": {"duration": 0.00012820097617805004, "outcome": "passed"}, "teardown": {"duration": 0.00012323795817792416, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", "lineno": 11, "outcome": "passed", "keywords": ["test_with_reason_and_marks[ten]", "parametrize", "pytestmark", "ten", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001810300163924694, "outcome": "passed"}, "call": {"duration": 0.00012784008868038654, "outcome": "passed"}, "teardown": {"duration": 0.00011803698725998402, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_with_reason_and_marks[twenty]", "lineno": 11, "outcome": "skipped", "keywords": ["test_with_reason_and_marks[twenty]", "parametrize", "skip", "pytestmark", "twenty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00026119197718799114, "outcome": "skipped", "longrepr": "('/workspace/tligui_y/slic/tests/test_param.py', 12, 'Skipped: nope')"}, "teardown": {"duration": 0.00011255498975515366, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", "lineno": 19, "outcome": "passed", "keywords": ["test_multiple_positional_args[1-2]", "parametrize", "pytestmark", "1-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.000236947787925601, "outcome": "passed"}, "call": {"duration": 0.00012927898205816746, "outcome": "passed"}, "teardown": {"duration": 0.00013408297672867775, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", "lineno": 19, "outcome": "passed", "keywords": ["test_multiple_positional_args[3-4]", "parametrize", "pytestmark", "3-4", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00022608600556850433, "outcome": "passed"}, "call": {"duration": 0.0001266608014702797, "outcome": "passed"}, "teardown": {"duration": 0.00012320210225880146, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", "lineno": 27, "outcome": "passed", "keywords": ["test_non_literal_with_id[custom-obj]", "parametrize", "pytestmark", "custom-obj", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001700578723102808, "outcome": "passed"}, "call": {"duration": 0.000130112050101161, "outcome": "passed"}, "teardown": {"duration": 0.0001140739768743515, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", "lineno": 43, "outcome": "passed", "keywords": ["test_timedistance_v1[a0-b0-expected0]", "parametrize", "pytestmark", "a0-b0-expected0", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00025296397507190704, "outcome": "passed"}, "call": {"duration": 0.00012605194933712482, "outcome": "passed"}, "teardown": {"duration": 0.00014653708785772324, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", "lineno": 43, "outcome": "passed", "keywords": ["test_timedistance_v1[a1-b1-expected1]", "parametrize", "pytestmark", "a1-b1-expected1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00026221410371363163, "outcome": "passed"}, "call": {"duration": 0.00012742099352180958, "outcome": "passed"}, "teardown": {"duration": 0.000133465975522995, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_sum_positive[one]", "lineno": 55, "outcome": "passed", "keywords": ["test_sum_positive[one]", "parametrize", "pytestmark", "one", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00021141208708286285, "outcome": "passed"}, "call": {"duration": 0.0001249860506504774, "outcome": "passed"}, "teardown": {"duration": 0.00012351106852293015, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_sum_positive[two]", "lineno": 55, "outcome": "passed", "keywords": ["test_sum_positive[two]", "parametrize", "pytestmark", "two", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00021494505926966667, "outcome": "passed"}, "call": {"duration": 0.00012786895968019962, "outcome": "passed"}, "teardown": {"duration": 0.00012217299081385136, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_sum_positive[edge]", "lineno": 55, "outcome": "failed", "keywords": ["test_sum_positive[edge]", "parametrize", "pytestmark", "edge", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002167790662497282, "outcome": "passed"}, "call": {"duration": 0.0002656050492078066, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_param.py", "lineno": 58, "message": "assert (-1 + -1) >= 0"}, "traceback": [{"path": "tests/test_param.py", "lineno": 58, "message": "AssertionError"}], "longrepr": "x = -1, y = -1\n\n @pytest.mark.parametrize(\"x, y\", [(param[\"x\"], param[\"y\"]) for _, param in scenarios], ids=[name for name, _ in scenarios])\n def test_sum_positive(x, y):\n> assert (x + y) >= 0\nE assert (-1 + -1) >= 0\n\ntests/test_param.py:58: AssertionError"}, "teardown": {"duration": 0.000179684953764081, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[ten]", "lineno": 65, "outcome": "passed", "keywords": ["test_dynamic[ten]", "ten", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002031258773058653, "outcome": "passed"}, "call": {"duration": 0.00013391789980232716, "outcome": "passed"}, "teardown": {"duration": 0.00011843699030578136, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[twenty]", "lineno": 65, "outcome": "passed", "keywords": ["test_dynamic[twenty]", "twenty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001749400980770588, "outcome": "passed"}, "call": {"duration": 0.0001242249272763729, "outcome": "passed"}, "teardown": {"duration": 0.00011219712905585766, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_dynamic[thirty]", "lineno": 65, "outcome": "passed", "keywords": ["test_dynamic[thirty]", "thirty", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00018349196761846542, "outcome": "passed"}, "call": {"duration": 0.00012882915325462818, "outcome": "passed"}, "teardown": {"duration": 0.0001130630262196064, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", "lineno": 74, "outcome": "passed", "keywords": ["test_element_type[\\U0001f525]", "\\U0001f525", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00016994192264974117, "outcome": "passed"}, "call": {"duration": 0.00012962380424141884, "outcome": "passed"}, "teardown": {"duration": 0.00011412100866436958, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", "lineno": 74, "outcome": "passed", "keywords": ["test_element_type[\\U0001f4a7]", "\\U0001f4a7", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00016118120402097702, "outcome": "passed"}, "call": {"duration": 0.00012306193821132183, "outcome": "passed"}, "teardown": {"duration": 0.00010870699770748615, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", "lineno": 74, "outcome": "passed", "keywords": ["test_element_type[\\U0001f30d]", "\\U0001f30d", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00015518395230174065, "outcome": "passed"}, "call": {"duration": 0.0001309509389102459, "outcome": "passed"}, "teardown": {"duration": 0.00011090096086263657, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[a-1]", "lineno": 78, "outcome": "passed", "keywords": ["test_combination[a-1]", "parametrize", "pytestmark", "a-1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00020080292597413063, "outcome": "passed"}, "call": {"duration": 0.0001306449994444847, "outcome": "passed"}, "teardown": {"duration": 0.00012210989370942116, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[a-2]", "lineno": 78, "outcome": "passed", "keywords": ["test_combination[a-2]", "parametrize", "pytestmark", "a-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0002049049362540245, "outcome": "passed"}, "call": {"duration": 0.0001269590575248003, "outcome": "passed"}, "teardown": {"duration": 0.000125763937830925, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[b-1]", "lineno": 78, "outcome": "passed", "keywords": ["test_combination[b-1]", "parametrize", "pytestmark", "b-1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.0001976208295673132, "outcome": "passed"}, "call": {"duration": 0.00012423284351825714, "outcome": "passed"}, "teardown": {"duration": 0.000127855921164155, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_combination[b-2]", "lineno": 78, "outcome": "passed", "keywords": ["test_combination[b-2]", "parametrize", "pytestmark", "b-2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00020208791829645634, "outcome": "passed"}, "call": {"duration": 0.00012378999963402748, "outcome": "passed"}, "teardown": {"duration": 0.00013137515634298325, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_indirect_fixture[1]", "lineno": 89, "outcome": "passed", "keywords": ["test_indirect_fixture[1]", "parametrize", "pytestmark", "1", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00016164383850991726, "outcome": "passed"}, "call": {"duration": 0.00012804497964680195, "outcome": "passed"}, "teardown": {"duration": 0.00011342903599143028, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_indirect_fixture[2]", "lineno": 89, "outcome": "passed", "keywords": ["test_indirect_fixture[2]", "parametrize", "pytestmark", "2", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00016286317259073257, "outcome": "passed"}, "call": {"duration": 0.00012227008119225502, "outcome": "passed"}, "teardown": {"duration": 0.00011130701750516891, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_addition", "lineno": 94, "outcome": "failed", "keywords": ["test_addition", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00010095001198351383, "outcome": "passed"}, "call": {"duration": 0.00015792297199368477, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_param.py", "lineno": 97, "message": "NameError: name 'addition' is not defined"}, "traceback": [{"path": "tests/test_param.py", "lineno": 97, "message": "NameError"}], "longrepr": "a = 5, b = 5, expected = 10\n\n def test_addition(a = 5, b = 5, expected = 10):\n # Has to pass\n> assert addition(a, b) == expected\nE NameError: name 'addition' is not defined\n\ntests/test_param.py:97: NameError"}, "teardown": {"duration": 0.00014517712406814098, "outcome": "passed"}}, {"nodeid": "tests/test_param.py::test_basic_error", "lineno": 99, "outcome": "error", "keywords": ["test_basic_error", "test_param.py", "tests", "slic", ""], "setup": {"duration": 0.00015376601368188858, "outcome": "failed", "longrepr": "file /workspace/tligui_y/slic/tests/test_param.py, line 100\n def test_basic_error(x):\nE fixture 'x' not found\n> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, complex_setup, cov, doctest_namespace, element, extra, extras, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory\n> use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/tligui_y/slic/tests/test_param.py:100"}, "teardown": {"duration": 0.0001266880426555872, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_normal", "lineno": 9, "outcome": "passed", "keywords": ["test_uppercase_normal", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012137484736740589, "outcome": "passed"}, "call": {"duration": 0.0001478111371397972, "outcome": "passed"}, "teardown": {"duration": 0.00010024895891547203, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_uppercase_type_error", "lineno": 13, "outcome": "failed", "keywords": ["test_uppercase_type_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.000106095802038908, "outcome": "passed"}, "call": {"duration": 0.00015716394409537315, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/functions/string_utils.py", "lineno": 3, "message": "TypeError: Input cannot be None"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 16, "message": ""}, {"path": "functions/string_utils.py", "lineno": 3, "message": "TypeError"}], "longrepr": "def test_uppercase_type_error():\n # TypeError when input is None (invalid input)\n> uppercase(None)\n\ntests/test_string_utils.py:16: \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.00013588415458798409, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_reverse_string", "lineno": 17, "outcome": "passed", "keywords": ["test_reverse_string", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011761300265789032, "outcome": "passed"}, "call": {"duration": 0.00014080386608839035, "outcome": "passed"}, "teardown": {"duration": 9.911693632602692e-05, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_warning_emit", "lineno": 21, "outcome": "passed", "keywords": ["test_warning_emit", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011179898865520954, "outcome": "passed"}, "call": {"duration": 0.00014877296052873135, "outcome": "passed"}, "teardown": {"duration": 9.969901293516159e-05, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_error", "lineno": 25, "outcome": "failed", "keywords": ["test_unicode_decode_error", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011409702710807323, "outcome": "passed"}, "call": {"duration": 0.0001466700341552496, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 28, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 28, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_error():\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:28: UnicodeDecodeError"}, "teardown": {"duration": 0.00013504689559340477, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", "lineno": 29, "outcome": "failed", "keywords": ["test_unicode_decode_surrogateescape", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00012762891128659248, "outcome": "passed"}, "call": {"duration": 0.00015335390344262123, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 32, "message": "UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 32, "message": "UnicodeDecodeError"}], "longrepr": "def test_unicode_decode_surrogateescape():\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:32: UnicodeDecodeError"}, "teardown": {"duration": 0.0001336880959570408, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_syntax_warning", "lineno": 33, "outcome": "passed", "keywords": ["test_syntax_warning", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001194619107991457, "outcome": "passed"}, "call": {"duration": 0.0001617218367755413, "outcome": "passed"}, "teardown": {"duration": 0.00010246597230434418, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", "lineno": 37, "outcome": "xfailed", "keywords": ["test_xfail_uppercase_digits", "xfail", "pytestmark", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.0001197748351842165, "outcome": "passed"}, "call": {"duration": 0.0006523651536554098, "outcome": "skipped", "crash": {"path": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 41, "message": "AssertionError: assert 'ABC123' == 'ABC1234'\n \n - ABC1234\n ? -\n + ABC123"}, "traceback": [{"path": "tests/test_string_utils.py", "lineno": 41, "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:41: AssertionError"}, "teardown": {"duration": 0.00013429392129182816, "outcome": "passed"}}, {"nodeid": "tests/test_string_utils.py::test_keyboard_interrupt_direct", "lineno": 48, "outcome": "passed", "keywords": ["test_keyboard_interrupt_direct", "test_string_utils.py", "tests", "slic", ""], "setup": {"duration": 0.00011712592095136642, "outcome": "passed"}}], "warnings": [{"message": "Test warning", "category": "UserWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 24}, {"message": "This is a syntax warning", "category": "SyntaxWarning", "when": "runtest", "filename": "/workspace/tligui_y/slic/tests/test_string_utils.py", "lineno": 36}]} \ No newline at end of file diff --git a/ci-reports/markdown/runtime_params.json b/ci-reports/markdown/runtime_params.json index 0637a088..59561bb4 100644 --- a/ci-reports/markdown/runtime_params.json +++ b/ci-reports/markdown/runtime_params.json @@ -1 +1,474 @@ -[] \ No newline at end of file +[ + { + "nodeid": "tests/test_io_utils.py::test_write_file", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_read_file", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_cause_io_error", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_file_not_found", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_permission_error", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_mock_open_error", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_file_handle_closed_error", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_os_error", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_write_file_in_readonly_mode", + "callspec": null + }, + { + "nodeid": "tests/test_io_utils.py::test_file_not_found_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_broken", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_call_missing_function", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_pass[2-2-4]", + "callspec": { + "params": { + "a": 2, + "b": 2, + "expected": 4 + }, + "id": "2-2-4" + } + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_pass[1-5-6]", + "callspec": { + "params": { + "a": 1, + "b": 5, + "expected": 6 + }, + "id": "1-5-6" + } + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_pass[3-4-7]", + "callspec": { + "params": { + "a": 3, + "b": 4, + "expected": 7 + }, + "id": "3-4-7" + } + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_pass[3-5-8]", + "callspec": { + "params": { + "a": 3, + "b": 5, + "expected": 8 + }, + "id": "3-5-8" + } + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_pass[3-6-9]", + "callspec": { + "params": { + "a": 3, + "b": 6, + "expected": 9 + }, + "id": "3-6-9" + } + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=2,b=2,expected=4]", + "callspec": { + "params": { + "a": 2, + "b": 2, + "expected": 4 + }, + "id": "a=2,b=2,expected=4" + } + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=1,b=5,expected=6]", + "callspec": { + "params": { + "a": 1, + "b": 5, + "expected": 6 + }, + "id": "a=1,b=5,expected=6" + } + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_pass_id[a=3,b=4,expected=7]", + "callspec": { + "params": { + "a": 3, + "b": 4, + "expected": 7 + }, + "id": "a=3,b=4,expected=7" + } + }, + { + "nodeid": "tests/test_math_utils.py::test_addition_fail", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_division_zero", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_multiply_xfail", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_runtime_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_memory_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_timeout_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_recursion_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_floating_point_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_floating_point_overflow", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_value_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_wrong_argument_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_unhandled_exception", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_custom_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_stop_iteration_direct", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_generator_exit_direct", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_malformed_code", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_sys_exit", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_broken_function", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_import_error", + "callspec": null + }, + { + "nodeid": "tests/test_math_utils.py::test_module_not_found_error", + "callspec": null + }, + { + "nodeid": "tests/test_param.py::test_basic_ids[one]", + "callspec": { + "params": { + "x": 1 + }, + "id": "one" + } + }, + { + "nodeid": "tests/test_param.py::test_basic_ids[two]", + "callspec": { + "params": { + "x": 2 + }, + "id": "two" + } + }, + { + "nodeid": "tests/test_param.py::test_with_reason_and_marks[ten]", + "callspec": { + "params": { + "x": 10 + }, + "id": "ten" + } + }, + { + "nodeid": "tests/test_param.py::test_multiple_positional_args[1-2]", + "callspec": { + "params": { + "a": 1, + "b": 2 + }, + "id": "1-2" + } + }, + { + "nodeid": "tests/test_param.py::test_multiple_positional_args[3-4]", + "callspec": { + "params": { + "a": 3, + "b": 4 + }, + "id": "3-4" + } + }, + { + "nodeid": "tests/test_param.py::test_non_literal_with_id[custom-obj]", + "callspec": { + "params": { + "data": "" + }, + "id": "custom-obj" + } + }, + { + "nodeid": "tests/test_param.py::test_timedistance_v1[a0-b0-expected0]", + "callspec": { + "params": { + "a": "2001-12-12 00:00:00", + "b": "2001-12-11 00:00:00", + "expected": "1 day, 0:00:00" + }, + "id": "a0-b0-expected0" + } + }, + { + "nodeid": "tests/test_param.py::test_timedistance_v1[a1-b1-expected1]", + "callspec": { + "params": { + "a": "2001-12-11 00:00:00", + "b": "2001-12-12 00:00:00", + "expected": "-1 day, 0:00:00" + }, + "id": "a1-b1-expected1" + } + }, + { + "nodeid": "tests/test_param.py::test_sum_positive[one]", + "callspec": { + "params": { + "x": 1, + "y": 2 + }, + "id": "one" + } + }, + { + "nodeid": "tests/test_param.py::test_sum_positive[two]", + "callspec": { + "params": { + "x": 3, + "y": 4 + }, + "id": "two" + } + }, + { + "nodeid": "tests/test_param.py::test_sum_positive[edge]", + "callspec": { + "params": { + "x": -1, + "y": -1 + }, + "id": "edge" + } + }, + { + "nodeid": "tests/test_param.py::test_dynamic[ten]", + "callspec": { + "params": { + "val": 10 + }, + "id": "ten" + } + }, + { + "nodeid": "tests/test_param.py::test_dynamic[twenty]", + "callspec": { + "params": { + "val": 20 + }, + "id": "twenty" + } + }, + { + "nodeid": "tests/test_param.py::test_dynamic[thirty]", + "callspec": { + "params": { + "val": 30 + }, + "id": "thirty" + } + }, + { + "nodeid": "tests/test_param.py::test_element_type[\\U0001f525]", + "callspec": { + "params": { + "element": "fire" + }, + "id": "\\U0001f525" + } + }, + { + "nodeid": "tests/test_param.py::test_element_type[\\U0001f4a7]", + "callspec": { + "params": { + "element": "water" + }, + "id": "\\U0001f4a7" + } + }, + { + "nodeid": "tests/test_param.py::test_element_type[\\U0001f30d]", + "callspec": { + "params": { + "element": "earth" + }, + "id": "\\U0001f30d" + } + }, + { + "nodeid": "tests/test_param.py::test_combination[a-1]", + "callspec": { + "params": { + "y": "a", + "x": 1 + }, + "id": "a-1" + } + }, + { + "nodeid": "tests/test_param.py::test_combination[a-2]", + "callspec": { + "params": { + "y": "a", + "x": 2 + }, + "id": "a-2" + } + }, + { + "nodeid": "tests/test_param.py::test_combination[b-1]", + "callspec": { + "params": { + "y": "b", + "x": 1 + }, + "id": "b-1" + } + }, + { + "nodeid": "tests/test_param.py::test_combination[b-2]", + "callspec": { + "params": { + "y": "b", + "x": 2 + }, + "id": "b-2" + } + }, + { + "nodeid": "tests/test_param.py::test_indirect_fixture[1]", + "callspec": { + "params": { + "complex_setup": 1 + }, + "id": "1" + } + }, + { + "nodeid": "tests/test_param.py::test_indirect_fixture[2]", + "callspec": { + "params": { + "complex_setup": 2 + }, + "id": "2" + } + }, + { + "nodeid": "tests/test_param.py::test_addition", + "callspec": null + }, + { + "nodeid": "tests/test_string_utils.py::test_uppercase_normal", + "callspec": null + }, + { + "nodeid": "tests/test_string_utils.py::test_uppercase_type_error", + "callspec": null + }, + { + "nodeid": "tests/test_string_utils.py::test_reverse_string", + "callspec": null + }, + { + "nodeid": "tests/test_string_utils.py::test_warning_emit", + "callspec": null + }, + { + "nodeid": "tests/test_string_utils.py::test_unicode_decode_error", + "callspec": null + }, + { + "nodeid": "tests/test_string_utils.py::test_unicode_decode_surrogateescape", + "callspec": null + }, + { + "nodeid": "tests/test_string_utils.py::test_syntax_warning", + "callspec": null + }, + { + "nodeid": "tests/test_string_utils.py::test_xfail_uppercase_digits", + "callspec": null + } +] \ No newline at end of file