add assert statements following .communicate() to help type checkers
After calling .communicate() on an asyncio.subprocess.Process object, the attribute returncode gets set to a non-None value. Type checkers are not able to figure this out. Fixed by adding an assert to help type checkers out. Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
This commit is contained in:
parent
f0ea1d16c2
commit
dd788f9eee
|
@ -78,6 +78,8 @@ class LoggedCommandRunner:
|
||||||
async def wait(self, proc: asyncio.subprocess.Process) \
|
async def wait(self, proc: asyncio.subprocess.Process) \
|
||||||
-> subprocess.CompletedProcess:
|
-> subprocess.CompletedProcess:
|
||||||
stdout, stderr = await proc.communicate()
|
stdout, stderr = await proc.communicate()
|
||||||
|
# .communicate() forces returncode to be set to a value
|
||||||
|
assert(proc.returncode is not None)
|
||||||
if proc.returncode != 0:
|
if proc.returncode != 0:
|
||||||
raise subprocess.CalledProcessError(proc.returncode, proc.args)
|
raise subprocess.CalledProcessError(proc.returncode, proc.args)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -84,6 +84,8 @@ async def arun_command(cmd: List[str], *,
|
||||||
if stderr is not None:
|
if stderr is not None:
|
||||||
stderr = stderr.decode(encoding)
|
stderr = stderr.decode(encoding)
|
||||||
log.debug("arun_command %s exited with code %s", cmd, proc.returncode)
|
log.debug("arun_command %s exited with code %s", cmd, proc.returncode)
|
||||||
|
# .communicate() forces returncode to be set to a value
|
||||||
|
assert(proc.returncode is not None)
|
||||||
if check and proc.returncode != 0:
|
if check and proc.returncode != 0:
|
||||||
raise subprocess.CalledProcessError(proc.returncode, cmd)
|
raise subprocess.CalledProcessError(proc.returncode, cmd)
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue