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,84 @@
|
|
|
1
|
+
@sequential
|
|
2
|
+
Feature: Select feature files by using regular expressions
|
|
3
|
+
|
|
4
|
+
As a tester
|
|
5
|
+
I want to include/exclude feature files into/from a test run by using wildcards
|
|
6
|
+
To be more flexible and avoid to specify all feature files
|
|
7
|
+
|
|
8
|
+
. SPECIFICATION:
|
|
9
|
+
. * behave provides --include and --exclude command line options
|
|
10
|
+
. * --include option selects a subset of all files that should be included
|
|
11
|
+
. * --exclude option is applied after include option is applied
|
|
12
|
+
.
|
|
13
|
+
. EXAMPLE:
|
|
14
|
+
. behave --include="features/ali.*\.feature" ...
|
|
15
|
+
. behave --exclude="features/ali.*" ...
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Background:
|
|
19
|
+
Given behave has the following feature fileset:
|
|
20
|
+
"""
|
|
21
|
+
features/alice.feature
|
|
22
|
+
features/bob.feature
|
|
23
|
+
features/barbi.feature
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
Scenario: Include only feature files
|
|
27
|
+
When behave includes feature files with "features/a.*"
|
|
28
|
+
And behave excludes no feature files
|
|
29
|
+
Then the following feature files are selected:
|
|
30
|
+
"""
|
|
31
|
+
features/alice.feature
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
Scenario: Include more than one feature file
|
|
35
|
+
When behave includes feature files with "features/b.*"
|
|
36
|
+
Then the following feature files are selected:
|
|
37
|
+
"""
|
|
38
|
+
features/bob.feature
|
|
39
|
+
features/barbi.feature
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
Scenario: Exclude only feature files
|
|
44
|
+
When behave excludes feature files with "features/a.*"
|
|
45
|
+
And behave includes all feature files
|
|
46
|
+
Then the following feature files are selected:
|
|
47
|
+
"""
|
|
48
|
+
features/bob.feature
|
|
49
|
+
features/barbi.feature
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
Scenario: Exclude more than one feature file
|
|
53
|
+
When behave excludes feature files with "features/b.*"
|
|
54
|
+
Then the following feature files are selected:
|
|
55
|
+
"""
|
|
56
|
+
features/alice.feature
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
Scenario: Include and exclude feature files
|
|
60
|
+
|
|
61
|
+
Ensure that exclude file pattern is applied after include file pattern.
|
|
62
|
+
|
|
63
|
+
When behave includes feature files with "features/.*a.*\.feature"
|
|
64
|
+
And behave excludes feature files with ".*/barbi.*"
|
|
65
|
+
Then the following feature files are selected:
|
|
66
|
+
"""
|
|
67
|
+
features/alice.feature
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
Scenario: Include and exclude feature files (in 2 steps)
|
|
71
|
+
|
|
72
|
+
Show how file inclusion/exclusion works by emulating the two steps.
|
|
73
|
+
|
|
74
|
+
When behave includes feature files with "features/.*a.*\.feature"
|
|
75
|
+
Then the following feature files are selected:
|
|
76
|
+
"""
|
|
77
|
+
features/alice.feature
|
|
78
|
+
features/barbi.feature
|
|
79
|
+
"""
|
|
80
|
+
When behave excludes feature files with ".*/barbi.*"
|
|
81
|
+
Then the following feature files are selected:
|
|
82
|
+
"""
|
|
83
|
+
features/alice.feature
|
|
84
|
+
"""
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
@sequential
|
|
2
|
+
Feature: Select Scenarios by File Location
|
|
3
|
+
|
|
4
|
+
To simplify running only one scenario in a feature (or some scenarios)
|
|
5
|
+
As a tester
|
|
6
|
+
I want to select a scenario by using its file location,
|
|
7
|
+
like: "alice.feature:10" (schema: {filename}:{line})
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
. CONCEPT: File Location
|
|
11
|
+
. * A file location consists of file name and a positive line number
|
|
12
|
+
. * A file location is represented as "{filename}:{line}" (or "{filename}")
|
|
13
|
+
. * A file location with filename but without line number
|
|
14
|
+
. refers to the complete file
|
|
15
|
+
. * A file location with line number 0 (zero) refers to the complete file
|
|
16
|
+
.
|
|
17
|
+
. SPECIFICATION: Scenario selection by file locations
|
|
18
|
+
. * scenario.line == file_location.line selects scenario (preferred method).
|
|
19
|
+
. * Any line number in the following range is acceptable:
|
|
20
|
+
. scenario.line <= file_location.line < next_scenario.line
|
|
21
|
+
. * The first scenario is selected,
|
|
22
|
+
. if the file location line number is less than first scenario.line.
|
|
23
|
+
. * The last scenario is selected,
|
|
24
|
+
. if the file location line number is greater than the lines in the file.
|
|
25
|
+
.
|
|
26
|
+
. SPECIFICATION: Runner with scenario locations (file locations)
|
|
27
|
+
. * Adjacent file locations are merged if they refer to the same file, like:
|
|
28
|
+
.
|
|
29
|
+
. alice.feature:10
|
|
30
|
+
. alice.feature:20
|
|
31
|
+
.
|
|
32
|
+
. => MERGED: Selects/runs "alice.feature" with 2 scenarios.
|
|
33
|
+
.
|
|
34
|
+
. alice.feature
|
|
35
|
+
. alice.feature:20
|
|
36
|
+
.
|
|
37
|
+
. => MERGED: Selects "alice.feature" with all scenarios.
|
|
38
|
+
.
|
|
39
|
+
. alice.feature:10
|
|
40
|
+
. bob.feature:20
|
|
41
|
+
. alice.feature:20
|
|
42
|
+
.
|
|
43
|
+
. => NOT MERGED: Selects/runs "alice.feature" twice.
|
|
44
|
+
.
|
|
45
|
+
. * If file locations (scenario locations) are used,
|
|
46
|
+
. scenarios with @setup or @teardown tags are selected, too.
|
|
47
|
+
.
|
|
48
|
+
. REASON: Simplifies to use a Setup Scenario instead of a Background.
|
|
49
|
+
.
|
|
50
|
+
. * Additional scenario selection mechanisms, like tags, names,
|
|
51
|
+
. are applied afterwards.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
@setup
|
|
55
|
+
Scenario: Feature Setup
|
|
56
|
+
Given a new working directory
|
|
57
|
+
And a file named "features/steps/steps.py" with:
|
|
58
|
+
"""
|
|
59
|
+
from behave import step
|
|
60
|
+
|
|
61
|
+
@step('a step passes')
|
|
62
|
+
def step_passes(context):
|
|
63
|
+
pass
|
|
64
|
+
"""
|
|
65
|
+
And a file named "features/alice.feature" with:
|
|
66
|
+
"""
|
|
67
|
+
Feature: Alice
|
|
68
|
+
|
|
69
|
+
Scenario: Alice First
|
|
70
|
+
When a step passes
|
|
71
|
+
|
|
72
|
+
Scenario: Alice Last
|
|
73
|
+
Then a step passes
|
|
74
|
+
"""
|
|
75
|
+
And a file named "features/bob.feature" with:
|
|
76
|
+
"""
|
|
77
|
+
Feature: Bob
|
|
78
|
+
|
|
79
|
+
@setup
|
|
80
|
+
Scenario: Setup Bob
|
|
81
|
+
Given a step passes
|
|
82
|
+
|
|
83
|
+
Scenario: Bob in Berlin
|
|
84
|
+
When a step passes
|
|
85
|
+
|
|
86
|
+
Scenario: Bob in Paris
|
|
87
|
+
Then a step passes
|
|
88
|
+
|
|
89
|
+
@teardown
|
|
90
|
+
Scenario: Teardown Bob
|
|
91
|
+
Then a step passes
|
|
92
|
+
"""
|
|
93
|
+
And a file named "behave.ini" with:
|
|
94
|
+
"""
|
|
95
|
+
[behave]
|
|
96
|
+
show_skipped = false
|
|
97
|
+
show_timings = false
|
|
98
|
+
"""
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
@file_location.select
|
|
102
|
+
Scenario: Select one scenario with its exact file location
|
|
103
|
+
|
|
104
|
+
CASE: scenario.line == file_location.line
|
|
105
|
+
|
|
106
|
+
When I run "behave -f plain --dry-run --no-skipped features/alice.feature:3"
|
|
107
|
+
Then it should pass with:
|
|
108
|
+
"""
|
|
109
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
110
|
+
0 scenarios passed, 0 failed, 1 skipped, 1 untested
|
|
111
|
+
"""
|
|
112
|
+
And the command output should contain:
|
|
113
|
+
"""
|
|
114
|
+
Feature: Alice
|
|
115
|
+
Scenario: Alice First
|
|
116
|
+
"""
|
|
117
|
+
But the command output should not contain:
|
|
118
|
+
"""
|
|
119
|
+
Scenario: Alice Last
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
@file_location.select
|
|
123
|
+
Scenario: Select one scenario with a larger file location
|
|
124
|
+
|
|
125
|
+
CASE: scenario.line <= file_location.line < next_scenario.line
|
|
126
|
+
|
|
127
|
+
When I run "behave -f plain --dry-run --no-skipped features/alice.feature:4"
|
|
128
|
+
Then it should pass with:
|
|
129
|
+
"""
|
|
130
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
131
|
+
0 scenarios passed, 0 failed, 1 skipped, 1 untested
|
|
132
|
+
"""
|
|
133
|
+
And the command output should contain:
|
|
134
|
+
"""
|
|
135
|
+
Feature: Alice
|
|
136
|
+
Scenario: Alice First
|
|
137
|
+
"""
|
|
138
|
+
But the command output should not contain:
|
|
139
|
+
"""
|
|
140
|
+
Scenario: Alice Last
|
|
141
|
+
"""
|
|
142
|
+
|
|
143
|
+
@file_location.select
|
|
144
|
+
Scenario: Select next scenario with its exact location
|
|
145
|
+
|
|
146
|
+
CASE: scenario.line < file_location.line == next_scenario.line
|
|
147
|
+
|
|
148
|
+
When I run "behave -f plain --dry-run --no-skipped features/alice.feature:6"
|
|
149
|
+
Then it should pass with:
|
|
150
|
+
"""
|
|
151
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
152
|
+
0 scenarios passed, 0 failed, 1 skipped, 1 untested
|
|
153
|
+
"""
|
|
154
|
+
And the command output should contain:
|
|
155
|
+
"""
|
|
156
|
+
Feature: Alice
|
|
157
|
+
Scenario: Alice Last
|
|
158
|
+
"""
|
|
159
|
+
But the command output should not contain:
|
|
160
|
+
"""
|
|
161
|
+
Scenario: Alice First
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
@file_location.select_first
|
|
165
|
+
Scenario: Select first scenario if line number is smaller than first scenario line
|
|
166
|
+
|
|
167
|
+
CASE: 0 < file_location.line < first_scenario.line
|
|
168
|
+
|
|
169
|
+
When I run "behave -f plain --dry-run --no-skipped features/alice.feature:1"
|
|
170
|
+
Then it should pass with:
|
|
171
|
+
"""
|
|
172
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
173
|
+
0 scenarios passed, 0 failed, 1 skipped, 1 untested
|
|
174
|
+
"""
|
|
175
|
+
And the command output should contain:
|
|
176
|
+
"""
|
|
177
|
+
Feature: Alice
|
|
178
|
+
Scenario: Alice First
|
|
179
|
+
"""
|
|
180
|
+
But the command output should not contain:
|
|
181
|
+
"""
|
|
182
|
+
Scenario: Alice Last
|
|
183
|
+
"""
|
|
184
|
+
|
|
185
|
+
@file_location.select_last
|
|
186
|
+
Scenario: Select last scenario when line number is too large
|
|
187
|
+
|
|
188
|
+
CASE: last_scenario.line < file.last_line < file_location.line
|
|
189
|
+
|
|
190
|
+
When I run "behave -f plain --dry-run --no-skipped features/alice.feature:100"
|
|
191
|
+
Then it should pass with:
|
|
192
|
+
"""
|
|
193
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
194
|
+
0 scenarios passed, 0 failed, 1 skipped, 1 untested
|
|
195
|
+
"""
|
|
196
|
+
And the command output should contain:
|
|
197
|
+
"""
|
|
198
|
+
Feature: Alice
|
|
199
|
+
Scenario: Alice Last
|
|
200
|
+
"""
|
|
201
|
+
But the command output should not contain:
|
|
202
|
+
"""
|
|
203
|
+
Scenario: Alice First
|
|
204
|
+
"""
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
@file_location.select_all
|
|
208
|
+
Scenario: Select all scenarios with line number 0 (zero)
|
|
209
|
+
When I run "behave -f plain --dry-run --no-skipped features/alice.feature:0"
|
|
210
|
+
Then it should pass with:
|
|
211
|
+
"""
|
|
212
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
213
|
+
0 scenarios passed, 0 failed, 0 skipped, 2 untested
|
|
214
|
+
"""
|
|
215
|
+
And the command output should contain "Scenario: Alice First"
|
|
216
|
+
And the command output should contain "Scenario: Alice Last"
|
|
217
|
+
But note that "all scenarios of this features are selected"
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
@file_location.select
|
|
221
|
+
@with.feature_configfile
|
|
222
|
+
Scenario: Select a scenario by using file locations from a features configfile
|
|
223
|
+
Given a file named "alice1.txt" with:
|
|
224
|
+
"""
|
|
225
|
+
# -- FEATURES CONFIGFILE:
|
|
226
|
+
# Selects Alice First
|
|
227
|
+
features/alice.feature:3
|
|
228
|
+
"""
|
|
229
|
+
When I run "behave -f plain --dry-run --no-skipped @alice1.txt"
|
|
230
|
+
Then it should pass with:
|
|
231
|
+
"""
|
|
232
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
233
|
+
0 scenarios passed, 0 failed, 1 skipped, 1 untested
|
|
234
|
+
"""
|
|
235
|
+
And the command output should contain:
|
|
236
|
+
"""
|
|
237
|
+
Feature: Alice
|
|
238
|
+
Scenario: Alice First
|
|
239
|
+
"""
|
|
240
|
+
But the command output should not contain:
|
|
241
|
+
"""
|
|
242
|
+
Scenario: Alice Last
|
|
243
|
+
"""
|
|
244
|
+
|
|
245
|
+
@file_location.autoselect_setup_teardown
|
|
246
|
+
Scenario: Auto-select scenarios tagged with @setup or @teardown if file location is used
|
|
247
|
+
When I run "behave -f plain --dry-run --no-skipped features/bob.feature:7"
|
|
248
|
+
Then it should pass with:
|
|
249
|
+
"""
|
|
250
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
251
|
+
0 scenarios passed, 0 failed, 1 skipped, 3 untested
|
|
252
|
+
"""
|
|
253
|
+
And the command output should contain "Scenario: Setup Bob"
|
|
254
|
+
And the command output should contain "Scenario: Bob in Berlin"
|
|
255
|
+
And the command output should contain "Scenario: Teardown Bob"
|
|
256
|
+
But the command output should not contain "Scenario: Bob in Paris"
|
|
257
|
+
|
|
258
|
+
@merge.file_locations
|
|
259
|
+
Scenario: Merge 2 adjacent file locations that refer to the same file
|
|
260
|
+
When I run "behave -f plain --dry-run --no-skipped features/alice.feature:3 features/alice.feature:6"
|
|
261
|
+
Then it should pass with:
|
|
262
|
+
"""
|
|
263
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
264
|
+
0 scenarios passed, 0 failed, 0 skipped, 2 untested
|
|
265
|
+
"""
|
|
266
|
+
And the command output should contain:
|
|
267
|
+
"""
|
|
268
|
+
Feature: Alice
|
|
269
|
+
Scenario: Alice First
|
|
270
|
+
When a step passes ... untested
|
|
271
|
+
|
|
272
|
+
Scenario: Alice Last
|
|
273
|
+
Then a step passes ... untested
|
|
274
|
+
"""
|
|
275
|
+
But the command output should not contain:
|
|
276
|
+
"""
|
|
277
|
+
Feature: Alice
|
|
278
|
+
Scenario: Alice First
|
|
279
|
+
When a step passes ... untested
|
|
280
|
+
|
|
281
|
+
Feature: Alice
|
|
282
|
+
Scenario: Alice Last
|
|
283
|
+
"""
|
|
284
|
+
And note that "both file locations are merged"
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
@merge.file_locations
|
|
288
|
+
@file_location.select_all
|
|
289
|
+
Scenario: Merge filename and adjacent file location that refer to the same file
|
|
290
|
+
When I run "behave -f plain --dry-run --no-skipped features/alice.feature:3 features/alice.feature"
|
|
291
|
+
Then it should pass with:
|
|
292
|
+
"""
|
|
293
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
294
|
+
0 scenarios passed, 0 failed, 0 skipped, 2 untested
|
|
295
|
+
"""
|
|
296
|
+
And the command output should contain:
|
|
297
|
+
"""
|
|
298
|
+
Feature: Alice
|
|
299
|
+
Scenario: Alice First
|
|
300
|
+
When a step passes ... untested
|
|
301
|
+
|
|
302
|
+
Scenario: Alice Last
|
|
303
|
+
Then a step passes ... untested
|
|
304
|
+
"""
|
|
305
|
+
But the command output should not contain:
|
|
306
|
+
"""
|
|
307
|
+
Feature: Alice
|
|
308
|
+
Scenario: Alice First
|
|
309
|
+
When a step passes ... untested
|
|
310
|
+
|
|
311
|
+
Feature: Alice
|
|
312
|
+
Scenario: Alice First
|
|
313
|
+
When a step passes ... untested
|
|
314
|
+
|
|
315
|
+
Scenario: Alice Last
|
|
316
|
+
Then a step passes ... untested
|
|
317
|
+
"""
|
|
318
|
+
And note that "duplicated file locations are removed in the merge"
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
@merge.file_locations
|
|
322
|
+
@with.feature_listfile
|
|
323
|
+
Scenario: Merge 2 adjacent file locations to same file from features-listfile
|
|
324
|
+
Given a file named "alice1_and_alice2.txt" with:
|
|
325
|
+
"""
|
|
326
|
+
# -- FEATURES CONFIGFILE:
|
|
327
|
+
# Selects Alice First, Alice Last
|
|
328
|
+
features/alice.feature:3
|
|
329
|
+
features/alice.feature:6
|
|
330
|
+
"""
|
|
331
|
+
When I run "behave -f plain --dry-run --no-skipped @alice1_and_alice2.txt"
|
|
332
|
+
Then it should pass with:
|
|
333
|
+
"""
|
|
334
|
+
0 features passed, 0 failed, 0 skipped, 1 untested
|
|
335
|
+
0 scenarios passed, 0 failed, 0 skipped, 2 untested
|
|
336
|
+
"""
|
|
337
|
+
And the command output should contain:
|
|
338
|
+
"""
|
|
339
|
+
Feature: Alice
|
|
340
|
+
Scenario: Alice First
|
|
341
|
+
When a step passes ... untested
|
|
342
|
+
|
|
343
|
+
Scenario: Alice Last
|
|
344
|
+
Then a step passes ... untested
|
|
345
|
+
"""
|
|
346
|
+
But the command output should not contain:
|
|
347
|
+
"""
|
|
348
|
+
Feature: Alice
|
|
349
|
+
Scenario: Alice First
|
|
350
|
+
When a step passes ... untested
|
|
351
|
+
|
|
352
|
+
Feature: Alice
|
|
353
|
+
Scenario: Alice Last
|
|
354
|
+
Then a step passes ... untested
|
|
355
|
+
"""
|
|
356
|
+
|
|
357
|
+
@no_merge.file_locations
|
|
358
|
+
@with.feature_listfile
|
|
359
|
+
Scenario: No merge occurs if file locations to same file are not adjacent
|
|
360
|
+
Given a file named "alice1_bob2_and_alice2.txt" with:
|
|
361
|
+
"""
|
|
362
|
+
# -- FEATURES CONFIGFILE:
|
|
363
|
+
# Selects Alice First, Bob in Paris (Setup, Teardown), Alice Last
|
|
364
|
+
features/alice.feature:3
|
|
365
|
+
features/bob.feature:10
|
|
366
|
+
features/alice.feature:6
|
|
367
|
+
"""
|
|
368
|
+
When I run "behave -f plain --dry-run --no-skipped @alice1_bob2_and_alice2.txt"
|
|
369
|
+
Then it should pass with:
|
|
370
|
+
"""
|
|
371
|
+
0 features passed, 0 failed, 0 skipped, 3 untested
|
|
372
|
+
0 scenarios passed, 0 failed, 3 skipped, 5 untested
|
|
373
|
+
"""
|
|
374
|
+
And the command output should contain:
|
|
375
|
+
"""
|
|
376
|
+
Feature: Alice
|
|
377
|
+
Scenario: Alice First
|
|
378
|
+
When a step passes ... untested
|
|
379
|
+
|
|
380
|
+
Feature: Bob
|
|
381
|
+
Scenario: Setup Bob
|
|
382
|
+
Given a step passes ... untested
|
|
383
|
+
|
|
384
|
+
Scenario: Bob in Paris
|
|
385
|
+
Then a step passes ... untested
|
|
386
|
+
|
|
387
|
+
Scenario: Teardown Bob
|
|
388
|
+
Then a step passes ... untested
|
|
389
|
+
|
|
390
|
+
Feature: Alice
|
|
391
|
+
Scenario: Alice Last
|
|
392
|
+
Then a step passes ... untested
|
|
393
|
+
"""
|
|
394
|
+
But the command output should not contain:
|
|
395
|
+
"""
|
|
396
|
+
Feature: Alice
|
|
397
|
+
Scenario: Alice First
|
|
398
|
+
When a step passes ... untested
|
|
399
|
+
|
|
400
|
+
Scenario: Alice Last
|
|
401
|
+
Then a step passes ... untested
|
|
402
|
+
"""
|
|
403
|
+
And note that "non-adjacent file locations to the same file are not merged"
|