behavex 4.1.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- behavex/.DS_Store +0 -0
- behavex/__init__.py +14 -0
- behavex/__main__.py +4 -0
- behavex/__pycache__/__init__.cpython-39.pyc +0 -0
- behavex/__pycache__/conf_mgr.cpython-39.pyc +0 -0
- behavex/__pycache__/execution_singleton.cpython-39.pyc +0 -0
- behavex/__pycache__/global_vars.cpython-39.pyc +0 -0
- behavex/__pycache__/utils.cpython-39.pyc +0 -0
- behavex/arguments.py +332 -0
- behavex/conf_behavex.cfg +5 -0
- behavex/conf_logging.cfg +26 -0
- behavex/conf_mgr.py +135 -0
- behavex/environment.py +247 -0
- behavex/execution_singleton.py +10 -0
- behavex/global_vars.py +98 -0
- behavex/outputs/__init__.py +2 -0
- behavex/outputs/__pycache__/__init__.cpython-39.pyc +0 -0
- behavex/outputs/__pycache__/jinja_mgr.cpython-39.pyc +0 -0
- behavex/outputs/__pycache__/output_strings.cpython-39.pyc +0 -0
- behavex/outputs/__pycache__/report_html.cpython-39.pyc +0 -0
- behavex/outputs/__pycache__/report_utils.cpython-39.pyc +0 -0
- behavex/outputs/bootstrap/css/behavex.css +386 -0
- behavex/outputs/bootstrap/css/bootstrap-theme.css +587 -0
- behavex/outputs/bootstrap/css/bootstrap-theme.min.css +6 -0
- behavex/outputs/bootstrap/css/bootstrap-theme.min.css.map +1 -0
- behavex/outputs/bootstrap/css/bootstrap.css +6757 -0
- behavex/outputs/bootstrap/css/bootstrap.min.css +6 -0
- behavex/outputs/bootstrap/css/bootstrap.min.css.map +1 -0
- behavex/outputs/bootstrap/css/pace-theme-loading-bar.min.css +1 -0
- behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
- behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
- behavex/outputs/bootstrap/js/bootstrap.js +2377 -0
- behavex/outputs/bootstrap/js/bootstrap.min.js +7 -0
- behavex/outputs/bootstrap/js/chart.js +12818 -0
- behavex/outputs/bootstrap/js/jquery-1.11.0.min.js +4 -0
- behavex/outputs/bootstrap/js/jquery-ui.min.js +7 -0
- behavex/outputs/bootstrap/js/jquery.tablesorter.min.js +2 -0
- behavex/outputs/bootstrap/js/jquery.tooltipster.min.js +1 -0
- behavex/outputs/bootstrap/js/pace.min.js +2 -0
- behavex/outputs/jinja/base.jinja2 +167 -0
- behavex/outputs/jinja/main.jinja2 +1047 -0
- behavex/outputs/jinja/manifest.jinja2 +18 -0
- behavex/outputs/jinja/xml.jinja2 +79 -0
- behavex/outputs/jinja/xml_json.jinja2 +67 -0
- behavex/outputs/jinja_mgr.py +352 -0
- behavex/outputs/output_strings.py +71 -0
- behavex/outputs/report_html.py +249 -0
- behavex/outputs/report_json.py +278 -0
- behavex/outputs/report_utils.py +471 -0
- behavex/outputs/report_xml.py +110 -0
- behavex/progress_bar.py +62 -0
- behavex/runner.py +1239 -0
- behavex/steps/__init__.py +4 -0
- behavex/utils.py +655 -0
- behavex-4.1.2.dist-info/METADATA +357 -0
- behavex-4.1.2.dist-info/RECORD +373 -0
- behavex-4.1.2.dist-info/WHEEL +5 -0
- behavex-4.1.2.dist-info/entry_points.txt +2 -0
- behavex-4.1.2.dist-info/licenses/LICENSE +21 -0
- behavex-4.1.2.dist-info/top_level.txt +8 -0
- build/lib/behavex/__init__.py +14 -0
- build/lib/behavex/__main__.py +4 -0
- build/lib/behavex/arguments.py +332 -0
- build/lib/behavex/conf_mgr.py +135 -0
- build/lib/behavex/environment.py +247 -0
- build/lib/behavex/execution_singleton.py +10 -0
- build/lib/behavex/global_vars.py +98 -0
- build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/behavex/progress_bar.py +62 -0
- build/lib/behavex/runner.py +1239 -0
- build/lib/behavex/steps/__init__.py +4 -0
- build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
- build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
- build/lib/build/lib/build/lib/docs/conf.py +57 -0
- build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
- build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
- build/lib/build/lib/docs/conf.py +57 -0
- build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/build/lib/tests/features/environment.py +3 -0
- build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/build/lib/venv/bin/activate_this.py +32 -0
- build/lib/docs/conf.py +57 -0
- build/lib/tests/features/crashing_features/environment.py +44 -0
- build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
- build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
- build/lib/tests/features/environment.py +3 -0
- build/lib/tests/features/secondary_features/__init__.py +0 -0
- build/lib/tests/features/secondary_features/environment.py +6 -0
- build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
- build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
- build/lib/tests/features/steps/__init__.py +0 -0
- build/lib/tests/features/steps/execution_steps.py +307 -0
- build/lib/tests/features/steps/install_steps.py +22 -0
- build/lib/venv/bin/activate_this.py +32 -0
- docs/conf.py +57 -0
- tests/features/crashing_features/environment.py +44 -0
- tests/features/crashing_features/steps/__init__.py +0 -0
- tests/features/crashing_features/steps/crashing_steps.py +41 -0
- tests/features/environment.py +3 -0
- tests/features/secondary_features/__init__.py +0 -0
- tests/features/secondary_features/environment.py +6 -0
- tests/features/secondary_features/steps/__init__.py +0 -0
- tests/features/secondary_features/steps/secondary_steps.py +58 -0
- tests/features/steps/__init__.py +0 -0
- tests/features/steps/execution_steps.py +307 -0
- tests/features/steps/install_steps.py +22 -0
- venv/bin/activate_this.py +32 -0
behavex/.DS_Store
ADDED
|
Binary file
|
behavex/__init__.py
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
""" Create environment variables related to the framework path and config,
|
|
3
|
+
that are needed in framework modules.
|
|
4
|
+
"""
|
|
5
|
+
# __future__ import absolute_import added for compatibility
|
|
6
|
+
from __future__ import absolute_import
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
|
|
10
|
+
# Set the framework path
|
|
11
|
+
os.environ['BEHAVEX_PATH'] = os.path.dirname(os.path.realpath(__file__))
|
|
12
|
+
# Set the features path
|
|
13
|
+
os.environ['FEATURES_PATH'] = os.environ.get('FEATURES_PATH', 'features')
|
|
14
|
+
|
behavex/__main__.py
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
behavex/arguments.py
ADDED
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
* BehaveX - Agile test wrapper on top of Behave (BDD)
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
Parse all framework arguments, the ones from BehaveX and
|
|
9
|
+
the ones from Behave supported by the wrapper
|
|
10
|
+
"""
|
|
11
|
+
# __future__ has been added to maintain compatibility
|
|
12
|
+
from __future__ import absolute_import
|
|
13
|
+
|
|
14
|
+
import argparse
|
|
15
|
+
|
|
16
|
+
BEHAVE_ARGS = [
|
|
17
|
+
'no_color',
|
|
18
|
+
'color',
|
|
19
|
+
'define',
|
|
20
|
+
'exclude',
|
|
21
|
+
'include',
|
|
22
|
+
'no_junit',
|
|
23
|
+
'junit',
|
|
24
|
+
'junit_directory',
|
|
25
|
+
'steps_catalog',
|
|
26
|
+
'no_skipped',
|
|
27
|
+
'show_skipped',
|
|
28
|
+
'lang',
|
|
29
|
+
'no_snippets',
|
|
30
|
+
'snippets',
|
|
31
|
+
'no_multiline',
|
|
32
|
+
'multiline',
|
|
33
|
+
'no_capture',
|
|
34
|
+
'name',
|
|
35
|
+
'capture',
|
|
36
|
+
'no_capture_stderr',
|
|
37
|
+
'capture_stderr',
|
|
38
|
+
'no_logcapture',
|
|
39
|
+
'logcapture',
|
|
40
|
+
'logging_level',
|
|
41
|
+
'logging_format',
|
|
42
|
+
'logging_datefmt',
|
|
43
|
+
'logging_filter',
|
|
44
|
+
'logging_clear_handlers',
|
|
45
|
+
'no_summary',
|
|
46
|
+
'summary',
|
|
47
|
+
'outfile',
|
|
48
|
+
'quiet',
|
|
49
|
+
'no_source',
|
|
50
|
+
'show_source',
|
|
51
|
+
'stage',
|
|
52
|
+
'stop',
|
|
53
|
+
'tags',
|
|
54
|
+
'no_timings',
|
|
55
|
+
'show_timings',
|
|
56
|
+
'verbose',
|
|
57
|
+
'wip',
|
|
58
|
+
'expand',
|
|
59
|
+
'lang_list',
|
|
60
|
+
'lang_help',
|
|
61
|
+
'tags_help',
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
BEHAVEX_ARGS = [
|
|
65
|
+
'output_folder',
|
|
66
|
+
'config',
|
|
67
|
+
'dry_run',
|
|
68
|
+
'tags',
|
|
69
|
+
'parallel_scheme',
|
|
70
|
+
'parallel_processes',
|
|
71
|
+
'show_progress_bar',
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def parse_arguments(args):
|
|
76
|
+
"""Process all command line arguments"""
|
|
77
|
+
parser = argparse.ArgumentParser(
|
|
78
|
+
description='BehaveX - test automation wrapper on top of Behave'
|
|
79
|
+
)
|
|
80
|
+
parser.add_argument("paths", nargs="*",
|
|
81
|
+
help="Features path")
|
|
82
|
+
parser.add_argument(
|
|
83
|
+
'-c',
|
|
84
|
+
'--config',
|
|
85
|
+
help='BehaveX configuration file to use by default.',
|
|
86
|
+
required=False,
|
|
87
|
+
)
|
|
88
|
+
parser.add_argument(
|
|
89
|
+
'-t',
|
|
90
|
+
'--tags',
|
|
91
|
+
action='append',
|
|
92
|
+
help='Tags used to properly filter the tests to run. \
|
|
93
|
+
When multiple --tags (-t) arguments are \
|
|
94
|
+
provided it means a logical AND \
|
|
95
|
+
(e.g. -t @TAG_1 -t @TAG_2 means \
|
|
96
|
+
@TAG_1 AND @TAG_2). \
|
|
97
|
+
When multiple comma separated tags are \
|
|
98
|
+
provided as part of the same --tags (-t) \
|
|
99
|
+
argument it means a logical OR \
|
|
100
|
+
(e.g. -t @TAG_1,@TAG_2 means \
|
|
101
|
+
@TAG_1 OR @TAG_2)',
|
|
102
|
+
required=False,
|
|
103
|
+
)
|
|
104
|
+
parser.add_argument(
|
|
105
|
+
'-o',
|
|
106
|
+
'--output-folder',
|
|
107
|
+
default='',
|
|
108
|
+
help='Specifies the output folder path where the test report will be stored. '
|
|
109
|
+
'The path can be specified as a relative path. The value of this argument '
|
|
110
|
+
'can be accessed in testing implementations using the "OUTPUT" environment variable',
|
|
111
|
+
required=False,
|
|
112
|
+
)
|
|
113
|
+
parser.add_argument(
|
|
114
|
+
'-d',
|
|
115
|
+
'--dry-run',
|
|
116
|
+
default='',
|
|
117
|
+
action='store_true',
|
|
118
|
+
help='Invokes formatters without executing the steps.',
|
|
119
|
+
required=False,
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
# ------------------- Behave arguments -------------------#
|
|
123
|
+
parser.add_argument(
|
|
124
|
+
'--no-color',
|
|
125
|
+
'--no_color',
|
|
126
|
+
help='Disable the use of ANSI color escapes.',
|
|
127
|
+
action='store_true',
|
|
128
|
+
required=False,
|
|
129
|
+
)
|
|
130
|
+
parser.add_argument(
|
|
131
|
+
'--color',
|
|
132
|
+
help='Use ANSI color escapes. This is the default '
|
|
133
|
+
'behaviour. This switch is used to override a '
|
|
134
|
+
'configuration file setting.',
|
|
135
|
+
action='store_true',
|
|
136
|
+
required=False,
|
|
137
|
+
)
|
|
138
|
+
parser.add_argument(
|
|
139
|
+
'-D',
|
|
140
|
+
'--define',
|
|
141
|
+
help='Define user-specific data in config.userdata '
|
|
142
|
+
'dictionary. Example: -D foo=bar to store it in '
|
|
143
|
+
"config.userdata['foo'].",
|
|
144
|
+
action='append',
|
|
145
|
+
required=False,
|
|
146
|
+
)
|
|
147
|
+
parser.add_argument(
|
|
148
|
+
'--exclude',
|
|
149
|
+
help="Don't run feature files matching regular expression PATTERN.",
|
|
150
|
+
required=False,
|
|
151
|
+
)
|
|
152
|
+
parser.add_argument(
|
|
153
|
+
'-i',
|
|
154
|
+
'--include',
|
|
155
|
+
help='Only run feature files matching regular expression PATTERN.',
|
|
156
|
+
required=False,
|
|
157
|
+
)
|
|
158
|
+
parser.add_argument(
|
|
159
|
+
'--name',
|
|
160
|
+
help='Execute feature elements matching a part of the given name. '
|
|
161
|
+
'If this option is specified more than once, '
|
|
162
|
+
'it will match against all given names.',
|
|
163
|
+
required=False,
|
|
164
|
+
)
|
|
165
|
+
parser.add_argument(
|
|
166
|
+
'--no-capture',
|
|
167
|
+
'--no_capture',
|
|
168
|
+
help="Don't capture stdout (any stdout output will be printed immediately.)",
|
|
169
|
+
default=False,
|
|
170
|
+
action='store_true',
|
|
171
|
+
required=False,
|
|
172
|
+
)
|
|
173
|
+
parser.add_argument(
|
|
174
|
+
'--capture',
|
|
175
|
+
help='Capture stdout (any stdout output will be '
|
|
176
|
+
'printed if there is a failure.) This is the '
|
|
177
|
+
'default behaviour. This switch is used to '
|
|
178
|
+
'override a configuration file setting.',
|
|
179
|
+
action='store_true',
|
|
180
|
+
required=False,
|
|
181
|
+
)
|
|
182
|
+
parser.add_argument(
|
|
183
|
+
'--no-capture-stderr',
|
|
184
|
+
'--no_capture_stderr',
|
|
185
|
+
help="Don't capture stderr (any stderr output will be printed immediately.)",
|
|
186
|
+
default=False,
|
|
187
|
+
action='store_true',
|
|
188
|
+
required=False,
|
|
189
|
+
)
|
|
190
|
+
parser.add_argument(
|
|
191
|
+
'--capture-stderr',
|
|
192
|
+
'--capture_stderr',
|
|
193
|
+
help='Capture stderr (any stderr output will be pri'
|
|
194
|
+
'nted if there is a failure) This is the default'
|
|
195
|
+
' behaviour. This switch is used to override a '
|
|
196
|
+
'configuration file setting.',
|
|
197
|
+
default=False,
|
|
198
|
+
action='store_true',
|
|
199
|
+
required=False,
|
|
200
|
+
)
|
|
201
|
+
parser.add_argument(
|
|
202
|
+
'--no-logcapture',
|
|
203
|
+
'--no_logcapture',
|
|
204
|
+
help="Don't capture logging. Logging configuration will be left intact.",
|
|
205
|
+
action='store_true',
|
|
206
|
+
default=False,
|
|
207
|
+
required=False,
|
|
208
|
+
)
|
|
209
|
+
parser.add_argument(
|
|
210
|
+
'--log-capture',
|
|
211
|
+
'--log_capture',
|
|
212
|
+
help='Capture logging. All logging during a step will'
|
|
213
|
+
' be captured and displayed in the event of a '
|
|
214
|
+
'failure. This is the default behaviour. This '
|
|
215
|
+
'switch is used to override a configuration file'
|
|
216
|
+
' setting.',
|
|
217
|
+
action='store_true',
|
|
218
|
+
required=False,
|
|
219
|
+
)
|
|
220
|
+
# parser.add_argument('--summary',
|
|
221
|
+
# help="Display the summary at the end of the run.",
|
|
222
|
+
# action="store_true",
|
|
223
|
+
# required=False)
|
|
224
|
+
# parser.add_argument('-q',
|
|
225
|
+
# '--quiet',
|
|
226
|
+
# help="Alias for --no-snippets --no-source.",
|
|
227
|
+
# action="store_true",
|
|
228
|
+
# required=False)
|
|
229
|
+
# parser.add_argument('-s',
|
|
230
|
+
# '--no-source',
|
|
231
|
+
# help="Don't print the file and line of the step d"
|
|
232
|
+
# "efinition with the steps.",
|
|
233
|
+
# action="store_true",
|
|
234
|
+
# required=False)
|
|
235
|
+
# parser.add_argument('--show-source',
|
|
236
|
+
# help="Print the file and line of the step definition "
|
|
237
|
+
# "with the steps. This is the default behaviour."
|
|
238
|
+
# "This switch is used to override a configuration"
|
|
239
|
+
# " file setting.",
|
|
240
|
+
# action='store_true',
|
|
241
|
+
# required=False)
|
|
242
|
+
parser.add_argument(
|
|
243
|
+
'-ns',
|
|
244
|
+
'--no-snippets',
|
|
245
|
+
'--no_snippets',
|
|
246
|
+
help="Don't print snippets for unimplemented steps.",
|
|
247
|
+
default=False,
|
|
248
|
+
action='store_true',
|
|
249
|
+
required=False,
|
|
250
|
+
)
|
|
251
|
+
parser.add_argument(
|
|
252
|
+
'--stop',
|
|
253
|
+
help='Specifies that the test execution should stop at the first failure. '
|
|
254
|
+
'Note that this argument is not supported for parallel test executions',
|
|
255
|
+
action='store_true',
|
|
256
|
+
required=False,
|
|
257
|
+
)
|
|
258
|
+
parser.add_argument(
|
|
259
|
+
'--tags-help',
|
|
260
|
+
'--tags_help',
|
|
261
|
+
help='Show help for tag expressions.',
|
|
262
|
+
action='store_true',
|
|
263
|
+
required=False,
|
|
264
|
+
)
|
|
265
|
+
# -------------------- adding lastly ---------------------------------------
|
|
266
|
+
parser.add_argument(
|
|
267
|
+
'--logging-level',
|
|
268
|
+
'--logging_level',
|
|
269
|
+
default='INFO',
|
|
270
|
+
choices=['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG', 'NOTSET'],
|
|
271
|
+
help='Specifies the logging level to capture.',
|
|
272
|
+
required=False,
|
|
273
|
+
)
|
|
274
|
+
parser.add_argument(
|
|
275
|
+
'--parallel-processes',
|
|
276
|
+
default=1,
|
|
277
|
+
type=int,
|
|
278
|
+
help='Specifies the number of parallel processes that can be executed simultaneously.',
|
|
279
|
+
required=False,
|
|
280
|
+
)
|
|
281
|
+
parser.add_argument(
|
|
282
|
+
'--parallel-scheme',
|
|
283
|
+
choices=['feature', 'scenario'],
|
|
284
|
+
default='scenario',
|
|
285
|
+
help="Specifies whether parallel execution should be performed at the scenario or feature level.",
|
|
286
|
+
required=False,
|
|
287
|
+
)
|
|
288
|
+
parser.add_argument(
|
|
289
|
+
'--parallel-delay',
|
|
290
|
+
type=int,
|
|
291
|
+
default=0,
|
|
292
|
+
help='Delay in milliseconds before starting each parallel process')
|
|
293
|
+
parser.add_argument(
|
|
294
|
+
'-ip',
|
|
295
|
+
'--include-paths',
|
|
296
|
+
default=[],
|
|
297
|
+
nargs='*',
|
|
298
|
+
help='Filters the test set to the specified list of features.'
|
|
299
|
+
'or feature file locations (FEATURE_FILE:LINE).',
|
|
300
|
+
)
|
|
301
|
+
parser.add_argument(
|
|
302
|
+
'-rf',
|
|
303
|
+
'--rerun-failures',
|
|
304
|
+
help='Enables re-execution of the failing scenarios. '
|
|
305
|
+
'After each execution, the failing scenarios are saved '
|
|
306
|
+
'in a "failing_scenarios.txt" file in the output folder. '
|
|
307
|
+
'This argument specifies the location of the "failing_scenarios.txt" file. '
|
|
308
|
+
'For example: --rf ./output/failing_scenarios.txt',
|
|
309
|
+
required=False
|
|
310
|
+
)
|
|
311
|
+
parser.add_argument(
|
|
312
|
+
'-spb',
|
|
313
|
+
'--show-progress-bar',
|
|
314
|
+
help="Shows the execution progress bar in console.",
|
|
315
|
+
default=False,
|
|
316
|
+
action='store_true',
|
|
317
|
+
required=False,
|
|
318
|
+
)
|
|
319
|
+
|
|
320
|
+
# parser.add_argument('--logging-format',
|
|
321
|
+
# help="Specify custom format to print statements. Uses "
|
|
322
|
+
# " the same format as used by standard logging "
|
|
323
|
+
# "handlers. The default is (%levelname)s:w%(name)s:"
|
|
324
|
+
# "%(message)s%.",
|
|
325
|
+
# required=False)
|
|
326
|
+
# parser.add_argument('--logging-datefmt',
|
|
327
|
+
# help="Specify custom date/time format to print "
|
|
328
|
+
# "statements. Uses the same format as used by "
|
|
329
|
+
# "standard logging handlers.",
|
|
330
|
+
# required=False)
|
|
331
|
+
#
|
|
332
|
+
return parser.parse_args(args)
|
behavex/conf_behavex.cfg
ADDED
behavex/conf_logging.cfg
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[loggers]
|
|
2
|
+
keys=root
|
|
3
|
+
|
|
4
|
+
[handlers]
|
|
5
|
+
keys=consoleHandler
|
|
6
|
+
|
|
7
|
+
[formatters]
|
|
8
|
+
keys=simpleFormatter
|
|
9
|
+
|
|
10
|
+
[file_handler]
|
|
11
|
+
encoding=utf-8-sig
|
|
12
|
+
|
|
13
|
+
[logger_root]
|
|
14
|
+
level=DEBUG
|
|
15
|
+
handlers=consoleHandler
|
|
16
|
+
|
|
17
|
+
[handler_consoleHandler]
|
|
18
|
+
class=StreamHandler
|
|
19
|
+
level=DEBUG
|
|
20
|
+
encoding=utf-8-sig
|
|
21
|
+
formatter=simpleFormatter
|
|
22
|
+
args=(sys.stdout, )
|
|
23
|
+
|
|
24
|
+
[formatter_simpleFormatter]
|
|
25
|
+
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
|
26
|
+
datefmt=%H:%M:%S
|
behavex/conf_mgr.py
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
/*
|
|
4
|
+
* BehaveX - Agile test wrapper on top of Behave (BDD)
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
This module process the configuration required by the framework. Default values
|
|
8
|
+
are used if no config file is provided.
|
|
9
|
+
"""
|
|
10
|
+
# pylint: disable=W0703
|
|
11
|
+
# pylint: disable=W0603
|
|
12
|
+
|
|
13
|
+
from __future__ import absolute_import
|
|
14
|
+
|
|
15
|
+
import os
|
|
16
|
+
|
|
17
|
+
from configobj import ConfigObj
|
|
18
|
+
from validate import Validator
|
|
19
|
+
|
|
20
|
+
from behavex.execution_singleton import ExecutionSingleton
|
|
21
|
+
|
|
22
|
+
CONFIG = None
|
|
23
|
+
CONFIG_PATH = None
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def get_config():
|
|
27
|
+
"""Returns a dictionary containing
|
|
28
|
+
the framework configuration values"""
|
|
29
|
+
config_spec = """
|
|
30
|
+
[output]
|
|
31
|
+
path=string(default="output")
|
|
32
|
+
|
|
33
|
+
[progress_bar]
|
|
34
|
+
print_updates_in_new_lines=boolean(default=False)
|
|
35
|
+
|
|
36
|
+
[test_run]
|
|
37
|
+
tags_to_skip=string(default="")
|
|
38
|
+
|
|
39
|
+
[params]
|
|
40
|
+
requirements_config=string(default="")
|
|
41
|
+
tags=list(default=list())
|
|
42
|
+
dry_run=boolean(default=False)
|
|
43
|
+
no_color=boolean(default=False)
|
|
44
|
+
define=string(default="")
|
|
45
|
+
exclude=string(default="")
|
|
46
|
+
include=string(default="")
|
|
47
|
+
name=string(default="")
|
|
48
|
+
no_capture=boolean(default=False)
|
|
49
|
+
capture=boolean(default=True)
|
|
50
|
+
capture_stderr=boolean(default=False)
|
|
51
|
+
no_logcapture=boolean(default=False)
|
|
52
|
+
logcapture=boolean(default=True)
|
|
53
|
+
no_snippets=boolean(default=False)
|
|
54
|
+
stop=boolean(default=False)
|
|
55
|
+
tags_help=boolean(default=False)
|
|
56
|
+
logging_level=option('CRITICAL', \
|
|
57
|
+
'ERROR', \
|
|
58
|
+
'WARNING', \
|
|
59
|
+
'INFO', \
|
|
60
|
+
'DEBUG', \
|
|
61
|
+
'NOTSET', \
|
|
62
|
+
default='INFO')
|
|
63
|
+
parallel_processes=integer(default=1)
|
|
64
|
+
parallel_scheme=option('feature', 'scenario', default='scenario')
|
|
65
|
+
include_paths=list(default=list())
|
|
66
|
+
rerun_failures=string(default="")
|
|
67
|
+
"""
|
|
68
|
+
global CONFIG
|
|
69
|
+
global CONFIG_PATH
|
|
70
|
+
if CONFIG is None or CONFIG_PATH != os.environ.get('CONFIG'):
|
|
71
|
+
CONFIG_PATH = os.environ.get('CONFIG')
|
|
72
|
+
spec = config_spec.split('\n')
|
|
73
|
+
validator = Validator()
|
|
74
|
+
CONFIG = ConfigObj(CONFIG_PATH, configspec=spec)
|
|
75
|
+
CONFIG.validate(validator, copy=True)
|
|
76
|
+
|
|
77
|
+
return CONFIG
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class ConfigRun(metaclass=ExecutionSingleton):
|
|
81
|
+
def __init__(self):
|
|
82
|
+
self.config = get_config()
|
|
83
|
+
self.args = None
|
|
84
|
+
self.environ = {}
|
|
85
|
+
|
|
86
|
+
def prepare_environment(self):
|
|
87
|
+
output = self.get_param('output.path', 'output_folder')
|
|
88
|
+
self.environ['output'] = output
|
|
89
|
+
self.environ['temp'] = os.path.join(output, 'temp')
|
|
90
|
+
self.environ['logs'] = os.path.join(output, 'outputs', 'logs')
|
|
91
|
+
|
|
92
|
+
def set_args(self, args):
|
|
93
|
+
self.args = args
|
|
94
|
+
self.prepare_environment()
|
|
95
|
+
|
|
96
|
+
def set_env(self, key, value):
|
|
97
|
+
self.environ[key] = value
|
|
98
|
+
|
|
99
|
+
def get_param_config(self, key_chain):
|
|
100
|
+
keys = key_chain.split('.')
|
|
101
|
+
if len(keys) == 1:
|
|
102
|
+
keys = ['params'] + keys
|
|
103
|
+
dictionary = self.config
|
|
104
|
+
for key in keys:
|
|
105
|
+
result = dictionary.get(key, '')
|
|
106
|
+
if isinstance(result, str):
|
|
107
|
+
return result
|
|
108
|
+
if isinstance(result, dict):
|
|
109
|
+
dictionary = result
|
|
110
|
+
else:
|
|
111
|
+
return result
|
|
112
|
+
return ''
|
|
113
|
+
|
|
114
|
+
def get_param(self, key_chain, arg=None):
|
|
115
|
+
if not arg:
|
|
116
|
+
arg = key_chain.split('.')[-1]
|
|
117
|
+
if getattr(self.args, arg):
|
|
118
|
+
return getattr(self.args, arg)
|
|
119
|
+
else:
|
|
120
|
+
return self.get_param_config(key_chain)
|
|
121
|
+
|
|
122
|
+
def get_env(self, key, optional=None):
|
|
123
|
+
return self.environ.get(key.lower(), optional)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def get_param(key_chain, arg=None):
|
|
127
|
+
return ConfigRun().get_param(key_chain, arg)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def get_env(key, optional=None):
|
|
131
|
+
return ConfigRun().get_env(key, optional)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def set_env(key, value):
|
|
135
|
+
ConfigRun().set_env(key, value)
|