From 22b8299e29f87158c4675892b9c3189d9eb35ba7 Mon Sep 17 00:00:00 2001 From: djkonro Date: Tue, 20 Feb 2018 00:42:51 +0100 Subject: Add unit tests for functest-kubernetes Change-Id: I4c9b5a56e891f4a63c86e0d7c4dd0d02de677610 Signed-off-by: djkonro --- .gitignore | 1 + functest_kubernetes/test_k8stest.py | 54 +++++++++++++++++++++++++++++++++++++ tox.ini | 10 ++++++- upper-constraints.txt | 1 + 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 functest_kubernetes/test_k8stest.py create mode 100644 upper-constraints.txt diff --git a/.gitignore b/.gitignore index 8c7c1d0a..004ebb7d 100644 --- a/.gitignore +++ b/.gitignore @@ -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 index 00000000..02c8f7e6 --- /dev/null +++ b/functest_kubernetes/test_k8stest.py @@ -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 34f8a756..6b90f068 100644 --- 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 index 00000000..d3df60a0 --- /dev/null +++ b/upper-constraints.txt @@ -0,0 +1 @@ +git+https://gerrit.opnfv.org/gerrit/functest#egg=functest -- cgit 1.2.3-korg