test_call_helpers: create unittests for subprocess_run
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Fri, 21 Dec 2018 15:25:17 +0000 (16:25 +0100)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Thu, 7 Feb 2019 15:50:39 +0000 (16:50 +0100)
Check that subprocess_run is compatible with python3.5 subprocess.run

test/test_call_helpers.py

index 951b3ea..e012241 100644 (file)
@@ -76,6 +76,28 @@ class CallHelperTester(unittest.TestCase):
         self.assertEqual(err_data[0], "ls: invalid option -- 'e'")
         self.assertEqual(err_data[1], "Try 'ls --help' for more information.")
 
+    def test_subprocess_run_ls(self):
+        """Test subprocess_run with ls -a /."""
+        result = call_helpers.subprocess_run('ls -a /')
+        self.assertEqual(result.returncode, 0)
+        self.assertEqual(result.stderr, b'')
+        self.assertEqual(type(result.stdout), bytes)
+        self.assertTrue(b'\n' in result.stdout)
+
+    def test_subprocess_run_raise(self):
+        """Test subprocess_run with ls -e /."""
+        self.assertRaises(call_helpers.CalledProcessError,
+                          call_helpers.subprocess_run, 'ls -e')
+
+    def test_subprocess_run_error(self):
+        """Test subprocess_run without error check."""
+        result = call_helpers.subprocess_run('ls -e', check=False)
+        self.assertEqual(result.returncode, 2)
+        self.assertEqual(result.stdout, b'')
+        self.assertEqual(result.stderr,
+                         b"ls: invalid option -- 'e'\n"
+                         b"Try 'ls --help' for more information.\n")
+
 
 if __name__ == '__main__':
     unittest.main()