From 63d5f4591d8ac0cc110a98b1d7316e07ff80ec96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ma=C5=9Blanka?= <piotr.maslanka@henrietta.com.pl> Date: Wed, 29 Apr 2020 16:21:29 +0200 Subject: [PATCH] fix test --- satella/processes.py | 9 ++++++++- tests/test_processes.py | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/satella/processes.py b/satella/processes.py index e2d872ca..cd9a431a 100644 --- a/satella/processes.py +++ b/satella/processes.py @@ -1,9 +1,12 @@ import subprocess import typing as tp import threading +import logging from .exceptions import ProcessFailed +logger = logging.getLogger(__name__) + def read_nowait(process: subprocess.Popen, output_list: tp.List[str]): try: @@ -31,20 +34,24 @@ def call_and_return_stdout(args: tp.Union[str, tp.List[str]], """ if isinstance(args, str): args = args.split(' ') - + logger.warning('Modifying kwargs') kwargs['stdout'] = subprocess.PIPE stdout_list = [] + logger.warning('Starting popen') proc = subprocess.Popen(args, **kwargs) reader_thread = threading.Thread(target=read_nowait, args=(proc, stdout_list), daemon=True) + logger.warning('Starting rt') reader_thread.start() + logger.warning('Waiting for termination') try: proc.wait(timeout=timeout) except subprocess.TimeoutExpired: proc.kill() proc.wait() + logger.warning('Terminated') if proc.returncode != expected_return_code: raise ProcessFailed(proc.returncode) diff --git a/tests/test_processes.py b/tests/test_processes.py index 13dac48d..0c9d799f 100644 --- a/tests/test_processes.py +++ b/tests/test_processes.py @@ -6,10 +6,10 @@ from satella.processes import call_and_return_stdout class TestProcesses(unittest.TestCase): @unittest.skipIf('win' in sys.platform, 'Running on Windows') def test_return_stdout(self): - output = call_and_return_stdout('cat /proc/meminfo', shell=True) + output = call_and_return_stdout('cat /proc/meminfo', shell=True, timeout=3) self.assertIn(b'MemTotal', output) @unittest.skipIf('win' in sys.platform or sys.version_info.minor < 6, 'Running on Windows or Python 3.5') def test_return_encoding(self): - output = call_and_return_stdout('cat /proc/meminfo', shell=True, encoding='utf8') + output = call_and_return_stdout('cat /proc/meminfo', shell=True, encoding='utf8', timeout=3) self.assertIn('MemTotal', output) -- GitLab