summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unittest/chroot_fixtures/minchroot.tar.gzbin0 -> 1438891 bytes
-rw-r--r--tests/unittest/test_chroot.py42
-rw-r--r--tests/unittest/test_msger.py81
-rw-r--r--tests/unittest/test_runner.py52
4 files changed, 175 insertions, 0 deletions
diff --git a/tests/unittest/chroot_fixtures/minchroot.tar.gz b/tests/unittest/chroot_fixtures/minchroot.tar.gz
new file mode 100644
index 0000000..bccd3f7
--- /dev/null
+++ b/tests/unittest/chroot_fixtures/minchroot.tar.gz
Binary files differ
diff --git a/tests/unittest/test_chroot.py b/tests/unittest/test_chroot.py
new file mode 100644
index 0000000..546e3ae
--- /dev/null
+++ b/tests/unittest/test_chroot.py
@@ -0,0 +1,42 @@
+#!/usr/bin/python
+
+import os
+import sys
+import shutil
+import tarfile
+import StringIO
+import unittest
+from mic import chroot
+
+TEST_CHROOT_LOC = os.path.join(os.getcwd(), 'chroot_fixtures')
+TEST_CHROOT_TAR = os.path.join(TEST_CHROOT_LOC, 'minchroot.tar.gz')
+TEST_CHROOT_DIR = os.path.join(TEST_CHROOT_LOC, 'minchroot')
+
+def suite():
+ return unittest.makeSuite(ChrootTest)
+
+class ChrootTest(unittest.TestCase):
+
+ def setUp(self):
+ tar = tarfile.open(TEST_CHROOT_TAR, "r:gz")
+ tar.extractall(path=TEST_CHROOT_LOC)
+ self.chrootdir = TEST_CHROOT_DIR
+ self.stdout = sys.stdout
+ self.stderr = sys.stderr
+ sys.stdout = StringIO.StringIO()
+ sys.stderr = StringIO.StringIO()
+
+ def tearDown(self):
+ sys.stdout = self.stdout
+ sys.stderr = self.stderr
+ shutil.rmtree(TEST_CHROOT_DIR, ignore_errors=True)
+
+ def testChroot(self):
+ try:
+ chroot.chroot(TEST_CHROOT_DIR, None, 'exit')
+ except Exception, e:
+ raise self.failureException(e)
+
+if __name__ == "__main__":
+ unittest.main()
+
diff --git a/tests/unittest/test_msger.py b/tests/unittest/test_msger.py
new file mode 100644
index 0000000..c419a15
--- /dev/null
+++ b/tests/unittest/test_msger.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+
+import os
+import sys
+import StringIO
+import unittest
+from mic import msger
+
+def suite():
+ return unittest.makeSuite(MsgerTest)
+
+class MsgerTest(unittest.TestCase):
+
+ def setUp(self):
+ self.stdout = sys.stdout
+ self.stderr = sys.stderr
+ sys.stdout = StringIO.StringIO()
+ sys.stderr = StringIO.StringIO()
+ self.loglevel = msger.LOG_LEVEL
+
+ def tearDown(self):
+ msger.LOG_LEVEL = self.loglevel
+ sys.stdout = self.stdout
+ sys.stderr = self.stderr
+
+ def testRaw(self):
+ excepted = "hello\n"
+ msger.raw("hello")
+ self.assertEqual(excepted, sys.stdout.getvalue())
+
+ def testInfo(self):
+ excepted = "Info: hello\n"
+ msger.info("hello")
+ self.assertEqual(excepted, sys.stdout.getvalue())
+
+ def testWarning(self):
+ excepted = "Warning: hello\n"
+ msger.warning("hello")
+ self.assertEqual(excepted, sys.stderr.getvalue())
+
+ def testVerbose(self):
+ excepted = "Verbose: hello\n"
+ msger.verbose("hello")
+ self.assertEqual("", sys.stdout.getvalue())
+ msger.set_loglevel("verbose")
+ msger.verbose("hello")
+ self.assertEqual(excepted, sys.stdout.getvalue())
+
+ def testDebug(self):
+ excepted = "Debug: hello\n"
+ msger.debug("hello")
+ self.assertEqual("", sys.stdout.getvalue())
+ msger.set_loglevel("debug")
+ msger.debug("hello")
+ self.assertEqual(excepted, sys.stderr.getvalue())
+
+ def testLogstderr(self):
+ excepted = "hello\n"
+ cwd = os.getcwd()
+ msger.enable_logstderr(cwd + "/__tmp_err.log")
+ print >>sys.stderr, "hello"
+ msger.disable_logstderr()
+ self.assertEqual(excepted, sys.stderr.getvalue())
+
+ def testLoglevel(self):
+ # test default value
+ self.assertEqual("normal", msger.get_loglevel())
+ # test no effect value
+ msger.set_loglevel("zzzzzz")
+ self.assertEqual("normal", msger.get_loglevel())
+ # test effect value
+ msger.set_loglevel("verbose")
+ self.assertEqual("verbose", msger.get_loglevel())
+ msger.set_loglevel("debug")
+ self.assertEqual("debug", msger.get_loglevel())
+ msger.set_loglevel("quiet")
+ self.assertEqual("quiet", msger.get_loglevel())
+
+if __name__ == "__main__":
+ unittest.main()
+
diff --git a/tests/unittest/test_runner.py b/tests/unittest/test_runner.py
new file mode 100644
index 0000000..5ed26cd
--- /dev/null
+++ b/tests/unittest/test_runner.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python
+
+import os
+import sys
+import StringIO
+import unittest
+from mic.utils import runner
+
+def suite():
+ return unittest.makeSuite(RunnerTest)
+
+class RunnerTest(unittest.TestCase):
+
+ def setUp(self):
+ self.stdout = sys.stdout
+ self.stderr = sys.stderr
+ sys.stdout = StringIO.StringIO()
+ sys.stderr = StringIO.StringIO()
+
+ def tearDown(self):
+ sys.stdout = self.stdout
+ sys.stderr = self.stderr
+
+ def testRuntoolCatch0(self):
+ (rc, out) = runner.runtool("echo hello", catch=0)
+ self.assertEqual(0, rc)
+ self.assertEqual('', out)
+ (rc, out) = runner.runtool("echo hello >&2", catch=0)
+ self.assertEqual(0, rc)
+ self.assertEqual('', out)
+
+ def testRuntoolCatch1(self):
+ (rc, out) = runner.runtool("echo hello", catch=1)
+ self.assertEqual(0, rc)
+ self.assertEqual("hello\n", out)
+
+ def testRuntoolCatch2(self):
+ (rc, out) = runner.runtool("echo hello >&2", catch=2)
+ self.assertEqual(0, rc)
+ self.assertEqual("hello\n", out)
+
+ def testRuntoolCatch3(self):
+ (rc, out) = runner.runtool("echo hello", catch=3)
+ self.assertEqual(0, rc)
+ self.assertEqual("hello\n", out)
+ (rc, out) = runner.runtool("echo hello >&2", catch=2)
+ self.assertEqual(0, rc)
+ self.assertEqual("hello\n", out)
+
+if __name__ == "__main__":
+ unittest.main()
+