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