From 5bbec2ac58111c0c48ea2225d605169832e24354 Mon Sep 17 00:00:00 2001 From: Naga Sugguna Date: Fri, 24 May 2019 11:17:47 -0500 Subject: [PATCH] Pass variables to robot testcases * robot can take variables files in .yaml and .py formats .yaml is more readable where .py can generate dynamic parametrs. Here providing the both options. * blueval engine updated to pass variables file. * Decided to use simple (yaml) option and enhances it when needed * We can make a standard, robot testcases can have variables but comment them before committing. Looking at that users can update variables file. Signed-off-by: Naga Sugguna Change-Id: I1df6efff22e86a7feaca5c2e641b7c130bb79138 --- bluval/bluval.py | 9 ++++--- .../hardware/bios_version/bios_version_dell.robot | 9 ++++--- variables.yaml | 29 ++++++++++++++++++++++ 3 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 variables.yaml diff --git a/bluval/bluval.py b/bluval/bluval.py index 01b402a..8ed6bdf 100644 --- a/bluval/bluval.py +++ b/bluval/bluval.py @@ -28,20 +28,21 @@ def run_testcase(testcase): """ show_stopper = testcase.get('show_stopper', False) what = testcase.get('what') + variables = "variables.yaml" results = "results/"+testcase.get('layer')+"/"+what test_path = "tests/"+testcase.get('layer')+"/"+what - command = '{} {} {} {}'.format("robot", "-d", results, test_path) + args = ["robot", "-V", variables, "-d", results, test_path] print('Executing testcase {}'.format(testcase['name'])) print(' show_stopper {}'.format(show_stopper)) - print('Invoking {}'.format(command)) + print('Invoking {}'.format(args)) try: - status = subprocess.call(command, shell=True) + status = subprocess.call(args, shell=False) if status != 0 and show_stopper: print('Show stopper testcase failed') return status except OSError: - print('Error while executing {}'.format(command)) + print('Error while executing {}'.format(args)) return -1 return status diff --git a/tests/hardware/bios_version/bios_version_dell.robot b/tests/hardware/bios_version/bios_version_dell.robot index efa9dd9..cf64398 100644 --- a/tests/hardware/bios_version/bios_version_dell.robot +++ b/tests/hardware/bios_version/bios_version_dell.robot @@ -24,10 +24,11 @@ Suite Setup Open Connection And Log In Suite Teardown Close All Connections *** Variables *** -${HOST} localhost -${USERNAME} localadmin +#${HOST} localhost +#${USERNAME} localadmin +#${SYSINFO} PowerEdge R740xd +#${BIOS_REVISION} 1.3 ${LOG} /opt/akraino/validation/bios_version/print_bios.txt -${SYSINFO} PowerEdge R740xd *** Test Cases *** Get HW Details @@ -42,7 +43,7 @@ Verify BIOS Revision Start Command dmidecode | more | grep 'BIOS Revision' sudo=True ${stdout}= Read Command Output Append To File ${LOG} ${stdout}${\n} - Should Contain ${stdout} BIOS Revision: 1.3 + Should Contain ${stdout} BIOS Revision: ${BIOS_REVISION} Check NUMA and CPU [Documentation] NUMAs and CPU components diff --git a/variables.yaml b/variables.yaml new file mode 100644 index 0000000..016f31b --- /dev/null +++ b/variables.yaml @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. # +# # +# You may obtain a copy of the License at # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +############################################################################## + +# This file provides variable requeired robot testcases +# This file can be passed to robot testcases as follows +# $ robot -v varables.yaml +# +# All keys are converted UPPERCASE before sumitting to robot. YAML notation is +# smallcase and Robot variables notation is UPPERCASE so industry is follwoing +# this. + +host: aknode109 +username: localadmin +sysinfo: PowerEdge R740xd +bios_revision: 1.3 -- 2.16.6