aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docker/vnf/testcases.yaml29
-rw-r--r--functest/ci/testcases.yaml29
-rw-r--r--functest/opnfv_tests/sdn/odl/odl.py27
-rw-r--r--functest/tests/unit/odl/test_odl.py23
4 files changed, 62 insertions, 46 deletions
diff --git a/docker/vnf/testcases.yaml b/docker/vnf/testcases.yaml
index 54e5f2920..eccabbe5e 100644
--- a/docker/vnf/testcases.yaml
+++ b/docker/vnf/testcases.yaml
@@ -20,6 +20,21 @@ tiers:
run:
module: 'functest.opnfv_tests.vnf.ims.cloudify_ims'
class: 'CloudifyIms'
+
+ -
+ case_name: vyos_vrouter
+ project_name: functest
+ criteria: 100
+ blocking: false
+ description: >-
+ This test case is vRouter testing.
+ dependencies:
+ installer: '^((?!compass|fuel).)*$'
+ scenario: 'os-nosdn-nofeature-ha'
+ run:
+ module: 'functest.opnfv_tests.vnf.router.cloudify_vrouter'
+ class: 'CloudifyVrouter'
+
-
case_name: orchestra_openims
project_name: orchestra
@@ -47,17 +62,3 @@ tiers:
run:
module: 'functest.opnfv_tests.vnf.ims.orchestra_clearwaterims'
class: 'ClearwaterImsVnf'
-
- -
- case_name: vyos_vrouter
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- This test case is vRouter testing.
- dependencies:
- installer: ''
- scenario: 'os-nosdn-nofeature-ha'
- run:
- module: 'functest.opnfv_tests.vnf.router.cloudify_vrouter'
- class: 'CloudifyVrouter'
diff --git a/functest/ci/testcases.yaml b/functest/ci/testcases.yaml
index 1d20a9203..0759fc0ef 100644
--- a/functest/ci/testcases.yaml
+++ b/functest/ci/testcases.yaml
@@ -356,6 +356,21 @@ tiers:
run:
module: 'functest.opnfv_tests.vnf.ims.cloudify_ims'
class: 'CloudifyIms'
+
+ -
+ case_name: vyos_vrouter
+ project_name: functest
+ criteria: 100
+ blocking: false
+ description: >-
+ This test case is vRouter testing.
+ dependencies:
+ installer: '^((?!compass|fuel).)*$'
+ scenario: 'os-nosdn-nofeature-ha'
+ run:
+ module: 'functest.opnfv_tests.vnf.router.cloudify_vrouter'
+ class: 'CloudifyVrouter'
+
-
case_name: orchestra_openims
project_name: orchestra
@@ -383,17 +398,3 @@ tiers:
run:
module: 'functest.opnfv_tests.vnf.ims.orchestra_clearwaterims'
class: 'ClearwaterImsVnf'
-
- -
- case_name: vyos_vrouter
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- This test case is vRouter testing.
- dependencies:
- installer: ''
- scenario: 'os-nosdn-nofeature-ha'
- run:
- module: 'functest.opnfv_tests.vnf.router.cloudify_vrouter'
- class: 'CloudifyVrouter'
diff --git a/functest/opnfv_tests/sdn/odl/odl.py b/functest/opnfv_tests/sdn/odl/odl.py
index de723d19d..6c05c0181 100644
--- a/functest/opnfv_tests/sdn/odl/odl.py
+++ b/functest/opnfv_tests/sdn/odl/odl.py
@@ -38,11 +38,13 @@ class ODLTests(robotframework.RobotFramework):
"""ODL test runner."""
odl_test_repo = constants.CONST.__getattribute__('dir_repo_odl_test')
- neutron_suite_dir = os.path.join(odl_test_repo,
- "csit/suites/openstack/neutron")
- basic_suite_dir = os.path.join(odl_test_repo,
- "csit/suites/integration/basic")
+ neutron_suite_dir = os.path.join(
+ odl_test_repo, "csit/suites/openstack/neutron")
+ basic_suite_dir = os.path.join(
+ odl_test_repo, "csit/suites/integration/basic")
default_suites = [basic_suite_dir, neutron_suite_dir]
+ odl_variables_file = os.path.join(
+ odl_test_repo, 'csit/variables/Variables.robot')
__logger = logging.getLogger(__name__)
def __init__(self, **kwargs):
@@ -59,18 +61,17 @@ class ODLTests(robotframework.RobotFramework):
True if credentials are set.
False otherwise.
"""
- odl_variables_files = os.path.join(cls.odl_test_repo,
- 'csit/variables/Variables.robot')
+
try:
- for line in fileinput.input(odl_variables_files,
+ for line in fileinput.input(cls.odl_variables_file,
inplace=True):
print(re.sub("@{AUTH}.*",
"@{{AUTH}} {} {}".format(
odlusername, odlpassword),
line.rstrip()))
return True
- except Exception as ex: # pylint: disable=broad-except
- cls.__logger.error("Cannot set ODL creds: %s", str(ex))
+ except Exception: # pylint: disable=broad-except
+ cls.__logger.exception("Cannot set ODL creds:")
return False
def run_suites(self, suites=None, **kwargs):
@@ -128,10 +129,12 @@ class ODLTests(robotframework.RobotFramework):
except KeyError:
self.__logger.exception("Cannot run ODL testcases. Please check")
return self.EX_RUN_ERROR
- if self.set_robotframework_vars(odlusername, odlpassword):
- return super(ODLTests, self).run(variable=variable, suites=suites)
+ if not os.path.isfile(self.odl_variables_file):
+ self.__logger.info("Skip writting ODL creds")
else:
- return self.EX_RUN_ERROR
+ if not self.set_robotframework_vars(odlusername, odlpassword):
+ return self.EX_RUN_ERROR
+ return super(ODLTests, self).run(variable=variable, suites=suites)
def run(self, **kwargs):
"""Run suites in OPNFV environment
diff --git a/functest/tests/unit/odl/test_odl.py b/functest/tests/unit/odl/test_odl.py
index ff25cd7a9..1a3f79503 100644
--- a/functest/tests/unit/odl/test_odl.py
+++ b/functest/tests/unit/odl/test_odl.py
@@ -154,7 +154,7 @@ class ODLMainTesting(ODLTesting):
kwargs = self._get_run_suites_kwargs()
self.assertEqual(self.test.run_suites(**kwargs), status)
if len(args) > 0:
- args[0].assert_called_once_with(self.test.res_dir)
+ args[0].assert_called_once_with(self.test.odl_variables_file)
if len(args) > 1:
variable = [
'KEYSTONEURL:{}://{}'.format(
@@ -214,15 +214,17 @@ class ODLMainTesting(ODLTesting):
def test_no_odlrestconfport(self):
self._test_no_keyword('odlrestconfport')
- def test_set_vars_ko(self):
+ @mock.patch('os.path.isfile', return_value=True)
+ def test_set_vars_ko(self, *args):
with mock.patch.object(self.test, 'set_robotframework_vars',
return_value=False) as mock_object:
self._test_run_suites(testcase.TestCase.EX_RUN_ERROR)
mock_object.assert_called_once_with(
self._odl_username, self._odl_password)
+ args[0].assert_called_once_with(self.test.odl_variables_file)
@mock.patch('robot.run', side_effect=RobotError)
- @mock.patch('os.makedirs')
+ @mock.patch('os.path.isfile', return_value=True)
def test_run_ko(self, *args):
with mock.patch.object(self.test, 'set_robotframework_vars',
return_value=True), \
@@ -230,7 +232,7 @@ class ODLMainTesting(ODLTesting):
self._test_run_suites(testcase.TestCase.EX_RUN_ERROR, *args)
@mock.patch('robot.run')
- @mock.patch('os.makedirs')
+ @mock.patch('os.path.isfile', return_value=True)
def test_parse_results_ko(self, *args):
with mock.patch.object(self.test, 'set_robotframework_vars',
return_value=True), \
@@ -239,15 +241,24 @@ class ODLMainTesting(ODLTesting):
self._test_run_suites(testcase.TestCase.EX_RUN_ERROR, *args)
@mock.patch('robot.run')
- @mock.patch('os.makedirs')
+ @mock.patch('os.path.isfile', return_value=True)
def test_ok(self, *args):
with mock.patch.object(self.test, 'set_robotframework_vars',
return_value=True), \
mock.patch.object(self.test, 'parse_results'):
self._test_run_suites(testcase.TestCase.EX_OK, *args)
+ @mock.patch('robot.run')
+ @mock.patch('os.path.isfile', return_value=False)
+ def test_ok_no_creds(self, *args):
+ with mock.patch.object(self.test, 'set_robotframework_vars',
+ return_value=True) as mock_method, \
+ mock.patch.object(self.test, 'parse_results'):
+ self._test_run_suites(testcase.TestCase.EX_OK, *args)
+ mock_method.assert_not_called()
+
@mock.patch('robot.run', return_value=1)
- @mock.patch('os.makedirs')
+ @mock.patch('os.path.isfile', return_value=True)
def test_testcases_in_failure(self, *args):
with mock.patch.object(self.test, 'set_robotframework_vars',
return_value=True), \