From 62400207b65644c5238e4e2aa895d78bb844f3a0 Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 23 Aug 2012 03:20:39 +0900 Subject: base leap testcase that creates a tempdir and changes path there --- src/leap/testing/basetest.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/leap/testing/basetest.py (limited to 'src/leap/testing/basetest.py') diff --git a/src/leap/testing/basetest.py b/src/leap/testing/basetest.py new file mode 100644 index 00000000..ccf1a76f --- /dev/null +++ b/src/leap/testing/basetest.py @@ -0,0 +1,37 @@ +import os +import shutil +import tempfile + +try: + import unittest2 as unittest +except ImportError: + import unittest + + +class BaseLeapTest(unittest.TestCase): + + __name__ = "leap_test" + + @classmethod + def setUpClass(cls): + cls.old_path = os.environ['PATH'] + cls.tempdir = tempfile.mkdtemp() + bin_tdir = os.path.join( + cls.tempdir, + 'bin') + os.environ["PATH"] = bin_tdir + + @classmethod + def tearDownClass(cls): + os.environ["PATH"] = cls.old_path + shutil.rmtree(cls.tempdir) + + def setUp(self): + raise NotImplementedError("abstract base class") + + def tearDown(self): + raise NotImplementedError("abstract base class") + + +if __name__ == "__main__": + unittest.main() -- cgit v1.2.3 From 7e6ab299a8017e1ff3a63d577541ea4e6c462b44 Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 23 Aug 2012 23:26:09 +0900 Subject: add get_tempfile and comment to testing/basetest --- src/leap/testing/basetest.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/leap/testing/basetest.py') diff --git a/src/leap/testing/basetest.py b/src/leap/testing/basetest.py index ccf1a76f..1ea26363 100644 --- a/src/leap/testing/basetest.py +++ b/src/leap/testing/basetest.py @@ -26,12 +26,22 @@ class BaseLeapTest(unittest.TestCase): os.environ["PATH"] = cls.old_path shutil.rmtree(cls.tempdir) + # you have to override these methods + # this way we ensure we did not put anything + # here that you can forget to call. + def setUp(self): raise NotImplementedError("abstract base class") def tearDown(self): raise NotImplementedError("abstract base class") + # + # helper methods + # + + def get_tempfile(self, filename): + return os.path.join(self.tempdir, filename) if __name__ == "__main__": unittest.main() -- cgit v1.2.3 From c2786de7d2d09d600fa516f93cc1a1f851f0d705 Mon Sep 17 00:00:00 2001 From: kali Date: Mon, 27 Aug 2012 05:13:29 +0900 Subject: make provider-fetch tests pass test provider-definition dump functions. refactored the set-temp-to-home methods to setUpClass separate provider-fetch tests on different testcases (so they actually call to requests). --- src/leap/testing/basetest.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/leap/testing/basetest.py') diff --git a/src/leap/testing/basetest.py b/src/leap/testing/basetest.py index a55b0525..8d9264f1 100644 --- a/src/leap/testing/basetest.py +++ b/src/leap/testing/basetest.py @@ -20,15 +20,19 @@ class BaseLeapTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.old_path = os.environ['PATH'] - cls.tempdir = tempfile.mkdtemp() + cls.old_home = os.environ['HOME'] + cls.tempdir = tempfile.mkdtemp(prefix="leap_tests-") + cls.home = cls.tempdir bin_tdir = os.path.join( cls.tempdir, 'bin') os.environ["PATH"] = bin_tdir + os.environ["HOME"] = cls.tempdir @classmethod def tearDownClass(cls): os.environ["PATH"] = cls.old_path + os.environ["HOME"] = cls.old_home shutil.rmtree(cls.tempdir) # you have to override these methods -- cgit v1.2.3 From 10292cac27bc2f10e2b5768c84091a73105bc495 Mon Sep 17 00:00:00 2001 From: kali Date: Mon, 27 Aug 2012 06:37:10 +0900 Subject: make eipconductor test use BaseLeapTest --- src/leap/testing/basetest.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/leap/testing/basetest.py') diff --git a/src/leap/testing/basetest.py b/src/leap/testing/basetest.py index 8d9264f1..881f56c9 100644 --- a/src/leap/testing/basetest.py +++ b/src/leap/testing/basetest.py @@ -9,6 +9,7 @@ except ImportError: import unittest from leap.base.config import get_username, get_groupname +from leap.util.fileutil import mkdir_p, check_and_fix_urw_only _system = platform.system() @@ -64,3 +65,19 @@ class BaseLeapTest(unittest.TestCase): "This test is not implemented " "for the running platform: %s" % _system) + + def touch(self, filepath): + folder, filename = os.path.split(filepath) + if not os.path.isdir(folder): + mkdir_p(folder) + # XXX should move to test_basetest + self.assertTrue(os.path.isdir(folder)) + + with open(filepath, 'w') as fp: + fp.write(' ') + + # XXX should move to test_basetest + self.assertTrue(os.path.isfile(filepath)) + + def chmod600(self, filepath): + check_and_fix_urw_only(filepath) -- cgit v1.2.3 From 275c7c20ec08283b50dce0aa753f48ada2ffe2c7 Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 6 Sep 2012 04:17:00 +0900 Subject: safety check in base test removal --- src/leap/testing/basetest.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/leap/testing/basetest.py') diff --git a/src/leap/testing/basetest.py b/src/leap/testing/basetest.py index 881f56c9..3186e1eb 100644 --- a/src/leap/testing/basetest.py +++ b/src/leap/testing/basetest.py @@ -34,6 +34,8 @@ class BaseLeapTest(unittest.TestCase): def tearDownClass(cls): os.environ["PATH"] = cls.old_path os.environ["HOME"] = cls.old_home + # safety check + assert cls.tempdir.startswith('/tmp/leap_tests-') shutil.rmtree(cls.tempdir) # you have to override these methods -- cgit v1.2.3