diff --git a/tests/conftest.py b/tests/conftest.py index dc7bbcb0f..86a02441a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -169,7 +169,7 @@ def neo4j_session(neo4j_driver): # async support for pytest-benchmark # https://github.com/ionelmc/pytest-benchmark/issues/66 @pytest_asyncio.fixture -async def aio_benchmark(benchmark, event_loop): +def aio_benchmark(benchmark, event_loop): def _wrapper(func, *args, **kwargs): if asyncio.iscoroutinefunction(func): @benchmark diff --git a/tests/unit/common/test_debug.py b/tests/unit/common/test_debug.py index c465080dd..54a698e75 100644 --- a/tests/unit/common/test_debug.py +++ b/tests/unit/common/test_debug.py @@ -207,13 +207,14 @@ def test_watcher_level_multiple_watchers( custom_log_out = io.StringIO() + @pytest.mark.parametrize( ("default_out", "out", "expected_out"), ( - (None, None, sys.stderr), - (sys.stdout, None, sys.stdout), - (sys.stdout, sys.stderr, sys.stderr), - (sys.stderr, sys.stdout, sys.stdout), + (None, None, "stderr"), + ("stdout", None, "stdout"), + ("stdout", "stderr", "stderr"), + ("stderr", "stdout", "stdout"), (custom_log_out, None, custom_log_out), (None, custom_log_out, custom_log_out), ) @@ -221,6 +222,20 @@ def test_watcher_level_multiple_watchers( def test_watcher_out( logger_mocker, default_out, out, expected_out ) -> None: + def normalize_stream(stream): + # For some reason (probably a change in pytest), sys.stdout and + # sys.stderr are replaced with a custom io.TextIOWrapper. + # Therefore, we grab them dynamically within the test. + if isinstance(stream, str): + if stream == "stdout": + return sys.stdout + elif stream == "stderr": + return sys.stderr + return stream + + default_out = normalize_stream(default_out) + out = normalize_stream(out) + expected_out = normalize_stream(expected_out) logger_name = "neo4j" logger = logger_mocker(logger_name)[0] kwargs = {}