aboutsummaryrefslogtreecommitdiffstats
path: root/xtesting
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2018-08-10 13:04:11 +0200
committerCédric Ollivier <cedric.ollivier@orange.com>2018-08-12 12:26:23 +0200
commit2ad07442cebfaca7d5d70191f9ffca1cabdf4370 (patch)
treeb31f5dc76f026b3a567361b3c6cb5c392acf59fb /xtesting
parentf42e4276414e492afde19deb368c1e77d4dffbeb (diff)
Skip the selected testcase too0.35
It completes "Allow calling a skip test" [1] [1] https://gerrit.opnfv.org/gerrit/60655 Change-Id: I02499aed56e6b23563165ea1f17b476e12408823 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com> (cherry picked from commit a9491ef0948f8fe3eb3772b6b6ae44d86bde7e9b)
Diffstat (limited to 'xtesting')
-rw-r--r--xtesting/ci/run_tests.py2
-rw-r--r--xtesting/ci/tier_builder.py3
-rw-r--r--xtesting/ci/tier_handler.py8
-rw-r--r--xtesting/tests/unit/ci/test_run_tests.py40
-rw-r--r--xtesting/tests/unit/ci/test_tier_handler.py2
5 files changed, 50 insertions, 5 deletions
diff --git a/xtesting/ci/run_tests.py b/xtesting/ci/run_tests.py
index 27f9d946..255b74df 100644
--- a/xtesting/ci/run_tests.py
+++ b/xtesting/ci/run_tests.py
@@ -138,7 +138,7 @@ class Runner(object):
def run_test(self, test):
"""Run one test case"""
- if not test.is_enabled():
+ if not test.is_enabled() or test.is_skipped():
msg = prettytable.PrettyTable(
header_style='upper', padding_width=5,
field_names=['test case', 'project', 'duration',
diff --git a/xtesting/ci/tier_builder.py b/xtesting/ci/tier_builder.py
index a4169099..3383a763 100644
--- a/xtesting/ci/tier_builder.py
+++ b/xtesting/ci/tier_builder.py
@@ -45,7 +45,6 @@ class TierBuilder(object):
name=dic_tier['name'], order=dic_tier['order'],
ci_loop=dic_tier['ci_loop'],
description=dic_tier['description'])
-
for dic_testcase in dic_tier['testcases']:
if not dic_testcase.get('dependencies'):
installer = '.*'
@@ -60,6 +59,7 @@ class TierBuilder(object):
testcase = tier_handler.TestCase(
name=dic_testcase['case_name'],
enabled=dic_testcase.get('enabled', True),
+ skipped=False,
dependency=dep, criteria=dic_testcase['criteria'],
blocking=dic_testcase['blocking'],
description=dic_testcase['description'],
@@ -69,6 +69,7 @@ class TierBuilder(object):
testcase.is_enabled()):
tier.add_test(testcase)
else:
+ testcase.skipped = True
tier.skip_test(testcase)
self.tier_objects.append(tier)
diff --git a/xtesting/ci/tier_handler.py b/xtesting/ci/tier_handler.py
index 51f031c0..4e413f51 100644
--- a/xtesting/ci/tier_handler.py
+++ b/xtesting/ci/tier_handler.py
@@ -100,14 +100,15 @@ class Tier(object):
return msg.get_string()
-class TestCase(object):
+class TestCase(object): # pylint: disable=too-many-instance-attributes
- def __init__(self, name, enabled, dependency, criteria, blocking,
+ def __init__(self, name, enabled, skipped, dependency, criteria, blocking,
description="", project=""):
# pylint: disable=too-many-arguments
self.name = name
self.enabled = enabled
self.dependency = dependency
+ self.skipped = skipped
self.criteria = criteria
self.blocking = blocking
self.description = description
@@ -129,6 +130,9 @@ class TestCase(object):
def is_enabled(self):
return self.enabled
+ def is_skipped(self):
+ return self.skipped
+
def get_criteria(self):
return self.criteria
diff --git a/xtesting/tests/unit/ci/test_run_tests.py b/xtesting/tests/unit/ci/test_run_tests.py
index de2af66d..3624d158 100644
--- a/xtesting/tests/unit/ci/test_run_tests.py
+++ b/xtesting/tests/unit/ci/test_run_tests.py
@@ -130,6 +130,8 @@ class RunTestsTesting(unittest.TestCase):
def test_run_tests_import_exception(self, *args):
mock_test = mock.Mock()
kwargs = {'get_name.return_value': 'test_name',
+ 'is_skipped.return_value': False,
+ 'is_enabled.return_value': True,
'needs_clean.return_value': False}
mock_test.configure_mock(**kwargs)
with self.assertRaises(Exception) as context:
@@ -145,6 +147,8 @@ class RunTestsTesting(unittest.TestCase):
def test_run_tests_default(self, *args):
mock_test = mock.Mock()
kwargs = {'get_name.return_value': 'test_name',
+ 'is_skipped.return_value': False,
+ 'is_enabled.return_value': True,
'needs_clean.return_value': True}
mock_test.configure_mock(**kwargs)
test_run_dict = {'module': 'test_module',
@@ -158,6 +162,42 @@ class RunTestsTesting(unittest.TestCase):
self.assertEqual(self.runner.overall_result,
run_tests.Result.EX_OK)
+ @mock.patch('xtesting.ci.run_tests.Runner.get_dict_by_test')
+ def test_run_tests_disabled(self, *args):
+ mock_test = mock.Mock()
+ kwargs = {'get_name.return_value': 'test_name',
+ 'is_skipped.return_value': False,
+ 'is_enabled.return_value': False,
+ 'needs_clean.return_value': True}
+ mock_test.configure_mock(**kwargs)
+ test_run_dict = {'module': 'test_module',
+ 'class': 'test_class'}
+ with mock.patch('xtesting.ci.run_tests.Runner.get_run_dict',
+ return_value=test_run_dict):
+ self.runner.clean_flag = True
+ self.runner.run_test(mock_test)
+ args[0].assert_not_called()
+ self.assertEqual(self.runner.overall_result,
+ run_tests.Result.EX_OK)
+
+ @mock.patch('xtesting.ci.run_tests.Runner.get_dict_by_test')
+ def test_run_tests_skipped(self, *args):
+ mock_test = mock.Mock()
+ kwargs = {'get_name.return_value': 'test_name',
+ 'is_skipped.return_value': True,
+ 'is_enabled.return_value': True,
+ 'needs_clean.return_value': True}
+ mock_test.configure_mock(**kwargs)
+ test_run_dict = {'module': 'test_module',
+ 'class': 'test_class'}
+ with mock.patch('xtesting.ci.run_tests.Runner.get_run_dict',
+ return_value=test_run_dict):
+ self.runner.clean_flag = True
+ self.runner.run_test(mock_test)
+ args[0].assert_not_called()
+ self.assertEqual(self.runner.overall_result,
+ run_tests.Result.EX_OK)
+
@mock.patch('xtesting.ci.run_tests.Runner.run_test',
return_value=TestCase.EX_OK)
def test_run_tier_default(self, *mock_methods):
diff --git a/xtesting/tests/unit/ci/test_tier_handler.py b/xtesting/tests/unit/ci/test_tier_handler.py
index 97ba5ab3..dd7e1b06 100644
--- a/xtesting/tests/unit/ci/test_tier_handler.py
+++ b/xtesting/tests/unit/ci/test_tier_handler.py
@@ -29,7 +29,7 @@ class TierHandlerTesting(unittest.TestCase):
self.tier = tier_handler.Tier(
'test_tier', 'test_order', 'test_ci_loop', description='test_desc')
self.testcase = tier_handler.TestCase(
- 'test_name', 'true', self.mock_depend, 'test_criteria',
+ 'test_name', 'true', False, self.mock_depend, 'test_criteria',
True, description='test_desc', project='project_name')
self.dependency = tier_handler.Dependency(
'test_installer', 'test_scenario')