Yoda¶
You have 2 options how to install Yoda extension.
Package¶
Install it via Python package managers PIP or easy_install.
$ sudo pip install --no-binary :all: hydratk-ext-yoda
$ sudo easy_install hydratk-ext-yoda
Note
PIP needs option –no-binary to run setup.py install. Otherwise it runs setup.py bdist_wheel.
Source¶
Download the source code from GitHub or PyPi and install it manually. Full PyPi URL contains MD5 hash, adapt sample code.
$ git clone https://github.com/hydratk/hydratk-ext-yoda.git $ cd ./hydratk-ext-yoda $ sudo python setup.py install$ wget https://python.org/pypi/hydratk-ext-yoda -O hydratk-ext-yoda.tar.gz $ tar -xf hydratk-ext-yoda.tar.gz $ cd ./hydratk-ext-yoda $ sudo python setup.py install
Requirements¶
Several python modules are used. These modules will be installed automatically, if not installed yet.
- hydratk
- lxml
- pytz
- simplejson
Module lxml requires several libraries which will be installed via Linux package managers, if not installed yet.
lxml
Debian apt-get: python-lxml, libxml2-dev, libxslt1-dev
Red Hat yum: python-lxml, libxml2-devel, libxslt-devel
Fedora dnf: python-lxml, libxml2-devel, libxslt-devel
SuSe zypper: python-lxml, libxml2-devel, libxslt-devel
FreeBSD pkg: py27-lxml
Note
Installation for Python 3 has some differences. Library py36-lxml is installed instead of py27-lxml.
Installation¶
See installation example.
************************************** * Running pre-install tasks * ************************************** *** Running task: version_update *** *** Running task: install_libs *** Checking python-lxml...FAILED Unable to locate package python-lxml Checking libxslt1-dev...FAILED Unable to locate package libxslt1-dev Checking libxml2-dev...FAILED Unable to locate package libxml2-dev Installing package python-lxml Installing package libxslt1-dev Installing package libxml2-dev *** Running task: install_modules *** Module hydratk already installed with version 0.5.0rc1 Module lxml already installed with version 3.4.0 Installing module pytz>=2016.6.1 pip install "pytz>=2016.6.1" Installing module simplejson>=3.8.2 pip install "simplejson>=3.8.2" running install running bdist_egg running egg_info creating src/hydratk_ext_yoda.egg-info writing src/hydratk_ext_yoda.egg-info/PKG-INFO writing top-level names to src/hydratk_ext_yoda.egg-info/top_level.txt writing dependency_links to src/hydratk_ext_yoda.egg-info/dependency_links.txt writing entry points to src/hydratk_ext_yoda.egg-info/entry_points.txt writing manifest file 'src/hydratk_ext_yoda.egg-info/SOURCES.txt' reading manifest file 'src/hydratk_ext_yoda.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'src/hydratk_ext_yoda.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/hydratk ... creating build/bdist.linux-x86_64/egg/EGG-INFO copying src/hydratk_ext_yoda.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO copying src/hydratk_ext_yoda.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying src/hydratk_ext_yoda.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying src/hydratk_ext_yoda.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying src/hydratk_ext_yoda.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO copying src/hydratk_ext_yoda.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO creating dist creating 'dist/hydratk_ext_yoda-0.2.3rc1-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it removing 'build/bdist.linux-x86_64/egg' (and everything under it) Processing hydratk_ext_yoda-0.2.3rc1-py2.7.egg creating /usr/local/lib/python2.7/dist-packages/hydratk_ext_yoda-0.2.3rc1-py2.7.egg Extracting hydratk_ext_yoda-0.2.3rc1-py2.7.egg to /usr/local/lib/python2.7/dist-packages Adding hydratk-ext-yoda 0.2.3rc1 to easy-install.pth file Installing yoda script to /usr/local/bin Installed /usr/local/lib/python2.7/dist-packages/hydratk_ext_yoda-0.2.3rc1-py2.7.egg Processing dependencies for hydratk-ext-yoda==0.2.3rc1 Finished processing dependencies for hydratk-ext-yoda==0.2.3rc1 ************************************** * Running post-install tasks * ************************************** *** Running task: set_config *** Creating directory /etc/hydratk/conf.d Copying file etc/hydratk/conf.d/hydratk-ext-yoda.conf to /etc/hydratk/conf.d *** Running task: create_dirs *** Creating directory /tmp/test_output/html Creating directory /tmp/test_output/text *** Running task: copy_files *** Creating directory /var/local/hydratk/yoda/db_testdata Copying file var/local/hydratk/yoda/db_testdata/db_struct.sql to /var/local/hydratk/yoda/db_testdata Creating directory /var/local/hydratk/yoda/yoda-tests/test1 Copying file var/local/hydratk/yoda/yoda-tests/test1/example1.jedi to /var/local/hydratk/yoda/yoda-tests/test1 Creating directory /var/local/hydratk/yoda/lib/yodalib Copying file var/local/hydratk/yoda/lib/yodalib/__init__.py to /var/local/hydratk/yoda/lib/yodalib Creating directory /var/local/hydratk/yoda/templates/test_reports/html/default Copying file var/local/hydratk/yoda/templates/test_reports/html/default/body.html to /var/local/hydratk/yoda/templates/test_reports/html/default Creating directory /var/local/hydratk/yoda/helpers/yodahelpers Copying file var/local/hydratk/yoda/helpers/yodahelpers/__init__.py to /var/local/hydratk/yoda/helpers/yodahelpers Copying file var/local/hydratk/yoda/db_testdata/db_data.sql to /var/local/hydratk/yoda/db_testdata *** Running task: set_access_rights *** Setting rights a+rwx for /var/local/hydratk Setting rights a+r for /etc/hydratk Setting rights a+rwx for /tmp/test_output *** Running task: set_manpage *** Application installs following (paths depend on your OS configuration) * yoda command in /usr/local/bin/yoda * modules in /usr/local/lib/python2.7/dist-packages/hydratk-ext-yoda-0.2.3-py2.7egg * configuration file in /etc/hydratk/conf.d/hydratk-ext-yoda.conf * application folder in /var/local/hydratk/yoda
Run¶
When installation is finished you can run the application.
Check hydratk-ext-yoda module is installed.
$ pip list | grep hydratk-ext-yoda hydratk-ext-yoda (0.2.3)
Check installed extensions
$ htk list-extensions Yoda: Yoda v0.2.3 (c) [2014 - 2017 Petr Czaderna <pc@hydratk.org>]
Type command htk help and detailed info is displayed. Type man yoda to display manual page.
$ htk help Commands: yoda-create-test-results-db - creates database for storing test results base on specified dsn configuration Options: --yoda-db-results-dsn <dsn> - test results database access definition --yoda-test-repo-root-dir <path> - test repository root directory yoda-create-testdata-db - creates database for test data Options: --yoda-db-testdata-dsn <dsn> - test data database access definition yoda-run - starts the Yoda tester Options: --yoda-db-results-dsn <dsn> - test results database access definition --yoda-test-path <path> - test scenario path --yoda-test-repo-root-dir <path> - test repository root directory --yoda-test-results-output-create <state> - activates/deactivates native test results output handler --yoda-test-run-name <name> - test run identification -a, --yoda-test-results-output-handler <type> - set the test results output handler type yoda-simul - starts the Yoda tester in test simulation mode Options: --yoda-db-results-dsn <dsn> - test results database access definition --yoda-test-path <path> - test scenario path --yoda-test-repo-root-dir <path> - test repository root directory --yoda-test-results-output-create <state> - activates/deactivates native test results output handler --yoda-test-run-name <name> - test run identification -a, --yoda-test-results-output-handler <type> - set the test results output handler type
You can run Yoda also in standalone mode.
$ yoda help Yoda v0.2.3 (c) 2014 - 2017 Petr Czaderna <pc@hydratk.org> Usage: /usr/local/bin/yoda [options] command Commands: create-test-results-db - creates database for storing test results base on specified dsn configuration Options: --db-results-dsn <dsn> - test results database access definition -tr, --test-repo-root-dir <path> - test repository root directory create-testdata-db - creates database for test data Options: --db-testdata-dsn <dsn> - test data database access definition help - prints help run - starts the Yoda tester Options: --db-results-dsn <dsn> - test results database access definition -oc, --test-results-output-create <state> - activates/deactivates native test results output handler -oh, --test-results-output-handler <type> - set the test results output handler type -tn, --test-run-name <name> - test run identification -tp, --test-path <path> - test scenario path -tr, --test-repo-root-dir <path> - test repository root directory simul - starts the Yoda tester in test simulation mode Options: --db-results-dsn <dsn> - test results database access definition -oc, --test-results-output-create <state> - activates/deactivates native test results output handler -oh, --test-results-output-handler <type> - set the test results output handler type -tn, --test-run-name <name> - test run identification -tp, --test-path <path> - test scenario path -tr, --test-repo-root-dir <path> - test repository root directory Global Options: -c, --config <file> - reads the alternate configuration file -d, --debug <level> - debug turned on with specified level > 0 -e, --debug-channel <channel number, ..> - debug channel filter turned on -f, --force - enforces command -h, --home - sets htk_root_dir to the current user home directory -i, --interactive - turns on interactive mode -l, --language <language> - sets the text output language, the list of available languages is specified in the docs -m, --run-mode <mode> - sets the running mode, the list of available languages is specified in the docs
Upgrade¶
Use same procedure as for installation. Use command option –upgrade for pip, easy_install, –force for setup.py. If configuration file differs from default settings the file is backuped (extension _old) and replaced by default. Adapt the configuration if needed.
Uninstall¶
Run command htkuninstall. Use option -y if you want to uninstall also dependent Python modules (for advanced user).