diff options
-rw-r--r-- | functest_kubernetes/k8stest.py | 2 | ||||
-rw-r--r-- | functest_kubernetes/test_k8stest.py | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/functest_kubernetes/k8stest.py b/functest_kubernetes/k8stest.py index d851d9ef..7d9400ed 100644 --- a/functest_kubernetes/k8stest.py +++ b/functest_kubernetes/k8stest.py @@ -90,7 +90,7 @@ class K8sTesting(testcase.TestCase): if not os.path.isfile(self.config): self.__logger.error( - "Cannot run k8s testcases. Config file not found ") + "Cannot run k8s testcases. Config file not found") return self.EX_RUN_ERROR self.start_time = time.time() diff --git a/functest_kubernetes/test_k8stest.py b/functest_kubernetes/test_k8stest.py index eb46ac83..05f40e12 100644 --- a/functest_kubernetes/test_k8stest.py +++ b/functest_kubernetes/test_k8stest.py @@ -14,6 +14,9 @@ import logging import os import unittest +import mock +from xtesting.core import testcase + from functest_kubernetes import k8stest @@ -27,6 +30,8 @@ class K8sTests(unittest.TestCase): os.environ["KUBE_MASTER_URL"] = "https://127.0.0.1:6443" os.environ["KUBERNETES_PROVIDER"] = "local" + self.k8stesting = k8stest.K8sTesting() + def _test_no_env_var(self, var): del os.environ[var] with self.assertRaises(Exception): @@ -44,6 +49,31 @@ class K8sTests(unittest.TestCase): def test_no_kubernetes_provider(self): self._test_no_env_var("KUBERNETES_PROVIDER") + @mock.patch('functest_kubernetes.k8stest.os.path.isfile', + return_value=False) + def test_run_missing_config_file(self, mock_func): + self.k8stesting.config = 'not_file' + with mock.patch.object(self.k8stesting, + '_K8sTesting__logger') as mock_logger: + self.assertEquals(self.k8stesting.run(), + testcase.TestCase.EX_RUN_ERROR) + mock_logger.error.assert_called_with( + "Cannot run k8s testcases. Config file not found") + mock_func.assert_called_with('not_file') + + def test_run_kubetest_cmd_none(self): + self.k8stesting.cmd = None + with self.assertRaises(TypeError): + self.k8stesting.run_kubetest() + + @mock.patch('functest_kubernetes.k8stest.os.path.isfile') + @mock.patch('functest_kubernetes.k8stest.subprocess.Popen') + def test_run(self, mock_open, mock_isfile): + self.assertEquals(self.k8stesting.run(), + testcase.TestCase.EX_OK) + mock_isfile.assert_called() + mock_open.assert_called() + if __name__ == "__main__": logging.disable(logging.CRITICAL) |