diff --git a/tests/lscolors_test.py b/tests/lscolors_test.py index 0b52ea3..53df230 100755 --- a/tests/lscolors_test.py +++ b/tests/lscolors_test.py @@ -245,9 +245,8 @@ def test_against_ls(root_path, environment): process = subprocess.run( ["ls", "--color=always", "-R", root_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environment) - stdout, stderr = process.communicate() color_codes = lscolors.get_color_codes(environment) - for line in stdout.splitlines(): + for line in process.stdout.splitlines(): line = line.strip() if line == "": continue diff --git a/vigil/tools.py b/vigil/tools.py index 7fc45c8..55cb511 100644 --- a/vigil/tools.py +++ b/vigil/tools.py @@ -109,14 +109,15 @@ def _fix_input(input_): def _do_command(command, timeout=None, **kwargs): stdout, stderr = "", "" with contextlib.suppress(subprocess.CalledProcessError): - process = subprocess.run(command, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, **kwargs) try: - stdout, stderr = process.communicate(timeout=timeout) + process = subprocess.run(command, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, timeout=timeout, + **kwargs) except subprocess.TimeoutExpired: process.kill() raise - return _fix_input(stdout), _fix_input(stderr), process.returncode + return (_fix_input(process.stdout), _fix_input(process.stderr), + process.returncode) def _run_command(command, success_status=None, error_status=None): @@ -126,8 +127,7 @@ def _run_command(command, success_status=None, error_status=None): try: process = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - stdout, stderr = process.communicate() - output = stdout + stderr + output = process.stdout + process.stderr except subprocess.CalledProcessError: status = error_status if process.returncode != 0: