summaryrefslogtreecommitdiff
path: root/debian/python-leap.common/usr/share/pyshared/leap/common/testing
diff options
context:
space:
mode:
Diffstat (limited to 'debian/python-leap.common/usr/share/pyshared/leap/common/testing')
-rw-r--r--debian/python-leap.common/usr/share/pyshared/leap/common/testing/__init__.py0
-rw-r--r--debian/python-leap.common/usr/share/pyshared/leap/common/testing/basetest.py140
-rw-r--r--debian/python-leap.common/usr/share/pyshared/leap/common/testing/https_server.py87
-rw-r--r--debian/python-leap.common/usr/share/pyshared/leap/common/testing/test_basetest.py140
4 files changed, 0 insertions, 367 deletions
diff --git a/debian/python-leap.common/usr/share/pyshared/leap/common/testing/__init__.py b/debian/python-leap.common/usr/share/pyshared/leap/common/testing/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/debian/python-leap.common/usr/share/pyshared/leap/common/testing/__init__.py
+++ /dev/null
diff --git a/debian/python-leap.common/usr/share/pyshared/leap/common/testing/basetest.py b/debian/python-leap.common/usr/share/pyshared/leap/common/testing/basetest.py
deleted file mode 100644
index 65e23a9..0000000
--- a/debian/python-leap.common/usr/share/pyshared/leap/common/testing/basetest.py
+++ /dev/null
@@ -1,140 +0,0 @@
-# -*- coding: utf-8 -*-
-# basetest.py
-# Copyright (C) 2013 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Common testing facilities
-"""
-import os
-import platform
-import shutil
-import tempfile
-
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
-
-from leap.common.check import leap_assert
-from leap.common.files import mkdir_p, check_and_fix_urw_only
-
-
-class BaseLeapTest(unittest.TestCase):
- """
- Base Leap TestCase
- """
- __name__ = "leap_test"
- _system = platform.system()
-
- @classmethod
- def setUpClass(cls):
- """
- Sets up common facilities for testing this TestCase:
- - custom PATH and HOME environmental variables
- - creates a temporal folder to which those point.
- It saves the old path and home vars so they can be restored later.
- """
- cls.old_path = os.environ['PATH']
- 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):
- """
- Cleanup common facilities used for testing this TestCase:
- - restores the default PATH and HOME variables
- - removes the temporal folder
- """
- os.environ["PATH"] = cls.old_path
- os.environ["HOME"] = cls.old_home
- # safety check! please do not wipe my home...
- # XXX needs to adapt to non-linuces
- leap_assert(
- cls.tempdir.startswith('/tmp/leap_tests-'),
- "beware! tried to remove a dir which does not "
- "live in temporal folder!")
- 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):
- """not implemented"""
- raise NotImplementedError("abstract base class")
-
- def tearDown(self):
- """not implemented"""
- raise NotImplementedError("abstract base class")
-
- #
- # helper methods
- #
-
- def _missing_test_for_plat(self, do_raise=False):
- """
- Raises NotImplementedError for this platform
- if do_raise is True
-
- @param do_raise: flag to actually raise exception
- @type do_raise: bool
- """
- if do_raise:
- raise NotImplementedError(
- "This test is not implemented "
- "for the running platform: %s" %
- self._system)
-
- def get_tempfile(self, filename):
- """
- Returns the path of a given filename
- prepending the temporal dir associated with this
- TestCase
-
- @param filename: the filename
- @type filename: str
- """
- return os.path.join(self.tempdir, filename)
-
- def touch(self, filepath):
- """
- Touches a filepath, creating folders along
- the way if needed.
-
- @param filepath: path to be touched
- @type filepath: str
- """
- folder, filename = os.path.split(filepath)
- if not os.path.isdir(folder):
- mkdir_p(folder)
- self.assertTrue(os.path.isdir(folder))
- with open(filepath, 'w') as fp:
- fp.write(' ')
- self.assertTrue(os.path.isfile(filepath))
-
- def chmod600(self, filepath):
- """
- Chmods 600 a file
-
- @param filepath: filepath to be chmodded
- @type filepath: str
- """
- check_and_fix_urw_only(filepath)
diff --git a/debian/python-leap.common/usr/share/pyshared/leap/common/testing/https_server.py b/debian/python-leap.common/usr/share/pyshared/leap/common/testing/https_server.py
deleted file mode 100644
index 08d5089..0000000
--- a/debian/python-leap.common/usr/share/pyshared/leap/common/testing/https_server.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# -*- coding: utf-8 -*-
-# leap.common.testing.https_server.py
-# Copyright (C) 2013 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-A simple HTTPS server to be used in tests
-"""
-from BaseHTTPServer import HTTPServer
-import os
-import ssl
-import SocketServer
-import threading
-import unittest
-
-_where = os.path.split(__file__)[0]
-
-
-def where(filename):
- return os.path.join(_where, filename)
-
-
-class HTTPSServer(HTTPServer):
- def server_bind(self):
- SocketServer.TCPServer.server_bind(self)
- self.socket = ssl.wrap_socket(
- self.socket, server_side=True,
- certfile=where("leaptestscert.pem"),
- keyfile=where("leaptestskey.pem"),
- ca_certs=where("cacert.pem"),
- ssl_version=ssl.PROTOCOL_SSLv23)
-
-
-class TestServerThread(threading.Thread):
- def __init__(self, test_object, request_handler):
- threading.Thread.__init__(self)
- self.request_handler = request_handler
- self.test_object = test_object
-
- def run(self):
- self.server = HTTPSServer(('localhost', 0), self.request_handler)
- host, port = self.server.socket.getsockname()
- self.test_object.HOST, self.test_object.PORT = host, port
- self.test_object.server_started.set()
- self.test_object = None
- try:
- self.server.serve_forever(0.05)
- finally:
- self.server.server_close()
-
- def stop(self):
- self.server.shutdown()
-
-
-class BaseHTTPSServerTestCase(unittest.TestCase):
- """
- derived classes need to implement a request_handler
- """
- def setUp(self):
- self.server_started = threading.Event()
- self.thread = TestServerThread(self, self.request_handler)
- self.thread.start()
- self.server_started.wait()
-
- def tearDown(self):
- self.thread.stop()
-
- def get_server(self):
- host, port = self.HOST, self.PORT
- if host == "127.0.0.1":
- host = "localhost"
- return "%s:%s" % (host, port)
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/debian/python-leap.common/usr/share/pyshared/leap/common/testing/test_basetest.py b/debian/python-leap.common/usr/share/pyshared/leap/common/testing/test_basetest.py
deleted file mode 100644
index 220e28d..0000000
--- a/debian/python-leap.common/usr/share/pyshared/leap/common/testing/test_basetest.py
+++ /dev/null
@@ -1,140 +0,0 @@
-# -*- coding: utf-8 -*-
-# test_basetest.py
-# Copyright (C) 2013 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Unittests for BaseLeapTest ...becase it's oh so meta
-"""
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
-
-import os
-import StringIO
-
-from leap.common.testing.basetest import BaseLeapTest
-
-_tempdir = None # global for tempdir checking
-
-
-class _TestCaseRunner(object):
- """
- TestCaseRunner used to run BaseLeapTest
- """
- def run_testcase(self, testcase=None):
- """
- Runs a given TestCase
-
- @param testcase: the testcase
- @type testcase: unittest.TestCase
- """
- if not testcase:
- return None
- loader = unittest.TestLoader()
- suite = loader.loadTestsFromTestCase(testcase)
-
- # Create runner, and run testcase
- io = StringIO.StringIO()
- runner = unittest.TextTestRunner(stream=io)
- results = runner.run(suite)
- return results
-
-
-class TestAbstractBaseLeapTest(unittest.TestCase, _TestCaseRunner):
- """
- TestCase for BaseLeapTest abs
- """
- def test_abstract_base_class(self):
- """
- Test errors raised when setup/teardown not overloaded
- """
- class _BaseTest(BaseLeapTest):
- def test_dummy_method(self):
- pass
-
- def test_tautology(self):
- assert True
-
- results = self.run_testcase(_BaseTest)
-
- # should be 2 errors: NotImplemented
- # raised for setUp/tearDown
- self.assertEquals(results.testsRun, 2)
- self.assertEquals(len(results.failures), 0)
- self.assertEquals(len(results.errors), 2)
-
-
-class TestInitBaseLeapTest(BaseLeapTest):
- """
- TestCase for testing initialization of BaseLeapTest
- """
-
- def setUp(self):
- """nuke it"""
- pass
-
- def tearDown(self):
- """nuke it"""
- pass
-
- def test_path_is_changed(self):
- """tests whether we have changed the PATH env var"""
- os_path = os.environ['PATH']
- self.assertTrue(os_path.startswith(self.tempdir))
-
- def test_old_path_is_saved(self):
- """tests whether we restore the PATH env var"""
- self.assertTrue(len(self.old_path) > 1)
-
-
-class TestCleanedBaseLeapTest(unittest.TestCase, _TestCaseRunner):
- """
- TestCase for testing tempdir creation and cleanup
- """
-
- def test_tempdir_is_cleaned_after_tests(self):
- """
- test if a TestCase derived from BaseLeapTest creates and cleans the
- temporal dir
- """
- class _BaseTest(BaseLeapTest):
- def setUp(self):
- """set global _tempdir to this instance tempdir"""
- global _tempdir
- _tempdir = self.tempdir
-
- def tearDown(self):
- """nothing"""
- pass
-
- def test_tempdir_created(self):
- """test if tempdir was created"""
- self.assertTrue(os.path.isdir(self.tempdir))
-
- def test_tempdir_created_on_setupclass(self):
- """test if tempdir is the one created by setupclass"""
- self.assertEqual(_tempdir, self.tempdir)
-
- results = self.run_testcase(_BaseTest)
- self.assertEquals(results.testsRun, 2)
- self.assertEquals(len(results.failures), 0)
- self.assertEquals(len(results.errors), 0)
-
- # did we cleaned the tempdir?
- self.assertFalse(os.path.isdir(_tempdir))
-
-if __name__ == "__main__":
- unittest.main()