[PATCH openbmc-test-automation 07/60] Use argumnet file with pyrobot and added instructions to READEME file.
OpenBMC Patches
openbmc-patches at stwcx.xyz
Tue Jan 12 03:49:33 AEDT 2016
From: Manjunath A Kumatagi <mkumatag at in.ibm.com>
---
.gitignore | 2 ++
README.md | 18 +++++++++++-
lib/resource.txt | 6 ++--
lib/rest_client.robot | 8 +++---
tests/test_ssh.robot | 64 ------------------------------------------
tools/generate_argumentfile.sh | 5 ++++
tox.ini | 30 +++++++++-----------
7 files changed, 45 insertions(+), 88 deletions(-)
delete mode 100644 tests/test_ssh.robot
create mode 100755 tools/generate_argumentfile.sh
diff --git a/.gitignore b/.gitignore
index 9f23ed1..8aea548 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
/log.html
/output.xml
/report.html
+/.idea/
+/.tox/
\ No newline at end of file
diff --git a/README.md b/README.md
index f491b6c..589d693 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,18 @@
#openbmc-automation
-More information needs to be added.
+
+Quickstart
+----------
+
+To run openbmc-automation first you need to install the prerequisite python
+packages which will help to invoke tests through tox.
+
+1. Install the python dependencies for tox
+ $ easy_install tox pip
+
+2. Initilize the following environment variable which will used while testing
+ $ export OPENBMC_HOST=<openbmc machine ip address>
+ $ export OPENBMC_PASSWORD=<openbmc username>
+ $ export OPENBMC_USERNAME=<openbmc password>
+
+3. Run tests
+ $ tox -e tests
diff --git a/lib/resource.txt b/lib/resource.txt
index 5acddcf..c34e026 100644
--- a/lib/resource.txt
+++ b/lib/resource.txt
@@ -5,8 +5,8 @@ Library RequestsLibrary.RequestsKeywords
Library OperatingSystem
*** Variables ***
-${HOST} 192.168.122.100 # openbmc ip address
+${OPENBMC_HOST} 192.168.122.100 # openbmc ip address
${PORT} 3000
${AUTH_URI} http://${HOST}:${PORT}
-${USERNAME} root
-${PASSWORD} abc123
+${OPENBMC_USERNAME} root
+${OPENBMC_PASSWORD} abc123
diff --git a/lib/rest_client.robot b/lib/rest_client.robot
index 1de2b77..45c4226 100644
--- a/lib/rest_client.robot
+++ b/lib/rest_client.robot
@@ -5,12 +5,12 @@ Library RequestsLibrary.RequestsKeywords
Library OperatingSystem
*** Variables ***
-${HOST} 192.168.122.100 # openbmc ip address
+${OPENBMC_HOST} 192.168.122.100 # openbmc ip address
${DBUS_PREFIX} /bus/session
${PORT} 3000
-${AUTH_URI} http://${HOST}:${PORT}
-${USERNAME} root
-${PASSWORD} abc123
+${AUTH_URI} http://${OPENBMC_HOST}:${PORT}
+${OPENBMC_USERNAME} root
+${OPENBMC_PASSWORD} abc123
# Response codes
${HTTP_CONTINUE} 100
${HTTP_SWITCHING_PROTOCOLS} 101
diff --git a/tests/test_ssh.robot b/tests/test_ssh.robot
deleted file mode 100644
index cabcea0..0000000
--- a/tests/test_ssh.robot
+++ /dev/null
@@ -1,64 +0,0 @@
-*** Settings ***
-Documentation This example demonstrates executing commands on a remote machine
-... and getting their output and the return code.
-...
-... Notice how connections are handled as part of the suite setup and
-... teardown. This saves some time when executing several test cases.
-Suite Setup Open Connection And Log In
-Suite Teardown Close All Connections
-Library SSHLibrary
-
-*** Variables ***
-${HOST} 192.168.122.100
-${USERNAME} manjunath
-${PASSWORD} passw0rd
-
-*** Test Cases ***
-Execute Command And Verify Output
- [Documentation] Execute Command can be used to ran commands on the remote machine.
- ... The keyword returns the standard output by default.
- ${output}= Execute Command echo Hello SSHLibrary!
- Should Be Equal ${output} Hello SSHLibrary!
-
-Execute Command And Verify Return Code
- [Documentation] Often getting the return code of the command is enough.
- ... This behaviour can be adjusted as Execute Command arguments.
- ${rc}= Execute Command echo Success guaranteed. return_stdout=False return_rc=True
- Should Be Equal ${rc} ${0}
-
-Executing Commands In An Interactive Session
- [Documentation] Execute Command always executes the command in a new shell.
- ... This means that changes to the environment are not persisted
- ... between subsequent Execute Command keyword calls.
- ... Write and Read Until variants can be used to operate in the same shell.
- Write cd ..
- Write echo Hello from the parent directory!
- ${output}= Read Until directory!
- Should End With ${output} Hello from the parent directory!
-
-List all the files
- [Documentation] List all the files in the remote machine
- ${output} ${stderr} ${rc}= Execute Command ls return_stderr=True return_rc=True
- ${msg}= Catenate output:${output} stderr:${stderr} rc:${rc}
- Log To Console ${msg}
-
-File Not Found
- [Documentation] This testcase is for testing ls command with non existing file
- ${output} ${stderr} ${rc}= Execute Command ls file_doesnotexist.txt return_stderr=True return_rc=True
- ${msg}= Catenate output:${output} stderr:${stderr} rc:${rc}
- Log To Console ${msg}
- Should Be Equal ${rc} ${2}
- Should Contain ${stderr} No such file or directory
-
-etc passwd entry
- [Documentation] This testcase is for testing /etc/passwd entry
- ${output} ${stderr} ${rc}= Execute Command grep manjunath /etc/passwd return_stderr=True return_rc=True
- ${msg}= Catenate output:${output} stderr:${stderr} rc:${rc}
- Log To Console ${msg}
- Should Be Equal ${rc} ${0}
- Should Contain ${output} manjunath
-
-*** Keywords ***
-Open Connection And Log In
- Open Connection ${HOST}
- Login ${USERNAME} ${PASSWORD}
diff --git a/tools/generate_argumentfile.sh b/tools/generate_argumentfile.sh
new file mode 100755
index 0000000..518a48f
--- /dev/null
+++ b/tools/generate_argumentfile.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+echo "--variable OPENBMC_HOST:$OPENBMC_HOST" > $ARG_FILE
+echo "--variable OPENBMC_USERNAME:$OPENBMC_USERNAME" >> $ARG_FILE
+echo "--variable OPENBMC_HOST:$OPENBMC_HOST" >> $ARG_FILE
diff --git a/tox.ini b/tox.ini
index fc08416..75ab527 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,32 +1,30 @@
[tox]
skipsdist = True
-[openbmcenv]
-sitepackages = False
-setenv = VIRTUAL_ENV={envdir}
-deps = setuptools
- -r{toxinidir}/requirements.txt
-
[testenv]
+passenv = *
+setenv = ARG_FILE={env:ARG_FILE:/tmp/argument_file.txt}
+whitelist_externals = *
install_command = pip install -U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
commands =
- python -m robot.run {posargs}
+ python -m robot.run --argumentfile {env:ARG_FILE:/tmp/argument_file.txt} {posargs}
[testenv:full]
-install_command = pip install -U {opts} {packages}
-deps = -r{toxinidir}/requirements.txt
+deps = {[testenv]deps}
+setenv = {[testenv]setenv}
commands =
- python -m robot.run .
+ python -m robot.run --argumentfile {env:ARG_FILE:/tmp/argument_file.txt} .
[testenv:tests]
-install_command = pip install -U {opts} {packages}
-deps = -r{toxinidir}/requirements.txt
+deps = {[testenv]deps}
+setenv = {[testenv]setenv}
commands =
- python -m robot.run tests
+ bash {toxinidir}/tools/generate_argumentfile.sh
+ python -m robot.run --argumentfile {env:ARG_FILE:/tmp/argument_file.txt} tests
[testenv:custom]
-install_command = pip install -U {opts} {packages}
-deps = -r{toxinidir}/requirements.txt
+deps = {[testenv]deps}
+setenv = {[testenv]setenv}
commands =
- python -m robot.run {posargs}
\ No newline at end of file
+ python -m robot.run --argumentfile {env:ARG_FILE:/tmp/argument_file.txt} {posargs}
\ No newline at end of file
--
2.6.4
More information about the openbmc
mailing list