Files
slic/ci-reports/markdown/TEST-REPORT.md
2025-07-22 12:16:36 +00:00

152 KiB

⚠️ Test execution interrupted

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 "<string>", 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:52: 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.76s ===
🪵 Full raw pytest log
============================= test session starts ==============================
platform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0
rootdir: /workspace/tligui_y/slic
plugins: cov-5.0.0, metadata-3.1.1, html-4.1.1, allure-pytest-2.13.5, json-report-1.5.0
collected 75 items / 2 errors

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)
<frozen importlib._bootstrap>:1014: in _gcd_import
    ???
<frozen importlib._bootstrap>:991: in _find_and_load
    ???
<frozen importlib._bootstrap>:975: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:671: in _load_unlocked
    ???
.pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/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 <module>
    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 0x7f4653b9f460>

    def test_permission_error(monkeypatch):
        # Patch open to raise PermissionError simulating access denial
        def raise_perm_error(*args, **kwargs):
            raise PermissionError("Permission denied")
        monkeypatch.setattr("builtins.open", raise_perm_error)
>       read_file("anyfile.txt")

tests/test_io_utils.py:36: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
functions/io_utils.py:2: in read_file
    with open(path, "r", encoding="utf-8") as f:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}

    def raise_perm_error(*args, **kwargs):
>       raise PermissionError("Permission denied")
E       PermissionError: Permission denied

tests/test_io_utils.py:34: PermissionError
_____________________________ test_mock_open_error _____________________________

monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f4653f9adf0>

    def test_mock_open_error(monkeypatch):
        # Mock open() to raise IOError simulating read error
        mocked_open = mock.mock_open()
        mocked_open.side_effect = IOError("Mocked IOError")
        monkeypatch.setattr("builtins.open", mocked_open)
>       with open("file.txt", "r") as f:

tests/test_io_utils.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in __call__
    return self._mock_call(*args, **kwargs)
.pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <MagicMock name='open' spec='builtin_function_or_method' id='139940033308416'>
args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError')

    def _execute_mock_call(self, /, *args, **kwargs):
        # separate from _increment_mock_call so that awaited functions are
        # executed separately from their call, also AsyncMock overrides this method
    
        effect = self.side_effect
        if effect is not None:
            if _is_exception(effect):
>               raise effect
E               OSError: Mocked IOError

.pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError
________________________ 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 0x7f4653f6c0d0>

    def test_os_error(monkeypatch):
        # Patch os.remove to raise OSError simulating filesystem error
        def raise_os_error(path):
            raise OSError("Simulated OSError")
        monkeypatch.setattr("os.remove", raise_os_error)
>       os.remove("file.txt")

tests/test_io_utils.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

path = 'file.txt'

    def raise_os_error(path):
>       raise OSError("Simulated OSError")
E       OSError: Simulated OSError

tests/test_io_utils.py:55: OSError
__________________________ 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 = <class '_pytest.runner.CallInfo'>
func = <function call_and_report.<locals>.<lambda> at 0x7f4653c3a670>
when = 'call'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)

    @classmethod
    def from_call(
        cls,
        func: Callable[[], TResult],
        when: Literal["collect", "setup", "call", "teardown"],
        reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None,
    ) -> CallInfo[TResult]:
        """Call func, wrapping the result in a CallInfo.
    
        :param func:
            The function to call. Called without arguments.
        :type func: Callable[[], _pytest.runner.TResult]
        :param when:
            The phase in which the function is called.
        :param reraise:
            Exception or exceptions that shall propagate if raised by the
            function, instead of being wrapped in the CallInfo.
        """
        excinfo = None
        start = timing.time()
        precise_start = timing.perf_counter()
        try:
>           result: TResult | None = func()

.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:341: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:242: in <lambda>
    lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
.pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:513: in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
.pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.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 = <CaptureManager _method='no' _global_capturing=<MultiCapture out=None err=None in_=None _state='suspended' _in_suspended=False> _capture_fixture=None>
item = <Function test_stop_iteration_direct>

    @hookimpl(wrapper=True)
    def pytest_runtest_call(self, item: Item) -> Generator[None]:
        with self.item_capture("call", item):
>           return (yield)
E           RuntimeError: generator raised StopIteration

.pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.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 "<string>", 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)
<frozen importlib._bootstrap>:1014: in _gcd_import
    ???
<frozen importlib._bootstrap>:991: in _find_and_load
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'non_existent_module_xyz'
import_ = <function _gcd_import at 0x7f46582ab4c0>

>   ???
E   ModuleNotFoundError: No module named 'non_existent_module_xyz'

<frozen importlib._bootstrap>:973: ModuleNotFoundError
___________________________ 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 ----------------------------------
report saved to: ci-reports/markdown/pytest-report.json

---------- coverage: platform linux, python 3.8.20-final-0 -----------
Coverage HTML written to dir ci-reports/coverage/
Coverage XML written to file ci-reports/coverage/coverage.xml

=========================== short test summary info ============================
FAILED tests/test_io_utils.py::test_cause_io_error - OSError: Forced IO Error for testing
FAILED tests/test_io_utils.py::test_file_not_found - FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'
FAILED tests/test_io_utils.py::test_permission_error - PermissionError: Permission denied
FAILED tests/test_io_utils.py::test_mock_open_error - OSError: Mocked IOError
FAILED tests/test_io_utils.py::test_file_handle_closed_error - ValueError: I/O operation on closed file
FAILED tests/test_io_utils.py::test_os_error - OSError: Simulated OSError
FAILED tests/test_io_utils.py::test_file_not_found_error - FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'
FAILED tests/test_math_utils.py::test_broken - NameError: name 'want_the_test_to_fail' is not defined
FAILED tests/test_math_utils.py::test_call_missing_function - AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'
FAILED tests/test_math_utils.py::test_addition_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 "<string>", 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:52: 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.76s ===

🧪 Test Report

Generated on 2025-07-22 14:16:36 CEST

🧾 General Info

  • duration: 0.7543473243713379
  • root: /workspace/tligui_y/slic
  • environment: {}

📋 Summary

  • 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:

      0.003127171192318201
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000460044015198946
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023637502454221249
      

      outcome:

      passed
      

    Function: test_read_file

    • Test 2

      📌 Setup phase

      duration:

      0.00045256479643285275
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00029500690288841724
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014071795158088207
      

      outcome:

      passed
      

    Function: test_write_file_in_readonly_mode

    • Test 9

      📌 Setup phase

      duration:

      0.0005913102068006992
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008393789175897837
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013577588833868504
      

      outcome:

      passed
      
  • 📄 test_math_utils.py

    Function: test_addition_pass

    • Test 13
      (params: a=2, b=2, expected=4)

      📌 Runtime Parameters

      params:
        a: 2
        b: 2
        expected: 4
      id: 2-2-4
      

      📌 Setup phase

      duration:

      0.000274997903034091
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014888704754412174
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014776107855141163
      

      outcome:

      passed
      
    • Test 14
      (params: a=1, b=5, expected=6)

      📌 Runtime Parameters

      params:
        a: 1
        b: 5
        expected: 6
      id: 1-5-6
      

      📌 Setup phase

      duration:

      0.0002465848810970783
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014202878810465336
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013178098015487194
      

      outcome:

      passed
      
    • Test 15
      (params: a=3, b=4, expected=7)

      📌 Runtime Parameters

      params:
        a: 3
        b: 4
        expected: 7
      id: 3-4-7
      

      📌 Setup phase

      duration:

      0.00024101301096379757
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014324416406452656
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013298401609063148
      

      outcome:

      passed
      
    • Test 16
      (params: a=3, b=5, expected=8)

      📌 Runtime Parameters

      params:
        a: 3
        b: 5
        expected: 8
      id: 3-5-8
      

      📌 Setup phase

      duration:

      0.0002320348285138607
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013249111361801624
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001308009959757328
      

      outcome:

      passed
      
    • Test 17
      (params: a=3, b=6, expected=9)

      📌 Runtime Parameters

      params:
        a: 3
        b: 6
        expected: 9
      id: 3-6-9
      

      📌 Setup phase

      duration:

      0.00024029891937971115
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013662106357514858
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001331409439444542
      

      outcome:

      passed
      

    Function: test_addition_pass_id

    • Test 18
      (params: a=2, b=2, expected=4)

      📌 Runtime Parameters

      params:
        a: 2
        b: 2
        expected: 4
      id: a=2,b=2,expected=4
      

      📌 Setup phase

      duration:

      0.0002354609314352274
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014643697068095207
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013262894935905933
      

      outcome:

      passed
      
    • Test 19
      (params: a=1, b=5, expected=6)

      📌 Runtime Parameters

      params:
        a: 1
        b: 5
        expected: 6
      id: a=1,b=5,expected=6
      

      📌 Setup phase

      duration:

      0.000231041107326746
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013674492947757244
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013268901966512203
      

      outcome:

      passed
      
    • Test 20
      (params: a=3, b=4, expected=7)

      📌 Runtime Parameters

      params:
        a: 3
        b: 4
        expected: 7
      id: a=3,b=4,expected=7
      

      📌 Setup phase

      duration:

      0.00023625511676073074
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013280101120471954
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001279059797525406
      

      outcome:

      passed
      
  • 📄 test_param.py

    Function: test_basic_ids

    • Test 41
      (params: x=1)

      📌 Runtime Parameters

      params:
        x: 1
      id: one
      

      📌 Setup phase

      duration:

      0.0002442058175802231
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001374250277876854
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013315817341208458
      

      outcome:

      passed
      
    • Test 42
      (params: x=2)

      📌 Runtime Parameters

      params:
        x: 2
      id: two
      

      📌 Setup phase

      duration:

      0.00018523097969591618
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012714113108813763
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001241189893335104
      

      outcome:

      passed
      

    Function: test_with_reason_and_marks

    • Test 43
      (params: x=10)

      📌 Runtime Parameters

      params:
        x: 10
      id: ten
      

      📌 Setup phase

      duration:

      0.0001629700418561697
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001207590103149414
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010932702571153641
      

      outcome:

      passed
      

    Function: test_multiple_positional_args

    • Test 45
      (params: a=1, b=2)

      📌 Runtime Parameters

      params:
        a: 1
        b: 2
      id: 1-2
      

      📌 Setup phase

      duration:

      0.00022646505385637283
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001257800031453371
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001227930188179016
      

      outcome:

      passed
      
    • Test 46
      (params: a=3, b=4)

      📌 Runtime Parameters

      params:
        a: 3
        b: 4
      id: 3-4
      

      📌 Setup phase

      duration:

      0.00020934292115271091
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012428313493728638
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001221878919750452
      

      outcome:

      passed
      

    Function: test_non_literal_with_id

    • Test 47
      (params: data=(object object at 0x7f4656ac6d40))

      📌 Runtime Parameters

      params:
        data: <object object at 0x7f4656ac6d40>
      id: custom-obj
      

      📌 Setup phase

      duration:

      0.00017368188127875328
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012485100887715816
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011228304356336594
      

      outcome:

      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

      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:

      0.0002495748922228813
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012239092029631138
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001411831472069025
      

      outcome:

      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

      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:

      0.00025183381512761116
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001275939866900444
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012988620437681675
      

      outcome:

      passed
      

    Function: test_sum_positive

    • Test 50
      (params: x=1, y=2)

      📌 Runtime Parameters

      params:
        x: 1
        y: 2
      id: one
      

      📌 Setup phase

      duration:

      0.00021187192760407925
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012215296737849712
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012564309872686863
      

      outcome:

      passed
      
    • Test 51
      (params: x=3, y=4)

      📌 Runtime Parameters

      params:
        x: 3
        y: 4
      id: two
      

      📌 Setup phase

      duration:

      0.00023218290880322456
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001246519386768341
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012002512812614441
      

      outcome:

      passed
      

    Function: test_dynamic

    • Test 53
      (params: val=10)

      📌 Runtime Parameters

      params:
        val: 10
      id: ten
      

      📌 Setup phase

      duration:

      0.0001841471530497074
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012887688353657722
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011754082515835762
      

      outcome:

      passed
      
    • Test 54
      (params: val=20)

      📌 Runtime Parameters

      params:
        val: 20
      id: twenty
      

      📌 Setup phase

      duration:

      0.00016175792552530766
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001264750026166439
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011478317901492119
      

      outcome:

      passed
      
    • Test 55
      (params: val=30)

      📌 Runtime Parameters

      params:
        val: 30
      id: thirty
      

      📌 Setup phase

      duration:

      0.00015746918506920338
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00011882302351295948
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011976715177297592
      

      outcome:

      passed
      

    Function: test_element_type

    • Test 56
      (params: element=fire)

      📌 Runtime Parameters

      params:
        element: fire
      id: \U0001f525
      

      📌 Setup phase

      duration:

      0.00016128900460898876
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012357579544186592
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011158897541463375
      

      outcome:

      passed
      
    • Test 57
      (params: element=water)

      📌 Runtime Parameters

      params:
        element: water
      id: \U0001f4a7
      

      📌 Setup phase

      duration:

      0.00015907897613942623
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00011821999214589596
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001072390004992485
      

      outcome:

      passed
      
    • Test 58
      (params: element=earth)

      📌 Runtime Parameters

      params:
        element: earth
      id: \U0001f30d
      

      📌 Setup phase

      duration:

      0.000163292046636343
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00011593499220907688
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010616285726428032
      

      outcome:

      passed
      

    Function: test_combination

    • Test 59
      (params: y=a, x=1)

      📌 Runtime Parameters

      params:
        y: a
        x: 1
      id: a-1
      

      📌 Setup phase

      duration:

      0.00020413589663803577
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012762704864144325
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012224819511175156
      

      outcome:

      passed
      
    • Test 60
      (params: y=a, x=2)

      📌 Runtime Parameters

      params:
        y: a
        x: 2
      id: a-2
      

      📌 Setup phase

      duration:

      0.0001988599542528391
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00011959811672568321
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011924607679247856
      

      outcome:

      passed
      
    • Test 61
      (params: y=b, x=1)

      📌 Runtime Parameters

      params:
        y: b
        x: 1
      id: b-1
      

      📌 Setup phase

      duration:

      0.00020448514260351658
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000125393969938159
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012157694436609745
      

      outcome:

      passed
      
    • Test 62
      (params: y=b, x=2)

      📌 Runtime Parameters

      params:
        y: b
        x: 2
      id: b-2
      

      📌 Setup phase

      duration:

      0.00019445782527327538
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001366769429296255
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001191399060189724
      

      outcome:

      passed
      

    Function: test_indirect_fixture

    • Test 63
      (params: complex_setup=1)

      📌 Runtime Parameters

      params:
        complex_setup: 1
      id: 1
      

      📌 Setup phase

      duration:

      0.00016290508210659027
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001243001315742731
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011174706742167473
      

      outcome:

      passed
      
    • Test 64
      (params: complex_setup=2)

      📌 Runtime Parameters

      params:
        complex_setup: 2
      id: 2
      

      📌 Setup phase

      duration:

      0.0001549671869724989
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00011884607374668121
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011124880984425545
      

      outcome:

      passed
      
  • 📄 test_string_utils.py

    Function: test_uppercase_normal

    • Test 67

      📌 Setup phase

      duration:

      0.00011956715025007725
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001406688243150711
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010104989632964134
      

      outcome:

      passed
      

    Function: test_reverse_string

    • Test 69

      📌 Setup phase

      duration:

      0.00012111011892557144
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001391430851072073
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011099805124104023
      

      outcome:

      passed
      

    Function: test_warning_emit

    • Test 70

      📌 Setup phase

      duration:

      0.00010522408410906792
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014200713485479355
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.662401862442493e-05
      

      outcome:

      passed
      

    Function: test_syntax_warning

    • Test 73

      📌 Setup phase

      duration:

      0.00011464487761259079
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014321994967758656
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010527088306844234
      

      outcome:

      passed
      

    Function: test_keyboard_interrupt_direct

    • Test 75

      📌 Setup phase

      duration:

      0.00011658016592264175
      

      outcome:

      passed
      
Failed (33)
  • 📄 test_io_utils.py

    Function: test_cause_io_error

    • Test 3

      📌 Setup phase

      duration:

      0.00011181505396962166
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016287202015519142
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/functions/io_utils.py
      lineno: 10
      message: OSError: Forced IO Error for testing
      

      traceback:

      -   path: tests/test_io_utils.py
        lineno: 25
        message: None
      -   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 phase

      duration:

      0.00013995193876326084
      

      outcome:

      passed
      

    Function: test_file_not_found

    • Test 4

      📌 Setup phase

      duration:

      0.00012210989370942116
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018649897538125515
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/functions/io_utils.py
      lineno: 2
      message: FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent.file'
      

      traceback:

      -   path: tests/test_io_utils.py
        lineno: 29
        message: None
      -   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 phase

      duration:

      0.00013819406740367413
      

      outcome:

      passed
      

    Function: test_permission_error

    • Test 5

      📌 Setup phase

      duration:

      0.000188145088031888
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016653095372021198
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_io_utils.py
      lineno: 34
      message: PermissionError: Permission denied
      

      traceback:

      -   path: tests/test_io_utils.py
        lineno: 36
        message: None
      -   path: functions/io_utils.py
        lineno: 2
        message: in read_file
      -   path: tests/test_io_utils.py
        lineno: 34
        message: PermissionError
      

      longrepr:

      monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f4653b9f460>
      
          def test_permission_error(monkeypatch):
              # Patch open to raise PermissionError simulating access denial
              def raise_perm_error(*args, **kwargs):
                  raise PermissionError("Permission denied")
              monkeypatch.setattr("builtins.open", raise_perm_error)
      >       read_file("anyfile.txt")
      
      tests/test_io_utils.py:36: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      functions/io_utils.py:2: in read_file
          with open(path, "r", encoding="utf-8") as f:
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = ('anyfile.txt', 'r'), kwargs = {'encoding': 'utf-8'}
      
          def raise_perm_error(*args, **kwargs):
      >       raise PermissionError("Permission denied")
      E       PermissionError: Permission denied
      
      tests/test_io_utils.py:34: PermissionError
      

      📌 Teardown phase

      duration:

      0.00015965220518410206
      

      outcome:

      passed
      

    Function: test_mock_open_error

    • Test 6

      📌 Setup phase

      duration:

      0.0001903099473565817
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.003129048040136695
      

      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: 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:

      monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f4653f9adf0>
      
          def test_mock_open_error(monkeypatch):
              # Mock open() to raise IOError simulating read error
              mocked_open = mock.mock_open()
              mocked_open.side_effect = IOError("Mocked IOError")
              monkeypatch.setattr("builtins.open", mocked_open)
      >       with open("file.txt", "r") as f:
      
      tests/test_io_utils.py:43: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/unittest/mock.py:1081: in __call__
          return self._mock_call(*args, **kwargs)
      .pixi/envs/default/lib/python3.8/unittest/mock.py:1085: in _mock_call
          return self._execute_mock_call(*args, **kwargs)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <MagicMock name='open' spec='builtin_function_or_method' id='139940033308416'>
      args = ('file.txt', 'r'), kwargs = {}, effect = OSError('Mocked IOError')
      
          def _execute_mock_call(self, /, *args, **kwargs):
              # separate from _increment_mock_call so that awaited functions are
              # executed separately from their call, also AsyncMock overrides this method
      
              effect = self.side_effect
              if effect is not None:
                  if _is_exception(effect):
      >               raise effect
      E               OSError: Mocked IOError
      
      .pixi/envs/default/lib/python3.8/unittest/mock.py:1140: OSError
      

      📌 Teardown phase

      duration:

      0.000293264864012599
      

      outcome:

      passed
      

    Function: test_file_handle_closed_error

    • Test 7

      📌 Setup phase

      duration:

      0.000146408099681139
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018175807781517506
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_io_utils.py
      lineno: 50
      message: ValueError: I/O operation on closed file
      

      traceback:

      -   path: tests/test_io_utils.py
        lineno: 50
        message: ValueError
      

      longrepr:

      def test_file_handle_closed_error():
              # Accessing closed file raises ValueError
              f = io.StringIO("content")
              f.close()
      >       f.read()
      E       ValueError: I/O operation on closed file
      
      tests/test_io_utils.py:50: ValueError
      

      📌 Teardown phase

      duration:

      0.00016809883527457714
      

      outcome:

      passed
      

    Function: test_os_error

    • Test 8

      📌 Setup phase

      duration:

      0.0002402861136943102
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017652916721999645
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_io_utils.py
      lineno: 55
      message: OSError: Simulated OSError
      

      traceback:

      -   path: tests/test_io_utils.py
        lineno: 57
        message: None
      -   path: tests/test_io_utils.py
        lineno: 55
        message: OSError
      

      longrepr:

      monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f4653f6c0d0>
      
          def test_os_error(monkeypatch):
              # Patch os.remove to raise OSError simulating filesystem error
              def raise_os_error(path):
                  raise OSError("Simulated OSError")
              monkeypatch.setattr("os.remove", raise_os_error)
      >       os.remove("file.txt")
      
      tests/test_io_utils.py:57: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      path = 'file.txt'
      
          def raise_os_error(path):
      >       raise OSError("Simulated OSError")
      E       OSError: Simulated OSError
      
      tests/test_io_utils.py:55: OSError
      

      📌 Teardown phase

      duration:

      0.00016252393834292889
      

      outcome:

      passed
      

    Function: test_file_not_found_error

    • Test 10

      📌 Setup phase

      duration:

      0.00011547398753464222
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016303407028317451
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_io_utils.py
      lineno: 70
      message: FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'
      

      traceback:

      -   path: tests/test_io_utils.py
        lineno: 70
        message: FileNotFoundError
      

      longrepr:

      def test_file_not_found_error():
              # Raises FileNotFoundError when opening a non-existent file
      >       open("no_such_file.txt", "r")
      E       FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'
      
      tests/test_io_utils.py:70: FileNotFoundError
      

      📌 Teardown phase

      duration:

      0.0001443119253963232
      

      outcome:

      passed
      
  • 📄 test_math_utils.py

    Function: test_broken

    • Test 11

      📌 Setup phase

      duration:

      0.00013014301657676697
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001509960275143385
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 16
      message: NameError: name 'want_the_test_to_fail' is not defined
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 16
        message: NameError
      

      longrepr:

      def test_broken():
              # simulating a broken or faulty test implementation that will cause the test to error
      >       want_the_test_to_fail
      E       NameError: name 'want_the_test_to_fail' is not defined
      
      tests/test_math_utils.py:16: NameError
      

      📌 Teardown phase

      duration:

      0.00013376190327107906
      

      outcome:

      passed
      

    Function: test_call_missing_function

    • Test 12

      📌 Setup phase

      duration:

      0.00012259790673851967
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000153364147990942
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 20
      message: AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 20
        message: AttributeError
      

      longrepr:

      def test_call_missing_function():
              # Accessing a missing function attribute raises AttributeError
      >       getattr(math_utils, "non_existent_function")()
      E       AttributeError: module 'functions.math_utils' has no attribute 'non_existent_function'
      
      tests/test_math_utils.py:20: AttributeError
      

      📌 Teardown phase

      duration:

      0.00014212308451533318
      

      outcome:

      passed
      

    Function: test_addition_fail

    • Test 21

      📌 Setup phase

      duration:

      0.00010489183478057384
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004359888844192028
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 51
      message: assert 4 == 5
       +  where 4 = addition(2, 2)
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 51
        message: AssertionError
      

      longrepr:

      def test_addition_fail():
              # Assertion failure: expected incorrect result
      >       assert addition(2, 2) == 5
      E       assert 4 == 5
      E        +  where 4 = addition(2, 2)
      
      tests/test_math_utils.py:51: AssertionError
      

      📌 Teardown phase

      duration:

      0.0001498139463365078
      

      outcome:

      passed
      

    Function: test_division_zero

    • Test 22

      📌 Setup phase

      duration:

      0.00012319395318627357
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015292898751795292
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/functions/math_utils.py
      lineno: 5
      message: ZeroDivisionError: division by zero
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 55
        message: None
      -   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 phase

      duration:

      0.00013719499111175537
      

      outcome:

      passed
      

    Function: test_runtime_error

    • Test 24

      📌 Setup phase

      duration:

      0.00011499808169901371
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001471762079745531
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 64
      message: RuntimeError: Forced runtime error
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 64
        message: RuntimeError
      

      longrepr:

      def test_runtime_error():
              # Test raises an uncaught RuntimeError
      >       raise RuntimeError("Forced runtime error")
      E       RuntimeError: Forced runtime error
      
      tests/test_math_utils.py:64: RuntimeError
      

      📌 Teardown phase

      duration:

      0.00013177492655813694
      

      outcome:

      passed
      

    Function: test_memory_error

    • Test 25

      📌 Setup phase

      duration:

      0.00011880905367434025
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001535271294414997
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 68
      message: MemoryError: Simulated memory error
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 68
        message: MemoryError
      

      longrepr:

      def test_memory_error():
              # Manually raise MemoryError to simulate out-of-memory condition
      >       raise MemoryError("Simulated memory error")
      E       MemoryError: Simulated memory error
      
      tests/test_math_utils.py:68: MemoryError
      

      📌 Teardown phase

      duration:

      0.00013314909301698208
      

      outcome:

      passed
      

    Function: test_timeout_error

    • Test 26

      📌 Setup phase

      duration:

      0.00011596689000725746
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014621810987591743
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 72
      message: TimeoutError: Simulated timeout error
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 72
        message: TimeoutError
      

      longrepr:

      def test_timeout_error():
              # Manually raise TimeoutError simulating timeout conditions
      >       raise TimeoutError("Simulated timeout error")
      E       TimeoutError: Simulated timeout error
      
      tests/test_math_utils.py:72: TimeoutError
      

      📌 Teardown phase

      duration:

      0.00013434002175927162
      

      outcome:

      passed
      

    Function: test_recursion_error

    • Test 27

      📌 Setup phase

      duration:

      0.00011664209887385368
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007643799763172865
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 77
      message: RecursionError: maximum recursion depth exceeded
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 78
        message: None
      -   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 phase

      duration:

      0.0002000490203499794
      

      outcome:

      passed
      

    Function: test_floating_point_error

    • Test 28

      📌 Setup phase

      duration:

      0.00014063785783946514
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000174627173691988
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 82
      message: FloatingPointError: Simulated floating point error
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 82
        message: FloatingPointError
      

      longrepr:

      def test_floating_point_error():
              # Manually raise FloatingPointError
      >       raise FloatingPointError("Simulated floating point error")
      E       FloatingPointError: Simulated floating point error
      
      tests/test_math_utils.py:82: FloatingPointError
      

      📌 Teardown phase

      duration:

      0.0001514679752290249
      

      outcome:

      passed
      

    Function: test_floating_point_overflow

    • Test 29

      📌 Setup phase

      duration:

      0.00012627709656953812
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019822409376502037
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 86
      message: OverflowError: math range error
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 86
        message: OverflowError
      

      longrepr:

      def test_floating_point_overflow():
              # Exponential overflow triggers OverflowError
      >       math.exp(1000)
      E       OverflowError: math range error
      
      tests/test_math_utils.py:86: OverflowError
      

      📌 Teardown phase

      duration:

      0.000159447081387043
      

      outcome:

      passed
      

    Function: test_value_error

    • Test 30

      📌 Setup phase

      duration:

      0.00012492714449763298
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015829503536224365
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 90
      message: ValueError: invalid literal for int() with base 10: 'invalid'
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 90
        message: ValueError
      

      longrepr:

      def test_value_error():
              # ValueError on invalid integer conversion
      >       int("invalid")
      E       ValueError: invalid literal for int() with base 10: 'invalid'
      
      tests/test_math_utils.py:90: ValueError
      

      📌 Teardown phase

      duration:

      0.0001328759826719761
      

      outcome:

      passed
      

    Function: test_wrong_argument_error

    • Test 31

      📌 Setup phase

      duration:

      0.00011527701281011105
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016502104699611664
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 94
      message: TypeError: 'int' object is not iterable
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 94
        message: TypeError
      

      longrepr:

      def test_wrong_argument_error():
              # TypeError when passing wrong argument type to sum
      >       sum(5)
      E       TypeError: 'int' object is not iterable
      
      tests/test_math_utils.py:94: TypeError
      

      📌 Teardown phase

      duration:

      0.00013130786828696728
      

      outcome:

      passed
      

    Function: test_unhandled_exception

    • Test 32

      📌 Setup phase

      duration:

      0.00011565303429961205
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014518597163259983
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 98
      message: Exception: Generic unhandled exception
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 98
        message: Exception
      

      longrepr:

      def test_unhandled_exception():
              # Raises generic unhandled Exception
      >       raise Exception("Generic unhandled exception")
      E       Exception: Generic unhandled exception
      
      tests/test_math_utils.py:98: Exception
      

      📌 Teardown phase

      duration:

      0.00013493397273123264
      

      outcome:

      passed
      

    Function: test_custom_error

    • Test 33

      📌 Setup phase

      duration:

      0.00011826306581497192
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015050708316266537
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 102
      message: test_math_utils.CustomError: Custom error simulation
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 102
        message: CustomError
      

      longrepr:

      def test_custom_error():
              # Raises user-defined CustomError exception
      >       raise CustomError("Custom error simulation")
      E       test_math_utils.CustomError: Custom error simulation
      
      tests/test_math_utils.py:102: CustomError
      

      📌 Teardown phase

      duration:

      0.00013376399874687195
      

      outcome:

      passed
      

    Function: test_stop_iteration_direct

    • Test 34

      📌 Setup phase

      duration:

      0.00011567305773496628
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015244679525494576
      

      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: None
      -   path: .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py
        lineno: 242
        message: in <lambda>
      -   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():
              # Directly raise StopIteration exception
      >       raise StopIteration()
      E       StopIteration
      
      tests/test_math_utils.py:106: StopIteration
      
      The above exception was the direct cause of the following exception:
      
      cls = <class '_pytest.runner.CallInfo'>
      func = <function call_and_report.<locals>.<lambda> at 0x7f4653c3a670>
      when = 'call'
      reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
      
          @classmethod
          def from_call(
              cls,
              func: Callable[[], TResult],
              when: Literal["collect", "setup", "call", "teardown"],
              reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None,
          ) -> CallInfo[TResult]:
              """Call func, wrapping the result in a CallInfo.
      
              :param func:
                  The function to call. Called without arguments.
              :type func: Callable[[], _pytest.runner.TResult]
              :param when:
                  The phase in which the function is called.
              :param reraise:
                  Exception or exceptions that shall propagate if raised by the
                  function, instead of being wrapped in the CallInfo.
              """
              excinfo = None
              start = timing.time()
              precise_start = timing.perf_counter()
              try:
      >           result: TResult | None = func()
      
      .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:341: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/site-packages/_pytest/runner.py:242: in <lambda>
          lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
      .pixi/envs/default/lib/python3.8/site-packages/pluggy/_hooks.py:513: in __call__
          return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
      .pixi/envs/default/lib/python3.8/site-packages/pluggy/_manager.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 = <CaptureManager _method='no' _global_capturing=<MultiCapture out=None err=None in_=None _state='suspended' _in_suspended=False> _capture_fixture=None>
      item = <Function test_stop_iteration_direct>
      
          @hookimpl(wrapper=True)
          def pytest_runtest_call(self, item: Item) -> Generator[None]:
              with self.item_capture("call", item):
      >           return (yield)
      E           RuntimeError: generator raised StopIteration
      
      .pixi/envs/default/lib/python3.8/site-packages/_pytest/capture.py:880: RuntimeError
      

      📌 Teardown phase

      duration:

      0.0002570070791989565
      

      outcome:

      passed
      

    Function: test_generator_exit_direct

    • Test 35

      📌 Setup phase

      duration:

      0.0001401419285684824
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017015007324516773
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 110
      message: GeneratorExit
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 110
        message: GeneratorExit
      

      longrepr:

      def test_generator_exit_direct():
              # Directly raise GeneratorExit exception
      >       raise GeneratorExit()
      E       GeneratorExit
      
      tests/test_math_utils.py:110: GeneratorExit
      

      📌 Teardown phase

      duration:

      0.0002235090360045433
      

      outcome:

      passed
      

    Function: test_malformed_code

    • Test 36

      📌 Setup phase

      duration:

      0.0001559099182486534
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018543400801718235
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 114
      message:   File "<string>", line 1
          def bad(:
                  ^
      SyntaxError: invalid syntax
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 114
        message: SyntaxError
      

      longrepr:

      def test_malformed_code():
              # SyntaxError when executing malformed Python code
      >       exec("def bad(:\n pass")
      E         File "<string>", line 1
      E           def bad(:
      E                   ^
      E       SyntaxError: invalid syntax
      
      tests/test_math_utils.py:114: SyntaxError
      

      📌 Teardown phase

      duration:

      0.0001730069052428007
      

      outcome:

      passed
      

    Function: test_sys_exit

    • Test 37

      📌 Setup phase

      duration:

      0.0001277630217373371
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017202692106366158
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 118
      message: SystemExit: 1
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 118
        message: SystemExit
      

      longrepr:

      def test_sys_exit():
              # Simulate SystemExit via sys.exit
      >       sys.exit(1)
      E       SystemExit: 1
      
      tests/test_math_utils.py:118: SystemExit
      

      📌 Teardown phase

      duration:

      0.00013296399265527725
      

      outcome:

      passed
      

    Function: test_broken_function

    • Test 38

      📌 Setup phase

      duration:

      0.00011862791143357754
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015087611973285675
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 123
      message: TypeError: Broken function
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 124
        message: None
      -   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 phase

      duration:

      0.00013840594328939915
      

      outcome:

      passed
      

    Function: test_import_error

    • Test 39

      📌 Setup phase

      duration:

      0.00011608609929680824
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015037599951028824
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 128
      message: ImportError: Simulated ImportError
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 128
        message: ImportError
      

      longrepr:

      def test_import_error():
              # Directly raise ImportError exception
      >       raise ImportError("Simulated ImportError")
      E       ImportError: Simulated ImportError
      
      tests/test_math_utils.py:128: ImportError
      

      📌 Teardown phase

      duration:

      0.00013322709128260612
      

      outcome:

      passed
      

    Function: test_module_not_found_error

    • Test 40

      📌 Setup phase

      duration:

      0.00012682913802564144
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004667481407523155
      

      outcome:

      failed
      

      crash:

      path: <frozen importlib._bootstrap>
      lineno: 973
      message: ModuleNotFoundError: No module named 'non_existent_module_xyz'
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 132
        message: None
      -   path: .pixi/envs/default/lib/python3.8/importlib/__init__.py
        lineno: 127
        message: in import_module
      -   path: <frozen importlib._bootstrap>
        lineno: 1014
        message: in _gcd_import
      -   path: <frozen importlib._bootstrap>
        lineno: 991
        message: in _find_and_load
      -   path: <frozen importlib._bootstrap>
        lineno: 973
        message: ModuleNotFoundError
      

      longrepr:

      def test_module_not_found_error():
              # Raises ModuleNotFoundError (subclass of ImportError) for missing module
      >       importlib.import_module("non_existent_module_xyz")
      
      tests/test_math_utils.py:132: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
      <frozen importlib._bootstrap>:1014: in _gcd_import
          ???
      <frozen importlib._bootstrap>:991: in _find_and_load
          ???
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      name = 'non_existent_module_xyz'
      import_ = <function _gcd_import at 0x7f46582ab4c0>
      
      >   ???
      E   ModuleNotFoundError: No module named 'non_existent_module_xyz'
      
      <frozen importlib._bootstrap>:973: ModuleNotFoundError
      

      📌 Teardown phase

      duration:

      0.00014841812662780285
      

      outcome:

      passed
      
  • 📄 test_param.py

    Function: test_sum_positive

    • Test 52
      (params: x=-1, y=-1)

      📌 Runtime Parameters

      params:
        x: -1
        y: -1
      id: edge
      

      📌 Setup phase

      duration:

      0.00020181690342724323
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002511769998818636
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_param.py
      lineno: 58
      message: assert (-1 + -1) >= 0
      

      traceback:

      -   path: tests/test_param.py
        lineno: 58
        message: AssertionError
      

      longrepr:

      x = -1, y = -1
      
          @pytest.mark.parametrize("x, y", [(param["x"], param["y"]) for _, param in scenarios], ids=[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:

      0.00017045391723513603
      

      outcome:

      passed
      

    Function: test_addition

    • Test 65

      📌 Setup phase

      duration:

      0.00010213116183876991
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001375058200210333
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_param.py
      lineno: 97
      message: NameError: name 'addition' is not defined
      

      traceback:

      -   path: tests/test_param.py
        lineno: 97
        message: NameError
      

      longrepr:

      a = 5, b = 5, expected = 10
      
          def test_addition(a = 5, b = 5, expected = 10):
              # Has to pass
      >       assert addition(a, b) == expected
      E       NameError: name 'addition' is not defined
      
      tests/test_param.py:97: NameError
      

      📌 Teardown phase

      duration:

      0.00013691699132323265
      

      outcome:

      passed
      
  • 📄 test_string_utils.py

    Function: test_uppercase_type_error

    • Test 68

      📌 Setup phase

      duration:

      0.00010715401731431484
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014039897359907627
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/functions/string_utils.py
      lineno: 3
      message: TypeError: Input cannot be None
      

      traceback:

      -   path: tests/test_string_utils.py
        lineno: 16
        message: None
      -   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 phase

      duration:

      0.00014745001681149006
      

      outcome:

      passed
      

    Function: test_unicode_decode_error

    • Test 71

      📌 Setup phase

      duration:

      0.00010338891297578812
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001396569423377514
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_string_utils.py
      lineno: 28
      message: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
      

      traceback:

      -   path: tests/test_string_utils.py
        lineno: 28
        message: UnicodeDecodeError
      

      longrepr:

      def test_unicode_decode_error():
              # UnicodeDecodeError when decoding invalid byte sequence
      >       b'\xff'.decode('utf-8')
      E       UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
      
      tests/test_string_utils.py:28: UnicodeDecodeError
      

      📌 Teardown phase

      duration:

      0.00012978003360331059
      

      outcome:

      passed
      

    Function: test_unicode_decode_surrogateescape

    • Test 72

      📌 Setup phase

      duration:

      0.00013086479157209396
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015064002946019173
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_string_utils.py
      lineno: 32
      message: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
      

      traceback:

      -   path: tests/test_string_utils.py
        lineno: 32
        message: UnicodeDecodeError
      

      longrepr:

      def test_unicode_decode_surrogateescape():
              # UnicodeDecodeError with strict error handler on invalid byte
      >       b"\x80".decode("utf-8", errors="strict")
      E       UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
      
      tests/test_string_utils.py:32: UnicodeDecodeError
      

      📌 Teardown phase

      duration:

      0.00013115303590893745
      

      outcome:

      passed
      
Xfailed (2)
  • 📄 test_math_utils.py

    Function: test_multiply_xfail

    • Test 23

      📌 Setup phase

      duration:

      0.00013488414697349072
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002619961742311716
      

      outcome:

      skipped
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_math_utils.py
      lineno: 60
      message: assert 4 == 5
       +  where 4 = multiply(2, 2)
      

      traceback:

      -   path: tests/test_math_utils.py
        lineno: 60
        message: AssertionError
      

      longrepr:

      @pytest.mark.xfail(reason="Expected failure")
          def test_multiply_xfail():
              # Expected fail test (xfail): incorrect expected multiply result
      >       assert multiply(2, 2) == 5
      E       assert 4 == 5
      E        +  where 4 = multiply(2, 2)
      
      tests/test_math_utils.py:60: AssertionError
      

      📌 Teardown phase

      duration:

      0.00013590720482170582
      

      outcome:

      passed
      
  • 📄 test_string_utils.py

    Function: test_xfail_uppercase_digits

    • Test 74

      📌 Setup phase

      duration:

      0.00012233597226440907
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006404821760952473
      

      outcome:

      skipped
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_string_utils.py
      lineno: 41
      message: AssertionError: assert 'ABC123' == 'ABC1234'
      
        - ABC1234
        ?       -
        + ABC123
      

      traceback:

      -   path: tests/test_string_utils.py
        lineno: 41
        message: AssertionError
      

      longrepr:

      @pytest.mark.xfail(reason="Expected failure: uppercase does not handle digits")
          def test_xfail_uppercase_digits():
              # Expected fail test because uppercase won't change digits
      >       assert uppercase("abc123") == "ABC1234"
      E       AssertionError: assert 'ABC123' == 'ABC1234'
      E         
      E         - ABC1234
      E         ?       -
      E         + ABC123
      
      tests/test_string_utils.py:41: AssertionError
      

      📌 Teardown phase

      duration:

      0.00013234512880444527
      

      outcome:

      passed
      
Skipped (1)
  • 📄 test_param.py

    Function: test_with_reason_and_marks

    • Test 44

      📌 Setup phase

      duration:

      0.0002305211964994669
      

      outcome:

      skipped
      

      longrepr:

      ('/workspace/tligui_y/slic/tests/test_param.py', 12, 'Skipped: nope')
      

      📌 Teardown phase

      duration:

      0.0001095819752663374
      

      outcome:

      passed
      
Error (1)
  • 📄 test_param.py

    Function: test_basic_error

    • Test 66

      📌 Setup phase

      duration:

      0.0001480488572269678
      

      outcome:

      failed
      

      longrepr:

      file /workspace/tligui_y/slic/tests/test_param.py, line 100
        def test_basic_error(x):
      E       fixture 'x' not found
      >       available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, complex_setup, cov, doctest_namespace, element, extra, extras, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
      >       use 'pytest --fixtures [testpath]' for help on them.
      
      /workspace/tligui_y/slic/tests/test_param.py:100
      

      📌 Teardown phase

      duration:

      0.00011697201989591122
      

      outcome:

      passed
      

📚 Collected files

(1 tests)
    • Outcome: passed
    • result:
    -   nodeid: .
      type: Dir
    
ci-reports (12 tests)
  • ci-reports
    • Outcome: passed
    • result:
    -   nodeid: ci-reports/allure
      type: Dir
    -   nodeid: ci-reports/coverage
      type: Dir
    -   nodeid: ci-reports/markdown
      type: Dir
    
    • 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
      
    • ci-reports/allure/data
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/export
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/history
      • Outcome: passed
      • result:
      []
      
    • 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
      
    • ci-reports/allure/plugin/behaviors
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/plugin/packages
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/plugin/screen-diff
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/widgets
      • Outcome: passed
      • result:
      []
      
    • ci-reports/coverage
      • Outcome: passed
      • result:
      []
      
    • ci-reports/markdown
      • Outcome: passed
      • result:
      []
      
functions (1 tests)
  • functions
    • Outcome: passed
    • result:
    []
    
tests (7 tests)
  • 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
    
    • tests/test_broken_fct.py
      • Outcome: failed
      • result:
      []
      
      • longrepr:
      .pixi/envs/default/lib/python3.8/site-packages/_pytest/python.py:493: in importtestmodule
          mod = import_path(
      .pixi/envs/default/lib/python3.8/site-packages/_pytest/pathlib.py: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)
      <frozen importlib._bootstrap>:1014: in _gcd_import
          ???
      <frozen importlib._bootstrap>:991: in _find_and_load
          ???
      <frozen importlib._bootstrap>:975: in _find_and_load_unlocked
          ???
      <frozen importlib._bootstrap>:671: in _load_unlocked
          ???
      .pixi/envs/default/lib/python3.8/site-packages/_pytest/assertion/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
      
    • tests/test_collector_error.py
      • Outcome: failed
      • result:
      []
      
      • longrepr:
      ImportError while importing test module '/workspace/tligui_y/slic/tests/test_collector_error.py'.
      Hint: make sure your test modules/packages have valid Python names.
      Traceback:
      .pixi/envs/default/lib/python3.8/importlib/__init__.py:127: in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
      tests/test_collector_error.py:1: in <module>
          from no_existing_module.math_utils import *
      E   ModuleNotFoundError: No module named 'no_existing_module'
      
    • 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
      
    • 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
      
    • 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
      
    • 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: 49
      
. (1 tests)
  • .
    • Outcome: passed
    • result:
    -   nodeid: ci-reports
      type: Dir
    -   nodeid: functions
      type: Package
    -   nodeid: tests
      type: Dir
    

⚠️ 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