tests: use dup-ed stdin in wait_on_fail

transport.close() (necessary to detach reader from the loop) will close
the FD. In case of stdin, it will prevent another call to this waiting
function. Use dup(2) to register cloned FD, which is safe to close
without side effects.
This commit is contained in:
Marek Marczykowski-Górecki 2020-11-13 03:21:37 +01:00
parent 6db24d3eaf
commit 79fb0cade1
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -249,7 +249,7 @@ def wait_on_fail(func):
transport, protocol = self.loop.run_until_complete(
self.loop.connect_read_pipe(
lambda: asyncio.StreamReaderProtocol(reader),
sys.stdin))
os.fdopen(os.dup(sys.stdin.fileno()))))
self.loop.run_until_complete(reader.readline())
transport.close()
raise