def test_streamer_stop(monkeypatch): """ Ensure that stopping stops the streamer printing to stdout """ count = 0 def infinite_readline(self): time.sleep(0.1) return b"" if count % 10 == 0 else b"_" monkeypatch.setattr(MockStream, "closed", False) monkeypatch.setattr(MockStream, "readline", infinite_readline) mockStream = MockStream() streamer = Streamer(stream=mockStream, verbose=True) assert streamer.is_monitoring() streamer.stop() assert not streamer.is_monitoring()
def test_stream_close(capsys, patchedOpenExcepRasingMockSteam): """ Tests that Streamer handles a closed stream properly """ mockStream = patchedOpenExcepRasingMockSteam streamer = Streamer(stream=mockStream, verbose=True) while streamer.is_monitoring(): pass out, err = capsys.readouterr() assert ( out == f"{streamer._messages['streamer_closed_early']}\n{streamer._messages['finished']}\n" ) assert err == ""