Add unit tests for functest-kubernetes 37/52337/3
authordjkonro <konraddjimeli@gmail.com>
Mon, 19 Feb 2018 23:42:51 +0000 (00:42 +0100)
committerCédric Ollivier <cedric.ollivier@orange.com>
Thu, 1 Mar 2018 02:36:57 +0000 (03:36 +0100)
Change-Id: I4c9b5a56e891f4a63c86e0d7c4dd0d02de677610
Signed-off-by: djkonro <konraddjimeli@gmail.com>
.gitignore
functest_kubernetes/test_k8stest.py [new file with mode: 0644]
tox.ini
upper-constraints.txt [new file with mode: 0644]

index 8c7c1d0..004ebb7 100644 (file)
@@ -15,5 +15,6 @@ nosetests.xml
 functest-kubernetes.egg-info
 *venv
 .tox
+*.egg-info
 *.out
 *.pdf
diff --git a/functest_kubernetes/test_k8stest.py b/functest_kubernetes/test_k8stest.py
new file mode 100644 (file)
index 0000000..02c8f7e
--- /dev/null
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2018 All rights reserved
+# This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+"""Define the classes required to fully cover k8s."""
+
+import logging
+import os
+import unittest
+
+from functest_kubernetes import k8stest
+
+
+class K8sTests(unittest.TestCase):
+
+    # pylint: disable=missing-docstring
+
+    def setUp(self):
+        os.environ["DEPLOY_SCENARIO"] = "k8-test"
+        os.environ["KUBECONFIG"] = "/home/config"
+        os.environ["KUBE_MASTER_IP"] = "127.0.0.1"
+        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_kubeconfig(self):
+        self._test_no_env_var("KUBECONFIG")
+
+    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")
+
+
+if __name__ == "__main__":
+    logging.disable(logging.CRITICAL)
+    unittest.main(verbosity=2)
diff --git a/tox.ini b/tox.ini
index 34f8a75..6b90f06 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -1,9 +1,12 @@
 [tox]
-envlist = pep8,pylint,yamllint,py27,py35
+envlist = pep8,pylint,yamllint,py27,py35,cover
 
 [testenv]
 usedevelop = True
 deps =
+  -chttps://git.opnfv.org/functest/plain/upper-constraints.txt
+  -c{toxinidir}/upper-constraints.txt
+  -r{toxinidir}/requirements.txt
   -r{toxinidir}/test-requirements.txt
 install_command = pip install {opts} {packages}
 
@@ -25,3 +28,8 @@ files =
   docker
 commands =
   yamllint {[testenv:yamllint]files}
+
+[testenv:cover]
+basepython = python2.7
+commands = nosetests --with-coverage --cover-tests \
+  --cover-package functest_kubernetes functest_kubernetes
diff --git a/upper-constraints.txt b/upper-constraints.txt
new file mode 100644 (file)
index 0000000..d3df60a
--- /dev/null
@@ -0,0 +1 @@
+git+https://gerrit.opnfv.org/gerrit/functest#egg=functest