import unittest import util.cli class cli(unittest.TestCase): def setUp(self): self.nonExistentCommand = 'i-do-not-exist' self.validCommand = 'echo test' self.validCommandOutput = 'test\n' self.utfCommand = 'echo ÖPmŧß' self.utfCommandOutput = 'ÖPmŧß\n' def test_valid_command(self): rv = util.cli.execute(self.validCommand) self.assertEqual(self.validCommandOutput, rv) def test_utf_command(self): rv = util.cli.execute(self.utfCommand) self.assertEqual(self.utfCommandOutput, rv) def test_invalid_command(self): with self.assertRaises(RuntimeError): util.cli.execute(self.nonExistentCommand) def test_command_exit_code(self): with self.assertRaises(RuntimeError): util.cli.execute('cat {}'.format(self.nonExistentCommand)) def test_command_exit_code_no_error(self): try: util.cli.execute('cat {}'.format(self.nonExistentCommand), ignore_errors=True) except Exception: self.fail('exception was thrown') def test_async(self): rv = util.cli.execute(self.validCommand, wait=False) self.assertEqual('', rv) # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4