3 # © Copyright 2021-2022, Scott Gasch
5 """exec_utils unittest."""
10 from pyutils import exec_utils, unittest_utils
13 class TestExecUtils(unittest.TestCase):
14 def test_cmd_showing_output(self):
15 with unittest_utils.RecordStdout() as record:
16 ret = exec_utils.cmd_showing_output('/usr/bin/printf hello')
17 self.assertEqual('hello', record().readline())
18 self.assertEqual(0, ret)
21 def test_cmd_showing_output_with_timeout(self):
23 exec_utils.cmd_showing_output('sleep 10', timeout_seconds=0.1)
24 except subprocess.TimeoutExpired:
27 self.fail('Expected a TimeoutException, didn\'t see one.')
29 def test_cmd_showing_output_fails(self):
30 with unittest_utils.RecordStdout() as record:
31 ret = exec_utils.cmd_showing_output('/usr/bin/printf hello && false')
32 self.assertEqual('hello', record().readline())
33 self.assertEqual(1, ret)
36 def test_cmd_in_background(self):
37 p = exec_utils.cmd_in_background('sleep 100')
38 self.assertEqual(None, p.poll())
41 if __name__ == '__main__':