X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=functest_kubernetes%2Ftest_k8stest.py;h=aff0f422fe15041a9e1d97ffeff41e5596b2dd66;hb=c7522103be9e05419514c3d0adf0dbf7e6b5556f;hp=eb46ac83ca22ae17ad6fcf17159a5f7377a456da;hpb=9447a0f6fb4a7cedcfb168cf196890a452ce6a7c;p=functest-kubernetes.git diff --git a/functest_kubernetes/test_k8stest.py b/functest_kubernetes/test_k8stest.py index eb46ac83..aff0f422 100644 --- a/functest_kubernetes/test_k8stest.py +++ b/functest_kubernetes/test_k8stest.py @@ -14,10 +14,13 @@ import logging import os import unittest +import mock +from xtesting.core import testcase + from functest_kubernetes import k8stest -class K8sTests(unittest.TestCase): +class E2EUnitTesting(unittest.TestCase): # pylint: disable=missing-docstring @@ -27,22 +30,29 @@ class K8sTests(unittest.TestCase): os.environ["KUBE_MASTER_URL"] = "https://127.0.0.1:6443" os.environ["KUBERNETES_PROVIDER"] = "local" - def _test_no_env_var(self, var): - del os.environ[var] - with self.assertRaises(Exception): - k8stest.K8sTesting().check_envs() - - def test_no_deploy_scenario(self): - self._test_no_env_var("DEPLOY_SCENARIO") - - def test_no_kube_master_ip(self): - self._test_no_env_var("KUBE_MASTER_IP") - - def test_no_kube_master_url(self): - self._test_no_env_var("KUBE_MASTER_URL") - - def test_no_kubernetes_provider(self): - self._test_no_env_var("KUBERNETES_PROVIDER") + self.k8stesting = k8stest.E2ETesting() + + @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, + '_E2ETesting__logger') as mock_logger: + self.assertEqual(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') + + @mock.patch('re.search') + @mock.patch('six.moves.builtins.open', mock.mock_open()) + @mock.patch('functest_kubernetes.k8stest.os.path.isfile') + @mock.patch('functest_kubernetes.k8stest.subprocess.Popen') + def test_run(self, *args): + self.assertEqual(self.k8stesting.run(), + testcase.TestCase.EX_OK) + for loop in range(3): + args[loop].assert_called() if __name__ == "__main__":