From 66b0d7f3a4772d4b7cf84503b2171abe46ebd557 Mon Sep 17 00:00:00 2001 From: Simran Singhal Date: Sat, 14 Nov 2020 16:14:36 +0530 Subject: Auto discover and register all robot test cases Issue-ID: VNFSDK-614 Change-Id: I5227425f29fb11ef4255e88d873a167b608d5360 Signed-off-by: Simran Singhal --- .../zip/src/main/release/conf/open-cli.properties | 2 +- framework/src/main/resources/open-cli.properties | 2 +- framework/src/test/resources/open-cli.properties | 2 +- .../onap/cli/fw/robot/cmd/OnapRobotCommand.java | 13 +++++- .../fw/robot/conf/OnapCommandRobotConstants.java | 5 +++ .../src/main/resources/open-cli-robot.properties | 16 ++++++++ .../robot/auto-discover-robot-testcases.yaml | 48 ++++++++++++++++++++++ .../src/test/resources/open-cli.properties | 4 +- 8 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 profiles/robot/src/main/resources/open-cli-robot.properties create mode 100644 profiles/robot/src/main/resources/open-cli-schema/robot/auto-discover-robot-testcases.yaml diff --git a/deployment/zip/src/main/release/conf/open-cli.properties b/deployment/zip/src/main/release/conf/open-cli.properties index 27b592ab..b289df2f 100644 --- a/deployment/zip/src/main/release/conf/open-cli.properties +++ b/deployment/zip/src/main/release/conf/open-cli.properties @@ -48,4 +48,4 @@ cli.schema.profile.available=http,snmp,cmd,robot #other properties to load (it should be hanled when plugins are made as externally register-able #when command plugin management support is enabled in oclip -cli.schema.profile.confs=open-cli-http.properties,open-cli-snmp.properties,open-cli-cmd.properties \ No newline at end of file +cli.schema.profile.confs=open-cli-http.properties,open-cli-snmp.properties,open-cli-cmd.properties,open-cli-robot.properties \ No newline at end of file diff --git a/framework/src/main/resources/open-cli.properties b/framework/src/main/resources/open-cli.properties index 5f2a3d8f..a22559a9 100644 --- a/framework/src/main/resources/open-cli.properties +++ b/framework/src/main/resources/open-cli.properties @@ -43,7 +43,7 @@ cli.sample.gen.name=sample1 cli.sample.gen.target=./open-cli-sample # mrkanag Move this to db, once exteranl command registration is supported in place of discovery -cli.schema.profile.available=http,snmp,cmd +cli.schema.profile.available=http,snmp,cmd,robot #other properties to load (it should be hanled when plugins are made as externally register-able #when command plugin management support is enabled in oclip diff --git a/framework/src/test/resources/open-cli.properties b/framework/src/test/resources/open-cli.properties index bd8a6acf..07696c43 100644 --- a/framework/src/test/resources/open-cli.properties +++ b/framework/src/test/resources/open-cli.properties @@ -42,7 +42,7 @@ cli.sample.gen.enable=false cli.sample.gen.target=./open-cli-sample # mrkanag Move this to db, once exteranl command registration is supported in place of discovery -cli.schema.profile.available=http,snmp,cmd +cli.schema.profile.available=http,snmp,cmd,robot #other properties to load (it should be hanled when plugins are made as externally register-able #when command plugin management support is enabled in oclip diff --git a/profiles/robot/src/main/java/org/onap/cli/fw/robot/cmd/OnapRobotCommand.java b/profiles/robot/src/main/java/org/onap/cli/fw/robot/cmd/OnapRobotCommand.java index fa995951..c4dc1bc8 100644 --- a/profiles/robot/src/main/java/org/onap/cli/fw/robot/cmd/OnapRobotCommand.java +++ b/profiles/robot/src/main/java/org/onap/cli/fw/robot/cmd/OnapRobotCommand.java @@ -19,11 +19,14 @@ package org.onap.cli.fw.robot.cmd; import java.util.List; import java.util.Map; +import org.onap.cli.fw.conf.OnapCommandConfig; import org.onap.cli.fw.schema.OnapCommandSchema; +import org.onap.cli.fw.cmd.OnapCommand; import org.onap.cli.fw.cmd.cmd.OpenCommandShellCmd; import org.onap.cli.fw.robot.conf.OnapCommandRobotConstants; import org.onap.cli.fw.robot.schema.OnapCommandSchemaRobotLoader; import org.onap.cli.fw.error.OnapCommandException; +import org.onap.cli.fw.registrar.OnapCommandRegistrar; /** * Oclip robot Command. @@ -32,8 +35,16 @@ import org.onap.cli.fw.error.OnapCommandException; @OnapCommandSchema(type = OnapCommandRobotConstants.ROBOT_SCHEMA_PROFILE) public class OnapRobotCommand extends OpenCommandShellCmd { - public OnapRobotCommand() { + public OnapRobotCommand() throws OnapCommandException { super.addDefaultSchemas(OnapCommandRobotConstants.DEFAULT_PARAMETER_ROBOT_FILE_NAME); + if(Boolean.parseBoolean(OnapCommandConfig.getPropertyValue(OnapCommandRobotConstants.ROBOT_DISCOVER_TESTCASES))) + this.discover(); + } + + public void discover() throws OnapCommandException { + OnapCommand cmd = OnapCommandRegistrar.getRegistrar().get("auto-discover-robot-testcases"); + cmd.getParametersMap().get("api-tests-folder-path").setValue(OnapCommandRobotConstants.ROBOT_API_TESTS_FOLDER_PATH); + cmd.execute(); } @Override diff --git a/profiles/robot/src/main/java/org/onap/cli/fw/robot/conf/OnapCommandRobotConstants.java b/profiles/robot/src/main/java/org/onap/cli/fw/robot/conf/OnapCommandRobotConstants.java index 9aac11e7..c0814895 100644 --- a/profiles/robot/src/main/java/org/onap/cli/fw/robot/conf/OnapCommandRobotConstants.java +++ b/profiles/robot/src/main/java/org/onap/cli/fw/robot/conf/OnapCommandRobotConstants.java @@ -21,11 +21,16 @@ package org.onap.cli.fw.robot.conf; * */ public class OnapCommandRobotConstants { + public static final String CONF = "open-cli-robot.properties"; public static final String ROBOT_SCHEMA_PROFILE = "robot"; public static final String ROBOT = "robot"; public static final String DEFAULT_PARAMETER_ROBOT_FILE_NAME = "default_input_parameters_robot.yaml"; + // discover robot testcases + public static final String ROBOT_DISCOVER_TESTCASES = "cli.robot.discover"; + public static final String ROBOT_API_TESTS_FOLDER_PATH = "cli.robot.api_tests_folder_path"; + private OnapCommandRobotConstants() { //as per coding standard ! } diff --git a/profiles/robot/src/main/resources/open-cli-robot.properties b/profiles/robot/src/main/resources/open-cli-robot.properties new file mode 100644 index 00000000..9b157596 --- /dev/null +++ b/profiles/robot/src/main/resources/open-cli-robot.properties @@ -0,0 +1,16 @@ +# Copyright 2020 Simran Singhal. +# +# 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. + +cli.robot.discover=false +cli.robot.api_tests_folder_path= \ No newline at end of file diff --git a/profiles/robot/src/main/resources/open-cli-schema/robot/auto-discover-robot-testcases.yaml b/profiles/robot/src/main/resources/open-cli-schema/robot/auto-discover-robot-testcases.yaml new file mode 100644 index 00000000..a03dbd18 --- /dev/null +++ b/profiles/robot/src/main/resources/open-cli-schema/robot/auto-discover-robot-testcases.yaml @@ -0,0 +1,48 @@ +# Copyright 2020 Simran Singhal. +# +# 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. + +open_cli_schema_version: 1.0 + +name: auto-discover-robot-testcases + +description: Auto discover and register all robot test cases + +info: + product: open-cli + service: discover + type: cmd + author: Simran Singhal singhalsimran0@gmail.com + +parameters: + - name: api-tests-folder-path + type: string + description: Location to api-tests folder + short_option: l + long_option: api-tests-folder-path + is_optional: false + - name: format + type: string + description: Output formats, supported formats such as table, csv, json, yaml + short_option: f + long_option: format + default_value: text + is_default_param: true + +robot: + command: + - python3 $s{env:OPEN_CLI_HOME}/script/discover-robot-testcases.py --api-tests-folder-path ${api-tests-folder-path} + success_codes: + - 0 + working_directory: . + output: $stdout \ No newline at end of file diff --git a/validate/validation/src/test/resources/open-cli.properties b/validate/validation/src/test/resources/open-cli.properties index b2f0f816..500632b3 100644 --- a/validate/validation/src/test/resources/open-cli.properties +++ b/validate/validation/src/test/resources/open-cli.properties @@ -38,8 +38,8 @@ cli.sample.gen.enable=false cli.sample.gen.target=. # mrkanag Move this to db, once exteranl command registration is supported in place of discovery -cli.schema.profile.available=http,snmp +cli.schema.profile.available=http,snmp,robot #other properties to load (it should be hanled when plugins are made as externally register-able #when command plugin management support is enabled in oclip -cli.schema.profile.confs=open-cli-http.properties,open-cli-snmp.properties +cli.schema.profile.confs=open-cli-http.properties,open-cli-snmp.properties,open-cli-robot.properties -- cgit 1.2.3-korg