Add %env section support
[tools/mic.git] / tests / test_runner.py
1 #!/usr/bin/python
2
3 import os
4 import sys
5 import StringIO
6 import unittest
7 from mic.utils import runner
8
9 def suite():
10     return unittest.makeSuite(RunnerTest)
11
12 class RunnerTest(unittest.TestCase):
13
14     def setUp(self):
15         self.stdout = sys.stdout
16         self.stderr = sys.stderr
17         sys.stdout = StringIO.StringIO()
18         sys.stderr = StringIO.StringIO()
19
20     def tearDown(self):
21         sys.stdout = self.stdout
22         sys.stderr = self.stderr
23
24     def testRuntoolCatch0(self):
25         (rc, out) = runner.runtool("echo hello", catch=0)
26         self.assertEqual(0, rc)
27         self.assertEqual('', out)
28         (rc, out) = runner.runtool("echo hello >&2", catch=0)
29         self.assertEqual(0, rc)
30         self.assertEqual('', out)
31
32     def testRuntoolCatch1(self):
33         (rc, out) = runner.runtool("echo hello", catch=1)
34         self.assertEqual(0, rc)
35         self.assertEqual("hello\n", out)
36
37     def testRuntoolCatch2(self):
38         (rc, out) = runner.runtool("echo hello >&2", catch=2)
39         self.assertEqual(0, rc)
40         self.assertEqual("hello\n", out)
41
42     def testRuntoolCatch3(self):
43         (rc, out) = runner.runtool("echo hello", catch=3)
44         self.assertEqual(0, rc)
45         self.assertEqual("hello\n", out)
46         (rc, out) = runner.runtool("echo hello >&2", catch=2)
47         self.assertEqual(0, rc)
48         self.assertEqual("hello\n", out)
49
50 if __name__ == "__main__":
51     unittest.main()
52