@@ -207,20 +207,35 @@ def test_watcher_level_multiple_watchers(
207207
208208custom_log_out = io .StringIO ()
209209
210+
210211@pytest .mark .parametrize (
211212 ("default_out" , "out" , "expected_out" ),
212213 (
213- (None , None , sys . stderr ),
214- (sys . stdout , None , sys . stdout ),
215- (sys . stdout , sys . stderr , sys . stderr ),
216- (sys . stderr , sys . stdout , sys . stdout ),
214+ (None , None , " stderr" ),
215+ (" stdout" , None , " stdout" ),
216+ (" stdout" , " stderr" , " stderr" ),
217+ (" stderr" , " stdout" , " stdout" ),
217218 (custom_log_out , None , custom_log_out ),
218219 (None , custom_log_out , custom_log_out ),
219220 )
220221)
221222def test_watcher_out (
222223 logger_mocker , default_out , out , expected_out
223224) -> None :
225+ def normalize_stream (stream ):
226+ # For some reason (probably a change in pytest), sys.stdout and
227+ # sys.stderr are replaced with a custom io.TextIOWrapper.
228+ # Therefore, we grab them dynamically within the test.
229+ if isinstance (stream , str ):
230+ if stream == "stdout" :
231+ return sys .stdout
232+ elif stream == "stderr" :
233+ return sys .stderr
234+ return stream
235+
236+ default_out = normalize_stream (default_out )
237+ out = normalize_stream (out )
238+ expected_out = normalize_stream (expected_out )
224239 logger_name = "neo4j"
225240 logger = logger_mocker (logger_name )[0 ]
226241 kwargs = {}
0 commit comments