aboutsummaryrefslogtreecommitdiffstats
path: root/functest_kubernetes/k8stest.py
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2020-08-13 12:04:31 +0200
committerCédric Ollivier <cedric.ollivier@orange.com>2020-08-13 13:19:05 +0200
commita22553a65d6019350c215c9024c9dc54cf77dc7c (patch)
treeb04b4a6eed790f7eaaf135e144010ced291dae0e /functest_kubernetes/k8stest.py
parent019101492b51aa74412265cd99ba1a9e27a3de8c (diff)
Ease modifying the test list in E2E testing
It eases creating specific CNTT test cases based on K8s E2E testing. Change-Id: I304960fda760ffc47d763d53511898699f63e356 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Diffstat (limited to 'functest_kubernetes/k8stest.py')
-rw-r--r--functest_kubernetes/k8stest.py42
1 files changed, 11 insertions, 31 deletions
diff --git a/functest_kubernetes/k8stest.py b/functest_kubernetes/k8stest.py
index e8e8a1f4..55a18233 100644
--- a/functest_kubernetes/k8stest.py
+++ b/functest_kubernetes/k8stest.py
@@ -23,7 +23,7 @@ import time
from xtesting.core import testcase
-class K8sTesting(testcase.TestCase):
+class E2ETesting(testcase.TestCase):
"""Kubernetes test runner"""
# pylint: disable=too-many-instance-attributes
@@ -32,7 +32,7 @@ class K8sTesting(testcase.TestCase):
config = '/root/.kube/config'
def __init__(self, **kwargs):
- super(K8sTesting, self).__init__(**kwargs)
+ super(E2ETesting, self).__init__(**kwargs)
self.cmd = []
self.dir_results = "/home/opnfv/functest/results"
self.res_dir = os.path.join(self.dir_results, self.case_name)
@@ -42,11 +42,16 @@ class K8sTesting(testcase.TestCase):
self.output_log_name = 'functest-kubernetes.log'
self.output_debug_log_name = 'functest-kubernetes.debug.log'
- def run_kubetest(self): # pylint: disable=too-many-branches
+ def run_kubetest(self, **kwargs): # pylint: disable=too-many-branches
"""Run the test suites"""
- cmd_line = self.cmd
+ cmd_line = ['e2e.test', '-ginkgo.noColor', '-kubeconfig', self.config,
+ '-provider', 'local', '-report-dir', self.res_dir]
+ if kwargs.get("focus"):
+ cmd_line.extend(['-ginkgo.focus', kwargs.get("focus")])
+ if kwargs.get("skip"):
+ cmd_line.extend(['-ginkgo.skip', kwargs.get("skip")])
+ cmd_line.extend(['-disable-log-dump', 'true'])
self.__logger.info("Starting k8s test: '%s'.", cmd_line)
-
process = subprocess.Popen(cmd_line, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
boutput = process.stdout.read()
@@ -80,35 +85,10 @@ class K8sTesting(testcase.TestCase):
return self.EX_RUN_ERROR
self.start_time = time.time()
try:
- self.run_kubetest()
+ self.run_kubetest(**kwargs)
res = self.EX_OK
except Exception: # pylint: disable=broad-except
self.__logger.exception("Error with running kubetest:")
res = self.EX_RUN_ERROR
self.stop_time = time.time()
return res
-
-
-class K8sSmokeTest(K8sTesting):
- """Kubernetes smoke test suite"""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs.get("case_name", 'k8s_smoke')
- super(K8sSmokeTest, self).__init__(**kwargs)
- self.cmd = ['e2e.test', '-ginkgo.focus', 'Guestbook.application',
- '-ginkgo.noColor', '-kubeconfig', self.config,
- '-provider', 'local', '-report-dir', self.res_dir,
- '-disable-log-dump', 'true']
-
-
-class K8sConformanceTest(K8sTesting):
- """Kubernetes conformance test suite"""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs.get("case_name", 'k8s_conformance')
- super(K8sConformanceTest, self).__init__(**kwargs)
- self.cmd = [
- 'e2e.test', '-ginkgo.focus', r'\[Conformance\]', '-ginkgo.noColor',
- '-ginkgo.skip', r'Alpha|\[(Disruptive|Feature:[^\]]+|Flaky)\]',
- '-kubeconfig', self.config, '-provider', 'local',
- '-report-dir', self.res_dir, '-disable-log-dump', 'true']