busser-behave 0.1.3
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.
- checksums.yaml +7 -0
- data/.cane +0 -0
- data/.gitignore +17 -0
- data/.tailor +4 -0
- data/.travis.yml +11 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +3 -0
- data/LICENSE +15 -0
- data/README.md +41 -0
- data/Rakefile +68 -0
- data/busser-behave.gemspec +30 -0
- data/features/plugin_install_command.feature +11 -0
- data/features/plugin_list_command.feature +8 -0
- data/features/support/env.rb +13 -0
- data/features/test_command.feature +31 -0
- data/lib/busser/behave/version.rb +26 -0
- data/lib/busser/runner_plugin/behave.rb +37 -0
- data/vendor/behave/CHANGES.rst +483 -0
- data/vendor/behave/LICENSE +23 -0
- data/vendor/behave/MANIFEST.in +37 -0
- data/vendor/behave/PROJECT_INFO.rst +21 -0
- data/vendor/behave/README.rst +112 -0
- data/vendor/behave/VERSION.txt +1 -0
- data/vendor/behave/behave.ini +22 -0
- data/vendor/behave/behave/__init__.py +30 -0
- data/vendor/behave/behave/__main__.py +187 -0
- data/vendor/behave/behave/_stepimport.py +185 -0
- data/vendor/behave/behave/_types.py +134 -0
- data/vendor/behave/behave/api/__init__.py +7 -0
- data/vendor/behave/behave/api/async_step.py +283 -0
- data/vendor/behave/behave/capture.py +227 -0
- data/vendor/behave/behave/compat/__init__.py +5 -0
- data/vendor/behave/behave/compat/collections.py +20 -0
- data/vendor/behave/behave/configuration.py +788 -0
- data/vendor/behave/behave/contrib/__init__.py +0 -0
- data/vendor/behave/behave/contrib/scenario_autoretry.py +73 -0
- data/vendor/behave/behave/formatter/__init__.py +12 -0
- data/vendor/behave/behave/formatter/_builtins.py +39 -0
- data/vendor/behave/behave/formatter/_registry.py +135 -0
- data/vendor/behave/behave/formatter/ansi_escapes.py +91 -0
- data/vendor/behave/behave/formatter/base.py +200 -0
- data/vendor/behave/behave/formatter/formatters.py +57 -0
- data/vendor/behave/behave/formatter/json.py +253 -0
- data/vendor/behave/behave/formatter/null.py +12 -0
- data/vendor/behave/behave/formatter/plain.py +158 -0
- data/vendor/behave/behave/formatter/pretty.py +351 -0
- data/vendor/behave/behave/formatter/progress.py +287 -0
- data/vendor/behave/behave/formatter/rerun.py +114 -0
- data/vendor/behave/behave/formatter/sphinx_steps.py +372 -0
- data/vendor/behave/behave/formatter/sphinx_util.py +118 -0
- data/vendor/behave/behave/formatter/steps.py +497 -0
- data/vendor/behave/behave/formatter/tags.py +178 -0
- data/vendor/behave/behave/i18n.py +614 -0
- data/vendor/behave/behave/importer.py +102 -0
- data/vendor/behave/behave/json_parser.py +264 -0
- data/vendor/behave/behave/log_capture.py +233 -0
- data/vendor/behave/behave/matchers.py +402 -0
- data/vendor/behave/behave/model.py +1737 -0
- data/vendor/behave/behave/model_core.py +416 -0
- data/vendor/behave/behave/model_describe.py +105 -0
- data/vendor/behave/behave/parser.py +615 -0
- data/vendor/behave/behave/reporter/__init__.py +0 -0
- data/vendor/behave/behave/reporter/base.py +45 -0
- data/vendor/behave/behave/reporter/junit.py +473 -0
- data/vendor/behave/behave/reporter/summary.py +94 -0
- data/vendor/behave/behave/runner.py +753 -0
- data/vendor/behave/behave/runner_util.py +417 -0
- data/vendor/behave/behave/step_registry.py +112 -0
- data/vendor/behave/behave/tag_expression.py +111 -0
- data/vendor/behave/behave/tag_matcher.py +465 -0
- data/vendor/behave/behave/textutil.py +137 -0
- data/vendor/behave/behave/userdata.py +130 -0
- data/vendor/behave/behave4cmd0/__all_steps__.py +12 -0
- data/vendor/behave/behave4cmd0/__init__.py +5 -0
- data/vendor/behave/behave4cmd0/__setup.py +11 -0
- data/vendor/behave/behave4cmd0/command_shell.py +216 -0
- data/vendor/behave/behave4cmd0/command_shell_proc.py +256 -0
- data/vendor/behave/behave4cmd0/command_steps.py +532 -0
- data/vendor/behave/behave4cmd0/command_util.py +147 -0
- data/vendor/behave/behave4cmd0/failing_steps.py +49 -0
- data/vendor/behave/behave4cmd0/log/__init__.py +1 -0
- data/vendor/behave/behave4cmd0/log/steps.py +395 -0
- data/vendor/behave/behave4cmd0/note_steps.py +29 -0
- data/vendor/behave/behave4cmd0/passing_steps.py +36 -0
- data/vendor/behave/behave4cmd0/pathutil.py +146 -0
- data/vendor/behave/behave4cmd0/setup_command_shell.py +24 -0
- data/vendor/behave/behave4cmd0/textutil.py +304 -0
- data/vendor/behave/bin/behave +44 -0
- data/vendor/behave/bin/behave.cmd +10 -0
- data/vendor/behave/bin/behave.junit_filter.py +85 -0
- data/vendor/behave/bin/behave.step_durations.py +163 -0
- data/vendor/behave/bin/behave2cucumber_json.py +63 -0
- data/vendor/behave/bin/behave_cmd.py +44 -0
- data/vendor/behave/bin/convert_i18n_yaml.py +77 -0
- data/vendor/behave/bin/explore_platform_encoding.py +24 -0
- data/vendor/behave/bin/i18n.yml +621 -0
- data/vendor/behave/bin/invoke +8 -0
- data/vendor/behave/bin/invoke.cmd +9 -0
- data/vendor/behave/bin/json.format.py +167 -0
- data/vendor/behave/bin/jsonschema_validate.py +122 -0
- data/vendor/behave/bin/make_localpi.py +279 -0
- data/vendor/behave/bin/project_bootstrap.sh +30 -0
- data/vendor/behave/bin/toxcmd.py +270 -0
- data/vendor/behave/bin/toxcmd3.py +270 -0
- data/vendor/behave/conftest.py +27 -0
- data/vendor/behave/docs/Makefile +154 -0
- data/vendor/behave/docs/_static/agogo.css +501 -0
- data/vendor/behave/docs/_static/behave_logo.png +0 -0
- data/vendor/behave/docs/_static/behave_logo1.png +0 -0
- data/vendor/behave/docs/_static/behave_logo2.png +0 -0
- data/vendor/behave/docs/_static/behave_logo3.png +0 -0
- data/vendor/behave/docs/_themes/LICENSE +45 -0
- data/vendor/behave/docs/_themes/kr/layout.html +17 -0
- data/vendor/behave/docs/_themes/kr/relations.html +19 -0
- data/vendor/behave/docs/_themes/kr/static/flasky.css_t +480 -0
- data/vendor/behave/docs/_themes/kr/static/small_flask.css +90 -0
- data/vendor/behave/docs/_themes/kr/theme.conf +7 -0
- data/vendor/behave/docs/_themes/kr_small/layout.html +22 -0
- data/vendor/behave/docs/_themes/kr_small/static/flasky.css_t +287 -0
- data/vendor/behave/docs/_themes/kr_small/theme.conf +10 -0
- data/vendor/behave/docs/api.rst +408 -0
- data/vendor/behave/docs/appendix.rst +19 -0
- data/vendor/behave/docs/behave.rst +640 -0
- data/vendor/behave/docs/behave.rst-template +86 -0
- data/vendor/behave/docs/behave_ecosystem.rst +81 -0
- data/vendor/behave/docs/comparison.rst +85 -0
- data/vendor/behave/docs/conf.py +293 -0
- data/vendor/behave/docs/context_attributes.rst +66 -0
- data/vendor/behave/docs/django.rst +192 -0
- data/vendor/behave/docs/formatters.rst +61 -0
- data/vendor/behave/docs/gherkin.rst +673 -0
- data/vendor/behave/docs/index.rst +57 -0
- data/vendor/behave/docs/install.rst +60 -0
- data/vendor/behave/docs/more_info.rst +184 -0
- data/vendor/behave/docs/new_and_noteworthy.rst +18 -0
- data/vendor/behave/docs/new_and_noteworthy_v1.2.4.rst +11 -0
- data/vendor/behave/docs/new_and_noteworthy_v1.2.5.rst +814 -0
- data/vendor/behave/docs/new_and_noteworthy_v1.2.6.rst +255 -0
- data/vendor/behave/docs/parse_builtin_types.rst +59 -0
- data/vendor/behave/docs/philosophy.rst +235 -0
- data/vendor/behave/docs/regular_expressions.rst +71 -0
- data/vendor/behave/docs/related.rst +14 -0
- data/vendor/behave/docs/test_domains.rst +62 -0
- data/vendor/behave/docs/tutorial.rst +636 -0
- data/vendor/behave/docs/update_behave_rst.py +100 -0
- data/vendor/behave/etc/json/behave.json-schema +172 -0
- data/vendor/behave/etc/junit.xml/behave_junit.xsd +103 -0
- data/vendor/behave/etc/junit.xml/junit-4.xsd +92 -0
- data/vendor/behave/examples/async_step/README.txt +8 -0
- data/vendor/behave/examples/async_step/behave.ini +14 -0
- data/vendor/behave/examples/async_step/features/async_dispatch.feature +8 -0
- data/vendor/behave/examples/async_step/features/async_run.feature +6 -0
- data/vendor/behave/examples/async_step/features/environment.py +28 -0
- data/vendor/behave/examples/async_step/features/steps/async_dispatch_steps.py +26 -0
- data/vendor/behave/examples/async_step/features/steps/async_steps34.py +10 -0
- data/vendor/behave/examples/async_step/features/steps/async_steps35.py +10 -0
- data/vendor/behave/examples/async_step/testrun_example.async_dispatch.txt +11 -0
- data/vendor/behave/examples/async_step/testrun_example.async_run.txt +9 -0
- data/vendor/behave/examples/env_vars/README.rst +26 -0
- data/vendor/behave/examples/env_vars/behave.ini +15 -0
- data/vendor/behave/examples/env_vars/behave_run.output_example.txt +12 -0
- data/vendor/behave/examples/env_vars/features/env_var.feature +6 -0
- data/vendor/behave/examples/env_vars/features/steps/env_var_steps.py +38 -0
- data/vendor/behave/features/README.txt +12 -0
- data/vendor/behave/features/background.feature +392 -0
- data/vendor/behave/features/capture_stderr.feature +172 -0
- data/vendor/behave/features/capture_stdout.feature +125 -0
- data/vendor/behave/features/cmdline.lang_list.feature +33 -0
- data/vendor/behave/features/configuration.default_paths.feature +116 -0
- data/vendor/behave/features/context.global_params.feature +35 -0
- data/vendor/behave/features/context.local_params.feature +17 -0
- data/vendor/behave/features/directory_layout.advanced.feature +147 -0
- data/vendor/behave/features/directory_layout.basic.feature +75 -0
- data/vendor/behave/features/directory_layout.basic2.feature +87 -0
- data/vendor/behave/features/environment.py +53 -0
- data/vendor/behave/features/exploratory_testing.with_table.feature +141 -0
- data/vendor/behave/features/feature.description.feature +0 -0
- data/vendor/behave/features/feature.exclude_from_run.feature +96 -0
- data/vendor/behave/features/formatter.help.feature +30 -0
- data/vendor/behave/features/formatter.json.feature +420 -0
- data/vendor/behave/features/formatter.progress3.feature +235 -0
- data/vendor/behave/features/formatter.rerun.feature +296 -0
- data/vendor/behave/features/formatter.steps.feature +181 -0
- data/vendor/behave/features/formatter.steps_catalog.feature +100 -0
- data/vendor/behave/features/formatter.steps_doc.feature +140 -0
- data/vendor/behave/features/formatter.steps_usage.feature +404 -0
- data/vendor/behave/features/formatter.tags.feature +134 -0
- data/vendor/behave/features/formatter.tags_location.feature +183 -0
- data/vendor/behave/features/formatter.user_defined.feature +196 -0
- data/vendor/behave/features/i18n.unicode_problems.feature +445 -0
- data/vendor/behave/features/logcapture.clear_handlers.feature +114 -0
- data/vendor/behave/features/logcapture.feature +188 -0
- data/vendor/behave/features/logcapture.filter.feature +130 -0
- data/vendor/behave/features/logging.no_capture.feature +99 -0
- data/vendor/behave/features/logging.setup_format.feature +157 -0
- data/vendor/behave/features/logging.setup_level.feature +168 -0
- data/vendor/behave/features/logging.setup_with_configfile.feature +137 -0
- data/vendor/behave/features/parser.background.sad_cases.feature +129 -0
- data/vendor/behave/features/parser.feature.sad_cases.feature +144 -0
- data/vendor/behave/features/runner.abort_by_user.feature +305 -0
- data/vendor/behave/features/runner.continue_after_failed_step.feature +136 -0
- data/vendor/behave/features/runner.default_format.feature +175 -0
- data/vendor/behave/features/runner.dry_run.feature +184 -0
- data/vendor/behave/features/runner.feature_listfile.feature +223 -0
- data/vendor/behave/features/runner.hook_errors.feature +382 -0
- data/vendor/behave/features/runner.multiple_formatters.feature +285 -0
- data/vendor/behave/features/runner.scenario_autoretry.feature +131 -0
- data/vendor/behave/features/runner.select_files_by_regexp.example.feature +71 -0
- data/vendor/behave/features/runner.select_files_by_regexp.feature +84 -0
- data/vendor/behave/features/runner.select_scenarios_by_file_location.feature +403 -0
- data/vendor/behave/features/runner.select_scenarios_by_name.feature +289 -0
- data/vendor/behave/features/runner.select_scenarios_by_tag.feature +225 -0
- data/vendor/behave/features/runner.stop_after_failure.feature +122 -0
- data/vendor/behave/features/runner.tag_logic.feature +67 -0
- data/vendor/behave/features/runner.unknown_formatter.feature +23 -0
- data/vendor/behave/features/runner.use_stage_implementations.feature +126 -0
- data/vendor/behave/features/scenario.description.feature +171 -0
- data/vendor/behave/features/scenario.exclude_from_run.feature +217 -0
- data/vendor/behave/features/scenario_outline.basics.feature +100 -0
- data/vendor/behave/features/scenario_outline.improved.feature +177 -0
- data/vendor/behave/features/scenario_outline.name_annotation.feature +157 -0
- data/vendor/behave/features/scenario_outline.parametrized.feature +401 -0
- data/vendor/behave/features/scenario_outline.tagged_examples.feature +118 -0
- data/vendor/behave/features/step.async_steps.feature +225 -0
- data/vendor/behave/features/step.duplicated_step.feature +106 -0
- data/vendor/behave/features/step.execute_steps.feature +59 -0
- data/vendor/behave/features/step.execute_steps.with_table.feature +65 -0
- data/vendor/behave/features/step.import_other_step_module.feature +103 -0
- data/vendor/behave/features/step.pending_steps.feature +128 -0
- data/vendor/behave/features/step.undefined_steps.feature +307 -0
- data/vendor/behave/features/step.use_step_library.feature +44 -0
- data/vendor/behave/features/step_dialect.generic_steps.feature +189 -0
- data/vendor/behave/features/step_dialect.given_when_then.feature +89 -0
- data/vendor/behave/features/step_param.builtin_types.with_float.feature +239 -0
- data/vendor/behave/features/step_param.builtin_types.with_integer.feature +305 -0
- data/vendor/behave/features/step_param.custom_types.feature +134 -0
- data/vendor/behave/features/steps/behave_active_tags_steps.py +86 -0
- data/vendor/behave/features/steps/behave_context_steps.py +67 -0
- data/vendor/behave/features/steps/behave_model_tag_logic_steps.py +105 -0
- data/vendor/behave/features/steps/behave_model_util.py +105 -0
- data/vendor/behave/features/steps/behave_select_files_steps.py +83 -0
- data/vendor/behave/features/steps/behave_tag_expression_steps.py +166 -0
- data/vendor/behave/features/steps/behave_undefined_steps.py +101 -0
- data/vendor/behave/features/steps/use_steplib_behave4cmd.py +12 -0
- data/vendor/behave/features/summary.undefined_steps.feature +114 -0
- data/vendor/behave/features/tags.active_tags.feature +385 -0
- data/vendor/behave/features/tags.default_tags.feature +104 -0
- data/vendor/behave/features/tags.tag_expression.feature +105 -0
- data/vendor/behave/features/userdata.feature +331 -0
- data/vendor/behave/invoke.yaml +21 -0
- data/vendor/behave/issue.features/README.txt +17 -0
- data/vendor/behave/issue.features/environment.py +97 -0
- data/vendor/behave/issue.features/issue0030.feature +21 -0
- data/vendor/behave/issue.features/issue0031.feature +16 -0
- data/vendor/behave/issue.features/issue0032.feature +28 -0
- data/vendor/behave/issue.features/issue0035.feature +74 -0
- data/vendor/behave/issue.features/issue0040.feature +154 -0
- data/vendor/behave/issue.features/issue0041.feature +135 -0
- data/vendor/behave/issue.features/issue0042.feature +230 -0
- data/vendor/behave/issue.features/issue0044.feature +51 -0
- data/vendor/behave/issue.features/issue0046.feature +77 -0
- data/vendor/behave/issue.features/issue0052.feature +66 -0
- data/vendor/behave/issue.features/issue0059.feature +29 -0
- data/vendor/behave/issue.features/issue0063.feature +102 -0
- data/vendor/behave/issue.features/issue0064.feature +97 -0
- data/vendor/behave/issue.features/issue0065.feature +18 -0
- data/vendor/behave/issue.features/issue0066.feature +80 -0
- data/vendor/behave/issue.features/issue0067.feature +90 -0
- data/vendor/behave/issue.features/issue0069.feature +64 -0
- data/vendor/behave/issue.features/issue0072.feature +32 -0
- data/vendor/behave/issue.features/issue0073.feature +228 -0
- data/vendor/behave/issue.features/issue0075.feature +18 -0
- data/vendor/behave/issue.features/issue0077.feature +89 -0
- data/vendor/behave/issue.features/issue0080.feature +49 -0
- data/vendor/behave/issue.features/issue0081.feature +138 -0
- data/vendor/behave/issue.features/issue0083.feature +69 -0
- data/vendor/behave/issue.features/issue0084.feature +69 -0
- data/vendor/behave/issue.features/issue0085.feature +119 -0
- data/vendor/behave/issue.features/issue0092.feature +66 -0
- data/vendor/behave/issue.features/issue0096.feature +173 -0
- data/vendor/behave/issue.features/issue0099.feature +130 -0
- data/vendor/behave/issue.features/issue0109.feature +60 -0
- data/vendor/behave/issue.features/issue0111.feature +53 -0
- data/vendor/behave/issue.features/issue0112.feature +64 -0
- data/vendor/behave/issue.features/issue0114.feature +118 -0
- data/vendor/behave/issue.features/issue0116.feature +71 -0
- data/vendor/behave/issue.features/issue0125.feature +49 -0
- data/vendor/behave/issue.features/issue0127.feature +64 -0
- data/vendor/behave/issue.features/issue0139.feature +67 -0
- data/vendor/behave/issue.features/issue0142.feature +37 -0
- data/vendor/behave/issue.features/issue0143.feature +54 -0
- data/vendor/behave/issue.features/issue0145.feature +63 -0
- data/vendor/behave/issue.features/issue0148.feature +105 -0
- data/vendor/behave/issue.features/issue0152.feature +52 -0
- data/vendor/behave/issue.features/issue0159.feature +74 -0
- data/vendor/behave/issue.features/issue0162.feature +86 -0
- data/vendor/behave/issue.features/issue0171.feature +16 -0
- data/vendor/behave/issue.features/issue0172.feature +51 -0
- data/vendor/behave/issue.features/issue0175.feature +91 -0
- data/vendor/behave/issue.features/issue0177.feature +40 -0
- data/vendor/behave/issue.features/issue0181.feature +36 -0
- data/vendor/behave/issue.features/issue0184.feature +144 -0
- data/vendor/behave/issue.features/issue0186.feature +12 -0
- data/vendor/behave/issue.features/issue0188.feature +60 -0
- data/vendor/behave/issue.features/issue0191.feature +178 -0
- data/vendor/behave/issue.features/issue0194.feature +215 -0
- data/vendor/behave/issue.features/issue0197.feature +11 -0
- data/vendor/behave/issue.features/issue0216.feature +129 -0
- data/vendor/behave/issue.features/issue0226.feature +51 -0
- data/vendor/behave/issue.features/issue0228.feature +41 -0
- data/vendor/behave/issue.features/issue0230.feature +46 -0
- data/vendor/behave/issue.features/issue0231.feature +77 -0
- data/vendor/behave/issue.features/issue0238.feature +52 -0
- data/vendor/behave/issue.features/issue0251.feature +15 -0
- data/vendor/behave/issue.features/issue0280.feature +118 -0
- data/vendor/behave/issue.features/issue0288.feature +95 -0
- data/vendor/behave/issue.features/issue0300.feature +49 -0
- data/vendor/behave/issue.features/issue0302.feature +91 -0
- data/vendor/behave/issue.features/issue0309.feature +52 -0
- data/vendor/behave/issue.features/issue0330.feature +124 -0
- data/vendor/behave/issue.features/issue0349.feature +9 -0
- data/vendor/behave/issue.features/issue0361.feature +79 -0
- data/vendor/behave/issue.features/issue0383.feature +76 -0
- data/vendor/behave/issue.features/issue0384.feature +103 -0
- data/vendor/behave/issue.features/issue0385.feature +109 -0
- data/vendor/behave/issue.features/issue0424.feature +66 -0
- data/vendor/behave/issue.features/issue0446.feature +116 -0
- data/vendor/behave/issue.features/issue0449.feature +42 -0
- data/vendor/behave/issue.features/issue0453.feature +42 -0
- data/vendor/behave/issue.features/issue0457.feature +65 -0
- data/vendor/behave/issue.features/issue0462.feature +38 -0
- data/vendor/behave/issue.features/issue0476.feature +39 -0
- data/vendor/behave/issue.features/issue0487.feature +92 -0
- data/vendor/behave/issue.features/issue0506.feature +77 -0
- data/vendor/behave/issue.features/issue0510.feature +51 -0
- data/vendor/behave/issue.features/requirements.txt +12 -0
- data/vendor/behave/issue.features/steps/ansi_steps.py +20 -0
- data/vendor/behave/issue.features/steps/behave_hooks_steps.py +10 -0
- data/vendor/behave/issue.features/steps/use_steplib_behave4cmd.py +13 -0
- data/vendor/behave/more.features/formatter.json.validate_output.feature +37 -0
- data/vendor/behave/more.features/steps/tutorial_steps.py +16 -0
- data/vendor/behave/more.features/steps/use_steplib_behave4cmd.py +7 -0
- data/vendor/behave/more.features/tutorial.feature +6 -0
- data/vendor/behave/py.requirements/README.txt +5 -0
- data/vendor/behave/py.requirements/all.txt +16 -0
- data/vendor/behave/py.requirements/basic.txt +21 -0
- data/vendor/behave/py.requirements/develop.txt +28 -0
- data/vendor/behave/py.requirements/docs.txt +6 -0
- data/vendor/behave/py.requirements/json.txt +7 -0
- data/vendor/behave/py.requirements/more_py26.txt +8 -0
- data/vendor/behave/py.requirements/testing.txt +10 -0
- data/vendor/behave/pytest.ini +24 -0
- data/vendor/behave/setup.cfg +29 -0
- data/vendor/behave/setup.py +118 -0
- data/vendor/behave/setuptools_behave.py +130 -0
- data/vendor/behave/tasks/__behave.py +45 -0
- data/vendor/behave/tasks/__init__.py +55 -0
- data/vendor/behave/tasks/__main__.py +70 -0
- data/vendor/behave/tasks/_setup.py +135 -0
- data/vendor/behave/tasks/_vendor/README.rst +35 -0
- data/vendor/behave/tasks/_vendor/invoke.zip +0 -0
- data/vendor/behave/tasks/_vendor/path.py +1725 -0
- data/vendor/behave/tasks/_vendor/pathlib.py +1280 -0
- data/vendor/behave/tasks/_vendor/six.py +868 -0
- data/vendor/behave/tasks/clean.py +246 -0
- data/vendor/behave/tasks/docs.py +97 -0
- data/vendor/behave/tasks/requirements.txt +17 -0
- data/vendor/behave/tasks/test.py +192 -0
- data/vendor/behave/test/__init__.py +0 -0
- data/vendor/behave/test/_importer_candidate.py +3 -0
- data/vendor/behave/test/reporters/__init__.py +0 -0
- data/vendor/behave/test/reporters/test_summary.py +240 -0
- data/vendor/behave/test/test_ansi_escapes.py +73 -0
- data/vendor/behave/test/test_configuration.py +172 -0
- data/vendor/behave/test/test_formatter.py +265 -0
- data/vendor/behave/test/test_formatter_progress.py +39 -0
- data/vendor/behave/test/test_formatter_rerun.py +97 -0
- data/vendor/behave/test/test_formatter_tags.py +57 -0
- data/vendor/behave/test/test_importer.py +151 -0
- data/vendor/behave/test/test_log_capture.py +29 -0
- data/vendor/behave/test/test_matchers.py +236 -0
- data/vendor/behave/test/test_model.py +871 -0
- data/vendor/behave/test/test_parser.py +1590 -0
- data/vendor/behave/test/test_runner.py +1074 -0
- data/vendor/behave/test/test_step_registry.py +96 -0
- data/vendor/behave/test/test_tag_expression.py +506 -0
- data/vendor/behave/test/test_tag_expression2.py +462 -0
- data/vendor/behave/test/test_tag_matcher.py +729 -0
- data/vendor/behave/test/test_userdata.py +184 -0
- data/vendor/behave/tests/README.txt +12 -0
- data/vendor/behave/tests/__init__.py +0 -0
- data/vendor/behave/tests/api/__ONLY_PY34_or_newer.txt +0 -0
- data/vendor/behave/tests/api/__init__.py +0 -0
- data/vendor/behave/tests/api/_test_async_step34.py +130 -0
- data/vendor/behave/tests/api/_test_async_step35.py +75 -0
- data/vendor/behave/tests/api/test_async_step.py +18 -0
- data/vendor/behave/tests/api/testing_support.py +94 -0
- data/vendor/behave/tests/api/testing_support_async.py +21 -0
- data/vendor/behave/tests/issues/test_issue0336.py +66 -0
- data/vendor/behave/tests/issues/test_issue0449.py +55 -0
- data/vendor/behave/tests/issues/test_issue0453.py +62 -0
- data/vendor/behave/tests/issues/test_issue0458.py +54 -0
- data/vendor/behave/tests/issues/test_issue0495.py +65 -0
- data/vendor/behave/tests/unit/__init__.py +0 -0
- data/vendor/behave/tests/unit/test_behave4cmd_command_shell_proc.py +135 -0
- data/vendor/behave/tests/unit/test_capture.py +280 -0
- data/vendor/behave/tests/unit/test_model_core.py +56 -0
- data/vendor/behave/tests/unit/test_textutil.py +267 -0
- data/vendor/behave/tools/test-features/background.feature +9 -0
- data/vendor/behave/tools/test-features/environment.py +8 -0
- data/vendor/behave/tools/test-features/french.feature +11 -0
- data/vendor/behave/tools/test-features/outline.feature +39 -0
- data/vendor/behave/tools/test-features/parse.feature +10 -0
- data/vendor/behave/tools/test-features/step-data.feature +60 -0
- data/vendor/behave/tools/test-features/steps/steps.py +120 -0
- data/vendor/behave/tools/test-features/tags.feature +18 -0
- data/vendor/behave/tox.ini +159 -0
- metadata +562 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
Feature: Scenario Outline -- Scenario Name Annotations
|
|
2
|
+
|
|
3
|
+
As a behave user / test writer
|
|
4
|
+
I want to know in the current example/row combination
|
|
5
|
+
So that I know the context of success/failure within a test run (without details).
|
|
6
|
+
|
|
7
|
+
. REQUIREMENTS:
|
|
8
|
+
. * generated scenario name should better indicate row/example combination.
|
|
9
|
+
. * name annotation schema for generated scenario names should be configurable.
|
|
10
|
+
.
|
|
11
|
+
. IMPROVEMENTS:
|
|
12
|
+
. * annotate Scenario Outline name (with row.id, examples.name, ...)
|
|
13
|
+
.
|
|
14
|
+
.
|
|
15
|
+
. SCENARIO OUTLINE NAME ANNOTATION SCHEMA:
|
|
16
|
+
.
|
|
17
|
+
. scenario_outline_annotation_schema = "{name} -- @{row.id} {examples.name}"
|
|
18
|
+
.
|
|
19
|
+
. | Placeholder | Description |
|
|
20
|
+
. | name | Name of the Scenario Outline. |
|
|
21
|
+
. | examples.name | Name of the examples group (or empty string). |
|
|
22
|
+
. | examples.index | Index of examples group (range: 1..N). |
|
|
23
|
+
. | row.index | Index of row in examples group (range: 1..R). |
|
|
24
|
+
. | row.id | Same as: "{example.index}.{row.index}" |
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@setup
|
|
28
|
+
Scenario: Test Setup
|
|
29
|
+
Given a new working directory
|
|
30
|
+
And a file named "features/named_examples.feature" with:
|
|
31
|
+
"""
|
|
32
|
+
Feature:
|
|
33
|
+
Scenario Outline: Named Examples
|
|
34
|
+
Given a param <param1>
|
|
35
|
+
|
|
36
|
+
Examples: Alice
|
|
37
|
+
| param1 |
|
|
38
|
+
| 10 |
|
|
39
|
+
| 42 |
|
|
40
|
+
|
|
41
|
+
Examples: Bob
|
|
42
|
+
| param1 |
|
|
43
|
+
| 43 |
|
|
44
|
+
"""
|
|
45
|
+
And a file named "features/unnamed_examples.feature" with:
|
|
46
|
+
"""
|
|
47
|
+
Feature:
|
|
48
|
+
Scenario Outline: Unnamed Examples
|
|
49
|
+
Given a param <param1>
|
|
50
|
+
|
|
51
|
+
Examples:
|
|
52
|
+
| param1 |
|
|
53
|
+
| 100 |
|
|
54
|
+
| 101 |
|
|
55
|
+
"""
|
|
56
|
+
And a file named "features/steps/param_steps.py" with:
|
|
57
|
+
"""
|
|
58
|
+
from behave import step
|
|
59
|
+
|
|
60
|
+
@step('a param {value:w}')
|
|
61
|
+
def step_impl_with_param(context, value):
|
|
62
|
+
context.param = value
|
|
63
|
+
|
|
64
|
+
@step('a param {name}={value}')
|
|
65
|
+
def step_impl_with_param_value(context, name, value):
|
|
66
|
+
context.param_name = name
|
|
67
|
+
context.param_value = value
|
|
68
|
+
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
Scenario: Use default annotation schema for generated scenarios (name annotations)
|
|
72
|
+
|
|
73
|
+
Each example/row combination should be easy to spot.
|
|
74
|
+
|
|
75
|
+
Given a file named "behave.ini" does not exist
|
|
76
|
+
When I run "behave -f plain --no-timings features/named_examples.feature"
|
|
77
|
+
Then it should pass with:
|
|
78
|
+
"""
|
|
79
|
+
Scenario Outline: Named Examples -- @1.1 Alice
|
|
80
|
+
Given a param 10 ... passed
|
|
81
|
+
|
|
82
|
+
Scenario Outline: Named Examples -- @1.2 Alice
|
|
83
|
+
Given a param 42 ... passed
|
|
84
|
+
|
|
85
|
+
Scenario Outline: Named Examples -- @2.1 Bob
|
|
86
|
+
Given a param 43 ... passed
|
|
87
|
+
"""
|
|
88
|
+
And note that "the default annotation schema is: {name} -- @{row.id} {examples.name}"
|
|
89
|
+
When I run "behave -f plain --no-timings features/unnamed_examples.feature"
|
|
90
|
+
Then it should pass with:
|
|
91
|
+
"""
|
|
92
|
+
Scenario Outline: Unnamed Examples -- @1.1
|
|
93
|
+
Given a param 100 ... passed
|
|
94
|
+
|
|
95
|
+
Scenario Outline: Unnamed Examples -- @1.2
|
|
96
|
+
Given a param 101 ... passed
|
|
97
|
+
"""
|
|
98
|
+
But note that "each generated scenario name has a unique <row.id> annotation"
|
|
99
|
+
And note that "each generated scenario name contains has its <examples.name> as annotation"
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
Scenario: Use own annotation schema for generated scenarios (name annotations)
|
|
103
|
+
Given a file named "behave.ini" with:
|
|
104
|
+
"""
|
|
105
|
+
[behave]
|
|
106
|
+
scenario_outline_annotation_schema = {name} -*- {examples.name} @{row.id}
|
|
107
|
+
"""
|
|
108
|
+
When I run "behave -f plain --no-timings features/named_examples.feature"
|
|
109
|
+
Then it should pass with:
|
|
110
|
+
"""
|
|
111
|
+
Scenario Outline: Named Examples -*- Alice @1.1
|
|
112
|
+
Given a param 10 ... passed
|
|
113
|
+
|
|
114
|
+
Scenario Outline: Named Examples -*- Alice @1.2
|
|
115
|
+
Given a param 42 ... passed
|
|
116
|
+
|
|
117
|
+
Scenario Outline: Named Examples -*- Bob @2.1
|
|
118
|
+
Given a param 43 ... passed
|
|
119
|
+
"""
|
|
120
|
+
When I run "behave -f plain --no-timings features/unnamed_examples.feature"
|
|
121
|
+
Then it should pass with:
|
|
122
|
+
"""
|
|
123
|
+
Scenario Outline: Unnamed Examples -*- @1.1
|
|
124
|
+
Given a param 100 ... passed
|
|
125
|
+
|
|
126
|
+
Scenario Outline: Unnamed Examples -*- @1.2
|
|
127
|
+
Given a param 101 ... passed
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
Scenario: Disable name annotations (use: old naming scheme)
|
|
132
|
+
Given a file named "behave.ini" with:
|
|
133
|
+
"""
|
|
134
|
+
[behave]
|
|
135
|
+
scenario_outline_annotation_schema = {name}
|
|
136
|
+
"""
|
|
137
|
+
When I run "behave -f plain --no-timings features/named_examples.feature"
|
|
138
|
+
Then it should pass with:
|
|
139
|
+
"""
|
|
140
|
+
Scenario Outline: Named Examples
|
|
141
|
+
Given a param 10 ... passed
|
|
142
|
+
|
|
143
|
+
Scenario Outline: Named Examples
|
|
144
|
+
Given a param 42 ... passed
|
|
145
|
+
|
|
146
|
+
Scenario Outline: Named Examples
|
|
147
|
+
Given a param 43 ... passed
|
|
148
|
+
"""
|
|
149
|
+
When I run "behave -f plain --no-timings features/unnamed_examples.feature"
|
|
150
|
+
Then it should pass with:
|
|
151
|
+
"""
|
|
152
|
+
Scenario Outline: Unnamed Examples
|
|
153
|
+
Given a param 100 ... passed
|
|
154
|
+
|
|
155
|
+
Scenario Outline: Unnamed Examples
|
|
156
|
+
Given a param 101 ... passed
|
|
157
|
+
"""
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
Feature: Scenario Outline -- Parametrized Scenarios
|
|
2
|
+
|
|
3
|
+
As a test writer
|
|
4
|
+
I want to use the DRY principle when writing scenarios
|
|
5
|
+
So that I am more productive and my work is less error-prone.
|
|
6
|
+
|
|
7
|
+
. COMMENT:
|
|
8
|
+
. A Scenario Outline is basically a parametrized Scenario template.
|
|
9
|
+
. It is instantiated for each examples row with the corresponding data.
|
|
10
|
+
.
|
|
11
|
+
. SCENARIO GENERICS BASICS: What can be parametrized?
|
|
12
|
+
. * Scenario name: Based on Scenario Outline with placeholders
|
|
13
|
+
. * Scenario steps: Step name with placeholders (including: step.text, step.table)
|
|
14
|
+
. * Scenario tags: Based on Scenario Outline tags with placeholders
|
|
15
|
+
.
|
|
16
|
+
. CONSTRAINTS:
|
|
17
|
+
. * placeholders (names) for tags should not contain any whitespace.
|
|
18
|
+
. * a row data placeholder may override/hide a special placeholder (see below).
|
|
19
|
+
.
|
|
20
|
+
. SPECIAL PLACEHOLDERS:
|
|
21
|
+
. | Placeholder | Description |
|
|
22
|
+
. | examples.name | Name of the examples group (or empty string). |
|
|
23
|
+
. | examples.index | Index of examples group (range: 1..N). |
|
|
24
|
+
. | row.index | Index of row in examples group (range: 1..R). |
|
|
25
|
+
. | row.id | Same as: "{example.index}.{row.index}" |
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@setup
|
|
29
|
+
Scenario: Test Setup
|
|
30
|
+
Given a new working directory
|
|
31
|
+
And a file named "behave.ini" with:
|
|
32
|
+
"""
|
|
33
|
+
[behave]
|
|
34
|
+
scenario_outline_annotation_schema = {name} -*- {examples.name}
|
|
35
|
+
"""
|
|
36
|
+
And a file named "features/steps/param_steps.py" with:
|
|
37
|
+
"""
|
|
38
|
+
from behave import step
|
|
39
|
+
|
|
40
|
+
@step('a param {value:w}')
|
|
41
|
+
def step_with_param(context, value):
|
|
42
|
+
context.param = value
|
|
43
|
+
|
|
44
|
+
@step('a param {name}={value}')
|
|
45
|
+
def step_with_param_value(context, name, value):
|
|
46
|
+
context.param_name = name
|
|
47
|
+
context.param_value = value
|
|
48
|
+
|
|
49
|
+
@step('a step with text')
|
|
50
|
+
def step_with_param_value(context):
|
|
51
|
+
assert context.text is not None, "REQUIRE: text"
|
|
52
|
+
|
|
53
|
+
@step('a step with table')
|
|
54
|
+
def step_with_param_value(context):
|
|
55
|
+
assert context.table is not None, "REQUIRE: table"
|
|
56
|
+
|
|
57
|
+
@step('an unknown param {name}={value}')
|
|
58
|
+
def step_with_unknown_param_value(context, name, value):
|
|
59
|
+
pass
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
@parametrize.name
|
|
63
|
+
Scenario: Parametrized name in generated Scenarios (Case: Row Placeholders)
|
|
64
|
+
Given a file named "features/use_name_with_row_params.feature" with:
|
|
65
|
+
"""
|
|
66
|
+
Feature: SOP1
|
|
67
|
+
Scenario Outline: Use placeholder <name>-<param1>
|
|
68
|
+
Given a param param1=<param1>
|
|
69
|
+
And a param name=<name>
|
|
70
|
+
|
|
71
|
+
Examples: E-<ID>
|
|
72
|
+
| ID | name | param1 |
|
|
73
|
+
| 001 | Alice | 100 |
|
|
74
|
+
| 002 | Bob | 101 |
|
|
75
|
+
"""
|
|
76
|
+
When I run "behave -f progress3 features/use_name_with_row_params.feature"
|
|
77
|
+
Then it should pass with:
|
|
78
|
+
"""
|
|
79
|
+
Use placeholder Alice-100 -*- E-001 ..
|
|
80
|
+
Use placeholder Bob-101 -*- E-002 ..
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
@parametrize.name
|
|
84
|
+
Scenario: Parametrized name in generated Scenarios (Case: Special Placeholders)
|
|
85
|
+
Given a file named "features/use_name_with_special_params.feature" with:
|
|
86
|
+
"""
|
|
87
|
+
Feature: SOP2
|
|
88
|
+
Scenario Outline: Use placeholder S<examples.index>-<row.index> <examples.name>
|
|
89
|
+
Given a param name=<name>
|
|
90
|
+
And a param row.id=<row.id>
|
|
91
|
+
|
|
92
|
+
Examples: E-<ID>/@<row.id>
|
|
93
|
+
| ID | name | param1 |
|
|
94
|
+
| 001 | Alice | 100 |
|
|
95
|
+
| 002 | Bob | 101 |
|
|
96
|
+
"""
|
|
97
|
+
When I run "behave -f progress3 features/use_name_with_special_params.feature"
|
|
98
|
+
Then it should pass with:
|
|
99
|
+
"""
|
|
100
|
+
Use placeholder S1-1 E-001/@1.1 -*- E-001/@1.1 ..
|
|
101
|
+
Use placeholder S1-2 E-002/@1.2 -*- E-002/@1.2 ..
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
@parametrize.steps
|
|
105
|
+
Scenario: Use placeholders in generated scenario steps
|
|
106
|
+
Given a file named "features/use_steps_with_params.feature" with:
|
|
107
|
+
"""
|
|
108
|
+
Feature:
|
|
109
|
+
Scenario Outline: Use row placeholders
|
|
110
|
+
Given a param ID=<ID>
|
|
111
|
+
And a param name=<name>
|
|
112
|
+
And a param param1=<param1>
|
|
113
|
+
|
|
114
|
+
Examples:
|
|
115
|
+
| ID | name | param1 |
|
|
116
|
+
| 001 | Alice | 101 |
|
|
117
|
+
| 002 | Bob | 102 |
|
|
118
|
+
"""
|
|
119
|
+
When I run "behave -f plain --no-timings features/use_steps_with_params.feature"
|
|
120
|
+
Then it should pass with:
|
|
121
|
+
"""
|
|
122
|
+
Scenario Outline: Use row placeholders -*-
|
|
123
|
+
Given a param ID=001 ... passed
|
|
124
|
+
And a param name=Alice ... passed
|
|
125
|
+
And a param param1=101 ... passed
|
|
126
|
+
|
|
127
|
+
Scenario Outline: Use row placeholders -*-
|
|
128
|
+
Given a param ID=002 ... passed
|
|
129
|
+
And a param name=Bob ... passed
|
|
130
|
+
And a param param1=102 ... passed
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
@parametrize.steps
|
|
134
|
+
Scenario: Use an unknown placeholder in generated scenario steps
|
|
135
|
+
Given a file named "features/use_steps_with_unknown_params.feature" with:
|
|
136
|
+
"""
|
|
137
|
+
Feature:
|
|
138
|
+
Scenario Outline: Use unknown placeholders
|
|
139
|
+
Given an unknown param unknown=<unknown>
|
|
140
|
+
|
|
141
|
+
Examples:
|
|
142
|
+
| ID | name | param1 |
|
|
143
|
+
| 001 | Alice | 100 |
|
|
144
|
+
"""
|
|
145
|
+
When I run "behave -f plain --no-timings features/use_steps_with_unknown_params.feature"
|
|
146
|
+
Then it should pass with:
|
|
147
|
+
"""
|
|
148
|
+
Scenario Outline: Use unknown placeholders -*-
|
|
149
|
+
Given an unknown param unknown=<unknown> ... passed
|
|
150
|
+
"""
|
|
151
|
+
But note that "unknown placeholders are not replaced"
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
@parametrize.steps
|
|
155
|
+
Scenario: Use placeholders in generated scenario step.text
|
|
156
|
+
Given a file named "features/use_steps_with_param_text.feature" with:
|
|
157
|
+
'''
|
|
158
|
+
Feature:
|
|
159
|
+
Scenario Outline: Use parametrized step with text
|
|
160
|
+
Given a step with text:
|
|
161
|
+
"""
|
|
162
|
+
<greeting> <name>;
|
|
163
|
+
Travel agency: <travel agency>
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
Examples:
|
|
167
|
+
| ID | name | greeting | travel agency |
|
|
168
|
+
| 001 | Alice | Hello | Pony express |
|
|
169
|
+
'''
|
|
170
|
+
When I run "behave -f plain --no-timings features/use_steps_with_param_text.feature"
|
|
171
|
+
Then it should pass with:
|
|
172
|
+
'''
|
|
173
|
+
Scenario Outline: Use parametrized step with text -*-
|
|
174
|
+
Given a step with text ... passed
|
|
175
|
+
"""
|
|
176
|
+
Hello Alice;
|
|
177
|
+
Travel agency: Pony express
|
|
178
|
+
"""
|
|
179
|
+
'''
|
|
180
|
+
And note that "placeholders in step.text are replaced with row data"
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
@parametrize.steps
|
|
184
|
+
Scenario: Use placeholders in generated scenario step.table
|
|
185
|
+
Given a file named "features/use_steps_with_param_table.feature" with:
|
|
186
|
+
"""
|
|
187
|
+
Feature:
|
|
188
|
+
Scenario Outline: Use parametrized step with table
|
|
189
|
+
Given a step with table:
|
|
190
|
+
| Id | Name | Travel Agency | row id |
|
|
191
|
+
| <ID> | <name> | <travel agency> | <row.id> |
|
|
192
|
+
|
|
193
|
+
Examples:
|
|
194
|
+
| ID | name | greeting | travel agency |
|
|
195
|
+
| 001 | Alice | Hello | Pony express |
|
|
196
|
+
"""
|
|
197
|
+
When I run "behave -f plain --no-timings features/use_steps_with_param_table.feature"
|
|
198
|
+
Then it should pass with:
|
|
199
|
+
"""
|
|
200
|
+
Scenario Outline: Use parametrized step with table -*-
|
|
201
|
+
Given a step with table ... passed
|
|
202
|
+
| Id | Name | Travel Agency | row id |
|
|
203
|
+
| 001 | Alice | Pony express | <row.id> |
|
|
204
|
+
"""
|
|
205
|
+
And note that "placeholders in step.table cells are replaced with row data"
|
|
206
|
+
But note that "<row.id> is currently not supported in table cells (like other special placeholders)"
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
@parametrize.steps
|
|
210
|
+
Scenario: Use special placeholders in generated scenario steps
|
|
211
|
+
Given a file named "features/use_steps_with_special_params.feature" with:
|
|
212
|
+
"""
|
|
213
|
+
Feature:
|
|
214
|
+
Scenario Outline: Use special placeholders @<row.id>
|
|
215
|
+
Given a param name=<name>
|
|
216
|
+
And a param examples.name=<examples.name>
|
|
217
|
+
And a param examples.index=<examples.index>
|
|
218
|
+
And a param row.index=<row.index>
|
|
219
|
+
And a param row.id=<row.id>
|
|
220
|
+
|
|
221
|
+
Examples: E-<ID>/@<row.id>
|
|
222
|
+
| ID | name | param1 |
|
|
223
|
+
| 001 | Alice | 100 |
|
|
224
|
+
| 002 | Bob | 101 |
|
|
225
|
+
"""
|
|
226
|
+
When I run "behave -f plain --no-timings features/use_steps_with_special_params.feature"
|
|
227
|
+
Then it should pass with:
|
|
228
|
+
"""
|
|
229
|
+
Scenario Outline: Use special placeholders @1.1 -*- E-001/@1.1
|
|
230
|
+
Given a param name=Alice ... passed
|
|
231
|
+
And a param examples.name=E-001/@1.1 ... passed
|
|
232
|
+
And a param examples.index=1 ... passed
|
|
233
|
+
And a param row.index=1 ... passed
|
|
234
|
+
And a param row.id=1.1 ... passed
|
|
235
|
+
|
|
236
|
+
Scenario Outline: Use special placeholders @1.2 -*- E-002/@1.2
|
|
237
|
+
Given a param name=Bob ... passed
|
|
238
|
+
And a param examples.name=E-002/@1.2 ... passed
|
|
239
|
+
And a param examples.index=1 ... passed
|
|
240
|
+
And a param row.index=2 ... passed
|
|
241
|
+
And a param row.id=1.2 ... passed
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
@parametrize.name
|
|
246
|
+
@parametrize.steps
|
|
247
|
+
Scenario: When special placeholder name is used for row data (Case: Override)
|
|
248
|
+
|
|
249
|
+
Ensure that row data (placeholder) can override special placeholder (if needed).
|
|
250
|
+
AFFECTED: scenario.name, examples.name, step.name
|
|
251
|
+
|
|
252
|
+
Given a file named "behave.ini" with:
|
|
253
|
+
"""
|
|
254
|
+
[behave]
|
|
255
|
+
scenario_outline_annotation_schema = {name} -*- special:row.id=@{row.id} {examples.name}
|
|
256
|
+
"""
|
|
257
|
+
And a file named "features/use_name_with_overwritten_params.feature" with:
|
|
258
|
+
"""
|
|
259
|
+
Feature: SOP3
|
|
260
|
+
Scenario Outline: Use placeholder data:row.id=<row.id>
|
|
261
|
+
Given a param name=<name>
|
|
262
|
+
And a param row.id=<row.id>
|
|
263
|
+
|
|
264
|
+
Examples: E-<ID>/<row.id>
|
|
265
|
+
| ID | name | row.id |
|
|
266
|
+
| 001 | Alice | 100 |
|
|
267
|
+
| 002 | Bob | 101 |
|
|
268
|
+
"""
|
|
269
|
+
When I run "behave -f progress3 features/use_name_with_overwritten_params.feature"
|
|
270
|
+
Then it should pass with:
|
|
271
|
+
"""
|
|
272
|
+
Use placeholder data:row.id=100 -*- special:row.id=@1.1 E-001/100 ..
|
|
273
|
+
Use placeholder data:row.id=101 -*- special:row.id=@1.2 E-002/101 ..
|
|
274
|
+
"""
|
|
275
|
+
When I run "behave -f plain --no-timings features/use_name_with_overwritten_params.feature"
|
|
276
|
+
Then it should pass with:
|
|
277
|
+
"""
|
|
278
|
+
Scenario Outline: Use placeholder data:row.id=100 -*- special:row.id=@1.1 E-001/100
|
|
279
|
+
Given a param name=Alice ... passed
|
|
280
|
+
And a param row.id=100 ... passed
|
|
281
|
+
|
|
282
|
+
Scenario Outline: Use placeholder data:row.id=101 -*- special:row.id=@1.2 E-002/101
|
|
283
|
+
Given a param name=Bob ... passed
|
|
284
|
+
And a param row.id=101 ... passed
|
|
285
|
+
"""
|
|
286
|
+
But note that "a row data placeholder can override a special placeholder"
|
|
287
|
+
And note that "the name annotation {row.id} still allows to refer to the special one"
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
@parametrize.steps
|
|
292
|
+
Scenario: Placeholder value has placeholder syntax (Case: recursion-check)
|
|
293
|
+
|
|
294
|
+
Ensure that weird placeholder value cases are handled correctly.
|
|
295
|
+
Ensure that no recursion occurs.
|
|
296
|
+
|
|
297
|
+
Given a file named "behave.ini" with:
|
|
298
|
+
"""
|
|
299
|
+
[behave]
|
|
300
|
+
scenario_outline_annotation_schema = {name} -*- @{row.id} {examples.name}
|
|
301
|
+
"""
|
|
302
|
+
And a file named "features/use_value_with_placeholder_syntax.feature" with:
|
|
303
|
+
"""
|
|
304
|
+
Feature:
|
|
305
|
+
Scenario Outline: Use weird placeholder values
|
|
306
|
+
Given a param name=<name>
|
|
307
|
+
|
|
308
|
+
Examples:
|
|
309
|
+
| name | Expected | ID | Case: |
|
|
310
|
+
| <ID> | 001 | 001 | Value refers to other, known placeholder.|
|
|
311
|
+
| <ID> | 002 | 002 | Check if row specific value is used. |
|
|
312
|
+
| <unknown> | <unkown> | 003 | Value refers to unknown placeholder. |
|
|
313
|
+
| <name> | <name> | 004 | Value refers to itself (recursion?). |
|
|
314
|
+
"""
|
|
315
|
+
When I run "behave -f plain --no-timings features/use_value_with_placeholder_syntax.feature"
|
|
316
|
+
Then it should pass with:
|
|
317
|
+
"""
|
|
318
|
+
Scenario Outline: Use weird placeholder values -*- @1.1
|
|
319
|
+
Given a param name=001 ... passed
|
|
320
|
+
|
|
321
|
+
Scenario Outline: Use weird placeholder values -*- @1.2
|
|
322
|
+
Given a param name=002 ... passed
|
|
323
|
+
|
|
324
|
+
Scenario Outline: Use weird placeholder values -*- @1.3
|
|
325
|
+
Given a param name=<unknown> ... passed
|
|
326
|
+
|
|
327
|
+
Scenario Outline: Use weird placeholder values -*- @1.4
|
|
328
|
+
Given a param name=<name> ... passed
|
|
329
|
+
"""
|
|
330
|
+
|
|
331
|
+
@simple.case
|
|
332
|
+
@parametrize.tags
|
|
333
|
+
Scenario: Parametrized tags in a Scenario Outline
|
|
334
|
+
Given a file named "behave.ini" with:
|
|
335
|
+
"""
|
|
336
|
+
[behave]
|
|
337
|
+
scenario_outline_annotation_schema = {name} -*- @{row.id} {examples.name}
|
|
338
|
+
"""
|
|
339
|
+
And a file named "features/parametrized_tags.feature" with:
|
|
340
|
+
"""
|
|
341
|
+
Feature:
|
|
342
|
+
@foo @outline.e<examples.index> @outline.row.<row.id> @outline.ID.<ID>
|
|
343
|
+
Scenario Outline: Use parametrized tags
|
|
344
|
+
Given a param name=<name>
|
|
345
|
+
|
|
346
|
+
Examples:
|
|
347
|
+
| ID | name |
|
|
348
|
+
| 001 | Alice |
|
|
349
|
+
| 002 | Bob |
|
|
350
|
+
"""
|
|
351
|
+
When I run "behave -f pretty -c --no-timings features/parametrized_tags.feature"
|
|
352
|
+
Then it should pass with:
|
|
353
|
+
"""
|
|
354
|
+
@foo @outline.e1 @outline.row.1.1 @outline.ID.001
|
|
355
|
+
Scenario Outline: Use parametrized tags -*- @1.1 # features/parametrized_tags.feature:8
|
|
356
|
+
Given a param name=Alice # features/steps/param_steps.py:7
|
|
357
|
+
|
|
358
|
+
@foo @outline.e1 @outline.row.1.2 @outline.ID.002
|
|
359
|
+
Scenario Outline: Use parametrized tags -*- @1.2 # features/parametrized_tags.feature:9
|
|
360
|
+
Given a param name=Bob # features/steps/param_steps.py:7
|
|
361
|
+
"""
|
|
362
|
+
But note that "special and row data placeholders can be used in tags"
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
@parametrize.tags
|
|
366
|
+
Scenario: Parametrized tags in a Scenario Outline (Case: Whitespace... in value)
|
|
367
|
+
Given a file named "behave.ini" with:
|
|
368
|
+
"""
|
|
369
|
+
[behave]
|
|
370
|
+
scenario_outline_annotation_schema = {name} -*- @{row.id} {examples.name}
|
|
371
|
+
"""
|
|
372
|
+
And a file named "features/parametrized_tags2.feature" with:
|
|
373
|
+
"""
|
|
374
|
+
Feature:
|
|
375
|
+
@outline.name.<name>
|
|
376
|
+
Scenario Outline: Use parametrized tags
|
|
377
|
+
Given a param name=<name>
|
|
378
|
+
|
|
379
|
+
Examples:
|
|
380
|
+
| ID | name | Case: |
|
|
381
|
+
| 001 | Alice Cooper | Placeholder value w/ whitespace |
|
|
382
|
+
| 002 | Bob\tMarley | Placeholder value w/ tab |
|
|
383
|
+
| 003 | Joe\nCocker | Placeholder value w/ newline |
|
|
384
|
+
"""
|
|
385
|
+
When I run "behave -f pretty -c --no-source features/parametrized_tags2.feature"
|
|
386
|
+
Then it should pass with:
|
|
387
|
+
"""
|
|
388
|
+
@outline.name.Alice_Cooper
|
|
389
|
+
Scenario Outline: Use parametrized tags -*- @1.1
|
|
390
|
+
Given a param name=Alice Cooper
|
|
391
|
+
|
|
392
|
+
@outline.name.Bob_Marley
|
|
393
|
+
Scenario Outline: Use parametrized tags -*- @1.2
|
|
394
|
+
Given a param name=Bob\tMarley
|
|
395
|
+
|
|
396
|
+
@outline.name.Joe_Cocker
|
|
397
|
+
Scenario Outline: Use parametrized tags -*- @1.3
|
|
398
|
+
Given a param name=Joe\nCocker
|
|
399
|
+
"""
|
|
400
|
+
But note that "placeholder values with special chars (whitespace, ...) are transformed"
|
|
401
|
+
|