Files
slic/ci-reports/markdown/TEST-REPORT.md
T

185 KiB

⚠️ Test execution interrupted

The test run was interrupted by the user (reasons : KeyboardInterrupt or ...).

🪵 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, allure-pytest-2.13.5, metadata-3.1.1, html-4.1.1, json-report-1.5.0, md-report-0.6.2
collected 72 items / 2 errors

tests/test_io_utils.py ..FFFFFF.F
tests/test_math_utils.py FF........FFxFFFFFFFFFFFFFFFFF
tests/test_param.py ...s.....E............F
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 TestDynamic.test_sum_positive ________________
file /workspace/tligui_y/slic/tests/test_param.py, line 71
      def test_sum_positive(self, x, y):
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:71
=================================== 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 0x7fe4eefe2a60>

    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 0x7fe4ef012fa0>

    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='140621239102384'>
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 0x7fe4ef019bb0>

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

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

path = 'file.txt'

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

tests/test_io_utils.py:55: OSError
__________________________ test_file_not_found_error ___________________________

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

tests/test_io_utils.py:69: FileNotFoundError
_________________________________ test_broken __________________________________

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

tests/test_math_utils.py:16: NameError
__________________________ test_call_missing_function __________________________

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

tests/test_math_utils.py:20: AttributeError
______________________________ test_addition_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 0x7fe4ef202700>
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():
>       raise ImportError("Simulated ImportError")
E       ImportError: Simulated ImportError

tests/test_math_utils.py:127: 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:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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 0x7fe4f36e34c0>

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

<frozen importlib._bootstrap>:973: ModuleNotFoundError
________________________________ 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:107: 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)

-- 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_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::TestDynamic::test_sum_positive
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/workspace/tligui_y/slic/tests/test_string_utils.py:52: KeyboardInterrupt
(to show a full traceback on KeyboardInterrupt use --full-trace)
=== 32 failed, 35 passed, 1 skipped, 2 xfailed, 1 warning, 3 errors in 0.72s ===

🧪 Test Report

Generated on 2025-07-18 10:12:46 CEST

🧾 General Info

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

📋 Summary

  • Passed: 36
  • Failed: 32
  • Xfailed: 2
  • Skipped: 1
  • Error: 1
  • Total: 72
  • Collected: 72

🔎 Tests

Passed (36)
📁 test_io_utils.py
🔧 Function: `test_read_file`
#1

🔧 Setup Phase

📌 Duration
0.0029324600473046303
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0004471610300242901
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00023761996999382973
📌 Outcome
passed
🔧 Function: `test_write_file`
#2

🔧 Setup Phase

📌 Duration
0.0004514650208875537
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00026921299286186695
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013705098535865545
📌 Outcome
passed
🔧 Function: `test_write_file_readonly`
#9

🔧 Setup Phase

📌 Duration
0.000555330072529614
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.001648823032155633
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.0001504929969087243
📌 Outcome
passed
📁 test_math_utils.py
🔧 Function: `test_addition_pass`
#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.0002771749859675765
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015595206059515476
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00015571597032248974
📌 Outcome
passed
#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.0002496980596333742
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00013371696695685387
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00014498597010970116
📌 Outcome
passed
#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.00025783106684684753
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001310170628130436
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.0001330990344285965
📌 Outcome
passed
#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.0002440079115331173
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012588093522936106
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013862503692507744
📌 Outcome
passed
#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.00025477504823356867
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012863404117524624
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013308203779160976
📌 Outcome
passed
🔧 Function: `test_addition_pass_id`
#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.00025467807427048683
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00013003905769437551
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.0001338130095973611
📌 Outcome
passed
#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.00024387601297348738
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001323280157521367
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013828394003212452
📌 Outcome
passed
#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.00025129702407866716
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001293380046263337
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013270694762468338
📌 Outcome
passed
📁 test_param.py
🔧 Function: `test_basic_ids`
#41 params: x=1
📌 Runtime Parameters
params:
  x: 1
id: one

🔧 Setup Phase

📌 Duration
0.00023470597807317972
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001410819822922349
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00012503995094448328
📌 Outcome
passed
#42 params: x=2
📌 Runtime Parameters
params:
  x: 2
id: two

🔧 Setup Phase

📌 Duration
0.00017254601698368788
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012566207442432642
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00012367009185254574
📌 Outcome
passed
🔧 Function: `test_with_reason_and_marks`
#43 params: x=10
📌 Runtime Parameters
params:
  x: 10
id: ten

🔧 Setup Phase

📌 Duration
0.0001594539498910308
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012372597120702267
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00011926202569156885
📌 Outcome
passed
🔧 Function: `test_multiple_positional_args`
#45 params: a=1, b=2
📌 Runtime Parameters
params:
  a: 1
  b: 2
id: 1-2

🔧 Setup Phase

📌 Duration
0.0002258749445900321
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012889399658888578
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013177806977182627
📌 Outcome
passed
#46 params: a=3, b=4
📌 Runtime Parameters
params:
  a: 3
  b: 4
id: 3-4

🔧 Setup Phase

📌 Duration
0.00020879204384982586
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012425705790519714
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00012358895037323236
📌 Outcome
passed
🔧 Function: `test_non_literal_with_id`
#47 params: data=(object object at 0x7fe4eee73960)
📌 Runtime Parameters
params:
  data: <object object at 0x7fe4eee73960>
id: custom-obj

🔧 Setup Phase

📌 Duration
0.0001682819565758109
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001261880388483405
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00011573592200875282
📌 Outcome
passed
🔧 Function: `test_timedistance_v1`
#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.00024213502183556557
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012585800141096115
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013497506733983755
📌 Outcome
passed
#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.00024777103681117296
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012755393981933594
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013663806021213531
📌 Outcome
passed
🔧 Function: `test_dynamic`
#51 params: val=10
📌 Runtime Parameters
params:
  val: 10
id: ten

🔧 Setup Phase

📌 Duration
0.00018468196503818035
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012960901949554682
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.0001303579192608595
📌 Outcome
passed
#52 params: val=20
📌 Runtime Parameters
params:
  val: 20
id: twenty

🔧 Setup Phase

📌 Duration
0.0001649970654398203
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012389302719384432
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00012972799595445395
📌 Outcome
passed
#53 params: val=30
📌 Runtime Parameters
params:
  val: 30
id: thirty

🔧 Setup Phase

📌 Duration
0.00017228105571120977
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012446206528693438
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00011245300993323326
📌 Outcome
passed
🔧 Function: `test_element_type`
#54 params: element=fire
📌 Runtime Parameters
params:
  element: fire
id: \U0001f525

🔧 Setup Phase

📌 Duration
0.00016211497131735086
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012009101919829845
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00011164904572069645
📌 Outcome
passed
#55 params: element=water
📌 Runtime Parameters
params:
  element: water
id: \U0001f4a7

🔧 Setup Phase

📌 Duration
0.00016378297004848719
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012109789531677961
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00011009105946868658
📌 Outcome
passed
#56 params: element=earth
📌 Runtime Parameters
params:
  element: earth
id: \U0001f30d

🔧 Setup Phase

📌 Duration
0.00016947300173342228
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001189670292660594
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00010799895972013474
📌 Outcome
passed
🔧 Function: `test_combination`
#57 params: y=a, x=1
📌 Runtime Parameters
params:
  y: a
  x: 1
id: a-1

🔧 Setup Phase

📌 Duration
0.0002151400549337268
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012771994806826115
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00012416404206305742
📌 Outcome
passed
#58 params: y=a, x=2
📌 Runtime Parameters
params:
  y: a
  x: 2
id: a-2

🔧 Setup Phase

📌 Duration
0.0002040599938482046
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012304598931223154
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.0001222890568897128
📌 Outcome
passed
#59 params: y=b, x=1
📌 Runtime Parameters
params:
  y: b
  x: 1
id: b-1

🔧 Setup Phase

📌 Duration
0.00020269304513931274
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012473599053919315
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00013243407011032104
📌 Outcome
passed
#60 params: y=b, x=2
📌 Runtime Parameters
params:
  y: b
  x: 2
id: b-2

🔧 Setup Phase

📌 Duration
0.00019300705753266811
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00012210197746753693
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00012501899618655443
📌 Outcome
passed
🔧 Function: `test_indirect_fixture`
#61 params: complex_setup=1
📌 Runtime Parameters
params:
  complex_setup: 1
id: 1

🔧 Setup Phase

📌 Duration
0.00028070202097296715
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001305650221183896
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00011373707093298435
📌 Outcome
passed
#62 params: complex_setup=2
📌 Runtime Parameters
params:
  complex_setup: 2
id: 2

🔧 Setup Phase

📌 Duration
0.00016930897254496813
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00013711396604776382
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00012103293556720018
📌 Outcome
passed
📁 test_string_utils.py
🔧 Function: `test_uppercase_normal`
#64

🔧 Setup Phase

📌 Duration
0.00012857699766755104
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015520502347499132
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00010210694745182991
📌 Outcome
passed
🔧 Function: `test_reverse_string`
#66

🔧 Setup Phase

📌 Duration
0.00012030499055981636
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014017708599567413
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.00010876299347728491
📌 Outcome
passed
🔧 Function: `test_warning_emit`
#67

🔧 Setup Phase

📌 Duration
0.00010588392615318298
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014761299826204777
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
9.779608808457851e-05
📌 Outcome
passed
🔧 Function: `test_import_warning`
#70

🔧 Setup Phase

📌 Duration
0.00012227497063577175
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00013922806829214096
📌 Outcome
passed

🔧 Teardown Phase

📌 Duration
0.0001031649298965931
📌 Outcome
passed
🔧 Function: `test_keyboard_interrupt_direct`
#72

🔧 Setup Phase

📌 Duration
0.00011729099787771702
📌 Outcome
passed
Failed (32)
📁 test_io_utils.py
🔧 Function: `test_cause_io_error`
#3

🔧 Setup Phase

📌 Duration
0.00012038496788591146
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015192897990345955
📌 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.0001524379476904869
📌 Outcome
passed
🔧 Function: `test_file_not_found`
#4

🔧 Setup Phase

📌 Duration
0.00011945702135562897
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00017081608530133963
📌 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.00014090898912400007
📌 Outcome
passed
🔧 Function: `test_permission_error`
#5

🔧 Setup Phase

📌 Duration
0.00019354792311787605
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001698529813438654
📌 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 0x7fe4eefe2a60>

    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.00016477005556225777
📌 Outcome
passed
🔧 Function: `test_mock_open_error`
#6

🔧 Setup Phase

📌 Duration
0.00018252292647957802
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0030997820431366563
📌 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 0x7fe4ef012fa0>

    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='140621239102384'>
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.0002368279965594411
📌 Outcome
passed
🔧 Function: `test_file_handle_closed_error`
#7

🔧 Setup Phase

📌 Duration
0.00013476097956299782
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00016737589612603188
📌 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.00015739304944872856
📌 Outcome
passed
🔧 Function: `test_os_error`
#8

🔧 Setup Phase

📌 Duration
0.00022501894272863865
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00017676001880317926
📌 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 0x7fe4ef019bb0>

    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.00018240802455693483
📌 Outcome
passed
🔧 Function: `test_file_not_found_error`
#10

🔧 Setup Phase

📌 Duration
0.00011800799984484911
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00016644608695060015
📌 Outcome
failed
📌 Crash
path: /workspace/tligui_y/slic/tests/test_io_utils.py
lineno: 69
message: FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'
📌 Traceback
-   path: tests/test_io_utils.py
  lineno: 69
  message: FileNotFoundError
📌 Longrepr
def test_file_not_found_error():
        # Raises FileNotFoundError when opening a non-existent file
>       open("no_such_file.txt", "r")
E       FileNotFoundError: [Errno 2] No such file or directory: 'no_such_file.txt'

tests/test_io_utils.py:69: FileNotFoundError

🔧 Teardown Phase

📌 Duration
0.00013997603673487902
📌 Outcome
passed
📁 test_math_utils.py
🔧 Function: `test_broken`
#11

🔧 Setup Phase

📌 Duration
0.0001235069939866662
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014937901869416237
📌 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.0001391759142279625
📌 Outcome
passed
🔧 Function: `test_call_missing_function`
#12

🔧 Setup Phase

📌 Duration
0.000120918033644557
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015055597759783268
📌 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.00013798801228404045
📌 Outcome
passed
🔧 Function: `test_addition_fail`
#21

🔧 Setup Phase

📌 Duration
0.00011219491716474295
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0003851460060104728
📌 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.00014075206127017736
📌 Outcome
passed
🔧 Function: `test_division_zero`
#22

🔧 Setup Phase

📌 Duration
0.00011756597086787224
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015143898781388998
📌 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.0001436419552192092
📌 Outcome
passed
🔧 Function: `test_runtime_error`
#24

🔧 Setup Phase

📌 Duration
0.00011817098129540682
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014780298806726933
📌 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.0001395359868183732
📌 Outcome
passed
🔧 Function: `test_memory_error`
#25

🔧 Setup Phase

📌 Duration
0.00011663499753922224
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014599203132092953
📌 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.0001368299126625061
📌 Outcome
passed
🔧 Function: `test_timeout_error`
#26

🔧 Setup Phase

📌 Duration
0.00012141105253249407
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014617899432778358
📌 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.00013874995056539774
📌 Outcome
passed
🔧 Function: `test_recursion_error`
#27

🔧 Setup Phase

📌 Duration
0.0001230099005624652
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0007505570538341999
📌 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.00014097499661147594
📌 Outcome
passed
🔧 Function: `test_floating_point_error`
#28

🔧 Setup Phase

📌 Duration
0.00012978306040167809
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001499189529567957
📌 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.0001480859937146306
📌 Outcome
passed
🔧 Function: `test_floating_point_overflow`
#29

🔧 Setup Phase

📌 Duration
0.00012193794827908278
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015068904031068087
📌 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.00013798102736473083
📌 Outcome
passed
🔧 Function: `test_value_error`
#30

🔧 Setup Phase

📌 Duration
0.00012960191816091537
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015448906924575567
📌 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.00014250108506530523
📌 Outcome
passed
🔧 Function: `test_wrong_argument_error`
#31

🔧 Setup Phase

📌 Duration
0.00011658098082989454
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00017203600145876408
📌 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.00013682805001735687
📌 Outcome
passed
🔧 Function: `test_unhandled_exception`
#32

🔧 Setup Phase

📌 Duration
0.00012445100583136082
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015003199223428965
📌 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.00013781001325696707
📌 Outcome
passed
🔧 Function: `test_custom_error`
#33

🔧 Setup Phase

📌 Duration
0.00011896202340722084
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014994502998888493
📌 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.00013725203461945057
📌 Outcome
passed
🔧 Function: `test_stop_iteration_direct`
#34

🔧 Setup Phase

📌 Duration
0.00011701404582709074
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014776003081351519
📌 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 0x7fe4ef202700>
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.00015549501404166222
📌 Outcome
passed
🔧 Function: `test_generator_exit_direct`
#35

🔧 Setup Phase

📌 Duration
0.00012312992475926876
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014999799896031618
📌 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.0001435810700058937
📌 Outcome
passed
🔧 Function: `test_malformed_code`
#36

🔧 Setup Phase

📌 Duration
0.00012044899631291628
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015665299724787474
📌 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.00013799197040498257
📌 Outcome
passed
🔧 Function: `test_sys_exit`
#37

🔧 Setup Phase

📌 Duration
0.00012011302169412374
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00014607503544539213
📌 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.00013710896018892527
📌 Outcome
passed
🔧 Function: `test_broken_function`
#38

🔧 Setup Phase

📌 Duration
0.00012413098011165857
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015024410095065832
📌 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.00013794598635286093
📌 Outcome
passed
🔧 Function: `test_import_error`
#39

🔧 Setup Phase

📌 Duration
0.00013396295253187418
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.00015090405941009521
📌 Outcome
failed
📌 Crash
path: /workspace/tligui_y/slic/tests/test_math_utils.py
lineno: 127
message: ImportError: Simulated ImportError
📌 Traceback
-   path: tests/test_math_utils.py
  lineno: 127
  message: ImportError
📌 Longrepr
def test_import_error():
>       raise ImportError("Simulated ImportError")
E       ImportError: Simulated ImportError

tests/test_math_utils.py:127: ImportError

🔧 Teardown Phase

📌 Duration
0.00014873407781124115
📌 Outcome
passed
🔧 Function: `test_module_not_found_error`
#40

🔧 Setup Phase

📌 Duration
0.0001316330162808299
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0004564280388876796
📌 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: 131
  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:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.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 0x7fe4f36e34c0>

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

<frozen importlib._bootstrap>:973: ModuleNotFoundError

🔧 Teardown Phase

📌 Duration
0.00014200399164110422
📌 Outcome
passed
📁 test_param.py
🔧 Function: `test_addition`
#63

🔧 Setup Phase

📌 Duration
0.00010129401925951242
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001392809208482504
📌 Outcome
failed
📌 Crash
path: /workspace/tligui_y/slic/tests/test_param.py
lineno: 107
message: NameError: name 'addition' is not defined
📌 Traceback
-   path: tests/test_param.py
  lineno: 107
  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:107: NameError

🔧 Teardown Phase

📌 Duration
0.00014300004113465548
📌 Outcome
passed
📁 test_string_utils.py
🔧 Function: `test_uppercase_type_error`
#65

🔧 Setup Phase

📌 Duration
0.00010534899774938822
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001406000228598714
📌 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.0001374479616060853
📌 Outcome
passed
🔧 Function: `test_unicode_decode_error`
#68

🔧 Setup Phase

📌 Duration
0.00010229507461190224
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001411809353157878
📌 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.00014060491230338812
📌 Outcome
passed
🔧 Function: `test_unicode_decode_surrogateescape`
#69

🔧 Setup Phase

📌 Duration
0.00011895108036696911
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0001510189613327384
📌 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.0001351110404357314
📌 Outcome
passed
Xfailed (2)
📁 test_math_utils.py
🔧 Function: `test_multiply_xfail`
#23

🔧 Setup Phase

📌 Duration
0.00013142195530235767
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0002636639401316643
📌 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.00013981899246573448
📌 Outcome
passed
📁 test_string_utils.py
🔧 Function: `test_xfail_uppercase_digits`
#71

🔧 Setup Phase

📌 Duration
0.00012583599891513586
📌 Outcome
passed

🔧 Call Phase

📌 Duration
0.0005676900036633015
📌 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.00013635202776640654
📌 Outcome
passed
Skipped (1)
📁 test_param.py
🔧 Function: `test_with_reason_and_marks`
#44

🔧 Setup Phase

📌 Duration
0.00022092601284384727
📌 Outcome
skipped
📌 Longrepr
('/workspace/tligui_y/slic/tests/test_param.py', 12, 'Skipped: nope')

🔧 Teardown Phase

📌 Duration
0.00010849407408386469
📌 Outcome
passed
Error (1)
📁 test_param.py
🔧 Function: `TestDynamic`
#50

🔧 Setup Phase

📌 Duration
0.00013565202243626118
📌 Outcome
failed
📌 Longrepr
file /workspace/tligui_y/slic/tests/test_param.py, line 71
      def test_sum_positive(self, x, y):
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:71

🔧 Teardown Phase

📌 Duration
0.0001546880230307579
📌 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 (8 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_read_file
        type: Function
        lineno: 9
      -   nodeid: tests/test_io_utils.py::test_write_file
        type: Function
        lineno: 16
      -   nodeid: tests/test_io_utils.py::test_cause_io_error
        type: Function
        lineno: 22
      -   nodeid: tests/test_io_utils.py::test_file_not_found
        type: Function
        lineno: 26
      -   nodeid: tests/test_io_utils.py::test_permission_error
        type: Function
        lineno: 30
      -   nodeid: tests/test_io_utils.py::test_mock_open_error
        type: Function
        lineno: 37
      -   nodeid: tests/test_io_utils.py::test_file_handle_closed_error
        type: Function
        lineno: 45
      -   nodeid: tests/test_io_utils.py::test_os_error
        type: Function
        lineno: 51
      -   nodeid: tests/test_io_utils.py::test_write_file_readonly
        type: Function
        lineno: 58
      -   nodeid: tests/test_io_utils.py::test_file_not_found_error
        type: Function
        lineno: 66
      
    • 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: 128
      
    • 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: 40
      -   nodeid: tests/test_param.py::test_timedistance_v1[a1-b1-expected1]
        type: Function
        lineno: 40
      -   nodeid: tests/test_param.py::TestDynamic
        type: Class
      -   nodeid: tests/test_param.py::test_dynamic[ten]
        type: Function
        lineno: 78
      -   nodeid: tests/test_param.py::test_dynamic[twenty]
        type: Function
        lineno: 78
      -   nodeid: tests/test_param.py::test_dynamic[thirty]
        type: Function
        lineno: 78
      -   nodeid: tests/test_param.py::test_element_type[\U0001f525]
        type: Function
        lineno: 87
      -   nodeid: tests/test_param.py::test_element_type[\U0001f4a7]
        type: Function
        lineno: 87
      -   nodeid: tests/test_param.py::test_element_type[\U0001f30d]
        type: Function
        lineno: 87
      -   nodeid: tests/test_param.py::test_combination[a-1]
        type: Function
        lineno: 90
      -   nodeid: tests/test_param.py::test_combination[a-2]
        type: Function
        lineno: 90
      -   nodeid: tests/test_param.py::test_combination[b-1]
        type: Function
        lineno: 90
      -   nodeid: tests/test_param.py::test_combination[b-2]
        type: Function
        lineno: 90
      -   nodeid: tests/test_param.py::test_indirect_fixture[1]
        type: Function
        lineno: 100
      -   nodeid: tests/test_param.py::test_indirect_fixture[2]
        type: Function
        lineno: 100
      -   nodeid: tests/test_param.py::test_addition
        type: Function
        lineno: 104
      
    • tests/test_param.py::TestDynamic
      • Outcome: passed
      • result:
      -   nodeid: tests/test_param.py::TestDynamic::test_sum_positive
        type: Function
        lineno: 70
      
    • 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_import_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