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,130 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #99: Layout variation "a directory containing your feature files" is broken for running single features
|
|
3
|
+
|
|
4
|
+
. When I use a layout as described in the 1.2.2 documentation,
|
|
5
|
+
. I can only specify a whole directory of feature files to run.
|
|
6
|
+
. Specifying a single feature file results in an error from behave:
|
|
7
|
+
.
|
|
8
|
+
. $ behave -v tests/feature/webui/features/feature_under_test.feature
|
|
9
|
+
. ...
|
|
10
|
+
. Supplied path: "tests/feature/webui/features/feature_under_test.feature"
|
|
11
|
+
. Primary path is to a file so using its directory
|
|
12
|
+
. Trying base directory: .../tests/feature/webui/features
|
|
13
|
+
. Trying base directory: .../tests/feature/webui
|
|
14
|
+
. ERROR: Could not find "steps" directory in your specified path '.../tests/feature/webui/features'
|
|
15
|
+
. No steps directory in '.../tests/feature/webui/features'
|
|
16
|
+
.
|
|
17
|
+
. My directory layout is as follows:
|
|
18
|
+
.
|
|
19
|
+
. .../tests/feature/webui/
|
|
20
|
+
. +-- features/
|
|
21
|
+
. +-- steps/
|
|
22
|
+
. +-- environment.py
|
|
23
|
+
.
|
|
24
|
+
. SEE ALSO:
|
|
25
|
+
. * http://packages.python.org/behave/gherkin.html#layout-variations
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
Background:
|
|
29
|
+
Given a new working directory
|
|
30
|
+
And a file named "root/steps/steps.py" with:
|
|
31
|
+
"""
|
|
32
|
+
from behave import step
|
|
33
|
+
|
|
34
|
+
@step(u'a step passes')
|
|
35
|
+
def step_passes(context):
|
|
36
|
+
pass
|
|
37
|
+
"""
|
|
38
|
+
And a file named "root/features/alice.feature" with:
|
|
39
|
+
"""
|
|
40
|
+
Feature: Alice
|
|
41
|
+
Scenario:
|
|
42
|
+
Given a step passes
|
|
43
|
+
"""
|
|
44
|
+
And a file named "root/features/bob.feature" with:
|
|
45
|
+
"""
|
|
46
|
+
Feature: Bob
|
|
47
|
+
Scenario:
|
|
48
|
+
Given a step passes
|
|
49
|
+
"""
|
|
50
|
+
And a file named "root/features2/charly.feature" with:
|
|
51
|
+
"""
|
|
52
|
+
Feature: Charly
|
|
53
|
+
Scenario:
|
|
54
|
+
When a step passes
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
Scenario: Run features with root directory
|
|
58
|
+
When I run "behave -f plain --no-timings root"
|
|
59
|
+
Then it should pass with:
|
|
60
|
+
"""
|
|
61
|
+
3 features passed, 0 failed, 0 skipped
|
|
62
|
+
3 scenarios passed, 0 failed, 0 skipped
|
|
63
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
64
|
+
"""
|
|
65
|
+
And the command output should contain:
|
|
66
|
+
"""
|
|
67
|
+
Feature: Alice
|
|
68
|
+
Scenario:
|
|
69
|
+
Given a step passes ... passed
|
|
70
|
+
Feature: Bob
|
|
71
|
+
Scenario:
|
|
72
|
+
Given a step passes ... passed
|
|
73
|
+
Feature: Charly
|
|
74
|
+
Scenario:
|
|
75
|
+
When a step passes ... passed
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
Scenario: Run features with root/features directory
|
|
79
|
+
When I run "behave -f plain --no-timings root/features"
|
|
80
|
+
Then it should pass with:
|
|
81
|
+
"""
|
|
82
|
+
2 features passed, 0 failed, 0 skipped
|
|
83
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
84
|
+
2 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
85
|
+
"""
|
|
86
|
+
And the command output should contain:
|
|
87
|
+
"""
|
|
88
|
+
Feature: Alice
|
|
89
|
+
Scenario:
|
|
90
|
+
Given a step passes ... passed
|
|
91
|
+
Feature: Bob
|
|
92
|
+
Scenario:
|
|
93
|
+
Given a step passes ... passed
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
Scenario: Run features with feature files
|
|
97
|
+
When I run "behave -f plain --no-timings root/features/alice.feature root/features2/charly.feature"
|
|
98
|
+
Then it should pass with:
|
|
99
|
+
"""
|
|
100
|
+
2 features passed, 0 failed, 0 skipped
|
|
101
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
102
|
+
2 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
103
|
+
"""
|
|
104
|
+
And the command output should contain:
|
|
105
|
+
"""
|
|
106
|
+
Feature: Alice
|
|
107
|
+
Scenario:
|
|
108
|
+
Given a step passes ... passed
|
|
109
|
+
Feature: Charly
|
|
110
|
+
Scenario:
|
|
111
|
+
When a step passes ... passed
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
Scenario: Run features with feature dir and feature files (other ordering)
|
|
115
|
+
When I run "behave -f plain --no-timings root/features2 root/features/alice.feature"
|
|
116
|
+
Then it should pass with:
|
|
117
|
+
"""
|
|
118
|
+
2 features passed, 0 failed, 0 skipped
|
|
119
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
120
|
+
2 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
121
|
+
"""
|
|
122
|
+
And the command output should contain:
|
|
123
|
+
"""
|
|
124
|
+
Feature: Charly
|
|
125
|
+
Scenario:
|
|
126
|
+
When a step passes ... passed
|
|
127
|
+
Feature: Alice
|
|
128
|
+
Scenario:
|
|
129
|
+
Given a step passes ... passed
|
|
130
|
+
"""
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #109: Insists that implemented tests are not implemented
|
|
3
|
+
|
|
4
|
+
. STATUS: Resolved, not a behave problem.
|
|
5
|
+
.
|
|
6
|
+
. Following feature file marks implemented step "when I submit the following data"
|
|
7
|
+
. as not implemented.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
Scenario:
|
|
11
|
+
Given a new working directory
|
|
12
|
+
And a file named "features/syndrome109.feature" with:
|
|
13
|
+
"""
|
|
14
|
+
@wip
|
|
15
|
+
Feature: Manage accounts from the admin interface
|
|
16
|
+
|
|
17
|
+
Scenario: Login successfully via login form
|
|
18
|
+
Given I navigate to "/admin/"
|
|
19
|
+
when I submit the following data
|
|
20
|
+
| name | value |
|
|
21
|
+
| username | admin@foo.bar |
|
|
22
|
+
| password | pass |
|
|
23
|
+
then I see the word "Welcome"
|
|
24
|
+
|
|
25
|
+
Scenario: Create user via admin user creation form
|
|
26
|
+
Given I navigate to "/admin/users/user/add/"
|
|
27
|
+
when I submit the following data
|
|
28
|
+
| name | value |
|
|
29
|
+
| email | spaaaaaaaaaaaaaaaaaaam@ham.eggs |
|
|
30
|
+
| password1 | pass |
|
|
31
|
+
| password2 | pass |
|
|
32
|
+
then I see the word "successfully"
|
|
33
|
+
"""
|
|
34
|
+
And a file named "features/steps/steps.py" with:
|
|
35
|
+
"""
|
|
36
|
+
from behave import given, when, then
|
|
37
|
+
|
|
38
|
+
@given(u'I navigate to "{url}"')
|
|
39
|
+
def step_navigate_to_url(context, url):
|
|
40
|
+
pass
|
|
41
|
+
|
|
42
|
+
@when(u'I submit the following data')
|
|
43
|
+
def step_submit_data(context):
|
|
44
|
+
pass
|
|
45
|
+
|
|
46
|
+
@then(u'I see the word "{word}"')
|
|
47
|
+
def step_see_word(context, word):
|
|
48
|
+
pass
|
|
49
|
+
"""
|
|
50
|
+
When I run "behave -w features/syndrome109.feature"
|
|
51
|
+
Then it should pass with:
|
|
52
|
+
"""
|
|
53
|
+
1 feature passed, 0 failed, 0 skipped
|
|
54
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
55
|
+
6 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
56
|
+
"""
|
|
57
|
+
And the command output should not contain:
|
|
58
|
+
"""
|
|
59
|
+
You can implement step definitions for undefined steps with these snippets:
|
|
60
|
+
"""
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #111: Comment following @wip tag results in scenario being ignored
|
|
3
|
+
|
|
4
|
+
. If a comment is placed after the @wip tag, the following scenario
|
|
5
|
+
. is ignored by behave:
|
|
6
|
+
.
|
|
7
|
+
. @wip # comment: this is work in progress
|
|
8
|
+
. Scenario: test scenario
|
|
9
|
+
.
|
|
10
|
+
. results in behave -w not running the "test scenario".
|
|
11
|
+
. After removing the comment, it runs as expected.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Scenario: Test Setup
|
|
15
|
+
Given a new working directory
|
|
16
|
+
And a file named "features/steps/passing_steps.py" with:
|
|
17
|
+
"""
|
|
18
|
+
from behave import step
|
|
19
|
+
|
|
20
|
+
@step(u'a step passes')
|
|
21
|
+
def step_passes(context):
|
|
22
|
+
pass
|
|
23
|
+
"""
|
|
24
|
+
And a file named "features/syndrome111.feature" with:
|
|
25
|
+
"""
|
|
26
|
+
Feature:
|
|
27
|
+
|
|
28
|
+
@wip # Comment: blabla
|
|
29
|
+
Scenario: S1
|
|
30
|
+
Given a step passes
|
|
31
|
+
|
|
32
|
+
@wip @one # Comment: foobar
|
|
33
|
+
Scenario: S2
|
|
34
|
+
Given a step passes
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
Scenario: Scenario w/ comment on tag-line should run as normal
|
|
38
|
+
When I run "behave --wip features/syndrome111.feature"
|
|
39
|
+
Then it should pass with:
|
|
40
|
+
"""
|
|
41
|
+
1 feature passed, 0 failed, 0 skipped
|
|
42
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
43
|
+
2 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
Scenario: Ensure 2nd scenario can be selected with other tag
|
|
47
|
+
When I run "behave -f plain --tags=one features/syndrome111.feature"
|
|
48
|
+
Then it should pass with:
|
|
49
|
+
"""
|
|
50
|
+
1 feature passed, 0 failed, 0 skipped
|
|
51
|
+
1 scenario passed, 0 failed, 1 skipped
|
|
52
|
+
1 step passed, 0 failed, 1 skipped, 0 undefined
|
|
53
|
+
"""
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@change_request
|
|
3
|
+
Feature: Issue #112: Improvement to AmbiguousStep error
|
|
4
|
+
|
|
5
|
+
. AmbiguousStep could be more useful if it also showed the existing string
|
|
6
|
+
. with which the new one is clashing. This is particularly useful
|
|
7
|
+
. if using step parameters.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
Background:
|
|
11
|
+
Given a new working directory
|
|
12
|
+
And a file named "features/syndrome112.feature" with:
|
|
13
|
+
"""
|
|
14
|
+
Feature:
|
|
15
|
+
Scenario:
|
|
16
|
+
Given I buy 10 oranges
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
Scenario: Good step ordering -- From specific to generic regular expression
|
|
20
|
+
Given a file named "features/steps/good_steps.py" with:
|
|
21
|
+
"""
|
|
22
|
+
from behave import given, when, then
|
|
23
|
+
|
|
24
|
+
# -- ORDERING-IMPORTANT: From more specific steps to less specific.
|
|
25
|
+
@given(u'I buy {number:n} {items:w}')
|
|
26
|
+
def step_given_I_buy2(context, number, items):
|
|
27
|
+
pass
|
|
28
|
+
|
|
29
|
+
# -- OTHERWISE: Generic step matches all other patterns.
|
|
30
|
+
@given(u'I buy {amount} {product}')
|
|
31
|
+
def step_given_I_buy(context, amount, product):
|
|
32
|
+
pass
|
|
33
|
+
"""
|
|
34
|
+
When I run "behave -c features/syndrome112.feature"
|
|
35
|
+
Then it should pass with:
|
|
36
|
+
"""
|
|
37
|
+
1 feature passed, 0 failed, 0 skipped
|
|
38
|
+
1 scenario passed, 0 failed, 0 skipped
|
|
39
|
+
1 step passed, 0 failed, 0 skipped, 0 undefined
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
Scenario: Bad step ordering causes AmbiguousStep
|
|
44
|
+
Given a file named "features/steps/bad_steps.py" with:
|
|
45
|
+
"""
|
|
46
|
+
from behave import given, when, then
|
|
47
|
+
|
|
48
|
+
# -- ORDERING-VIOLATED: Generic step comes first.
|
|
49
|
+
@given(u'I buy {amount} {product}')
|
|
50
|
+
def step_given_I_buy(context, amount, product):
|
|
51
|
+
pass
|
|
52
|
+
|
|
53
|
+
# -- AMBIGUOUS-STEP: Will occur here.
|
|
54
|
+
@given(u'I buy {number:n} {items:w}')
|
|
55
|
+
def step_given_I_buy2(context, number, items):
|
|
56
|
+
pass
|
|
57
|
+
"""
|
|
58
|
+
When I run "behave -c features/syndrome112.feature"
|
|
59
|
+
Then it should fail
|
|
60
|
+
And the command output should contain:
|
|
61
|
+
"""
|
|
62
|
+
AmbiguousStep: @given('I buy {number:n} {items:w}') has already been defined in
|
|
63
|
+
existing step @given('I buy {amount} {product}') at features/steps/bad_steps.py:4
|
|
64
|
+
"""
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@change_request
|
|
3
|
+
Feature: Issue #114: Avoid unnecessary blank lines w/ --no-skipped option
|
|
4
|
+
|
|
5
|
+
. Unnessary blank lines appear when you use (for each skipped feature):
|
|
6
|
+
.
|
|
7
|
+
. behave -f progress --tags=@one --no-skipped ...
|
|
8
|
+
|
|
9
|
+
@setup
|
|
10
|
+
Scenario: Feature Setup
|
|
11
|
+
Given a new working directory
|
|
12
|
+
And a file named "features/steps/passing_steps.py" with:
|
|
13
|
+
"""
|
|
14
|
+
from behave import step
|
|
15
|
+
|
|
16
|
+
@step(u'a step passes')
|
|
17
|
+
def step_passes(context):
|
|
18
|
+
pass
|
|
19
|
+
"""
|
|
20
|
+
And a file named "features/e1.feature" with:
|
|
21
|
+
"""
|
|
22
|
+
@example
|
|
23
|
+
Feature: E1
|
|
24
|
+
Scenario: S1.1
|
|
25
|
+
Given a step passes
|
|
26
|
+
"""
|
|
27
|
+
And a file named "features/e2.feature" with:
|
|
28
|
+
"""
|
|
29
|
+
@exclude
|
|
30
|
+
Feature: E2
|
|
31
|
+
Scenario: S2.1
|
|
32
|
+
Given a step passes
|
|
33
|
+
"""
|
|
34
|
+
And a file named "features/e3.feature" with:
|
|
35
|
+
"""
|
|
36
|
+
@example
|
|
37
|
+
Feature: E3
|
|
38
|
+
Scenario: S3.1
|
|
39
|
+
Given a step passes
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
Scenario: Run Features with tags and --show-skipped option
|
|
43
|
+
When I run "behave -f progress --tags=@example"
|
|
44
|
+
Then it should pass with:
|
|
45
|
+
"""
|
|
46
|
+
2 features passed, 0 failed, 1 skipped
|
|
47
|
+
2 scenarios passed, 0 failed, 1 skipped
|
|
48
|
+
2 steps passed, 0 failed, 1 skipped, 0 undefined
|
|
49
|
+
"""
|
|
50
|
+
And the command output should contain:
|
|
51
|
+
"""
|
|
52
|
+
features/e1.feature .
|
|
53
|
+
features/e2.feature S
|
|
54
|
+
features/e3.feature .
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
Scenario: Run Features with tag and --no-skipped option (CASE 1)
|
|
58
|
+
When I run "behave -f progress --tags=@example --no-skipped"
|
|
59
|
+
Then it should pass with:
|
|
60
|
+
"""
|
|
61
|
+
2 features passed, 0 failed, 1 skipped
|
|
62
|
+
2 scenarios passed, 0 failed, 1 skipped
|
|
63
|
+
2 steps passed, 0 failed, 1 skipped, 0 undefined
|
|
64
|
+
"""
|
|
65
|
+
And the command output should contain exactly:
|
|
66
|
+
"""
|
|
67
|
+
features/e1.feature .
|
|
68
|
+
features/e3.feature .
|
|
69
|
+
"""
|
|
70
|
+
But the command output should not contain exactly:
|
|
71
|
+
"""
|
|
72
|
+
features/e1.feature .
|
|
73
|
+
|
|
74
|
+
features/e3.feature .
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
Scenario: Run Features with other tag and --no-skipped option (CASE 2)
|
|
78
|
+
When I run "behave -f progress --tags=@exclude --no-skipped"
|
|
79
|
+
Then it should pass with:
|
|
80
|
+
"""
|
|
81
|
+
1 feature passed, 0 failed, 2 skipped
|
|
82
|
+
1 scenario passed, 0 failed, 2 skipped
|
|
83
|
+
1 step passed, 0 failed, 2 skipped, 0 undefined
|
|
84
|
+
"""
|
|
85
|
+
And the command output should contain exactly:
|
|
86
|
+
"""
|
|
87
|
+
features/e2.feature .
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
Scenario: Run Features with tag, --no-skipped and plain formatter (CASE 3)
|
|
91
|
+
When I run "behave -f plain --tags=@example --no-skipped -T"
|
|
92
|
+
Then it should pass with:
|
|
93
|
+
"""
|
|
94
|
+
2 features passed, 0 failed, 1 skipped
|
|
95
|
+
2 scenarios passed, 0 failed, 1 skipped
|
|
96
|
+
2 steps passed, 0 failed, 1 skipped, 0 undefined
|
|
97
|
+
"""
|
|
98
|
+
And the command output should contain exactly:
|
|
99
|
+
"""
|
|
100
|
+
Feature: E1
|
|
101
|
+
|
|
102
|
+
Scenario: S1.1
|
|
103
|
+
Given a step passes ... passed
|
|
104
|
+
|
|
105
|
+
Feature: E3
|
|
106
|
+
|
|
107
|
+
"""
|
|
108
|
+
But the command output should not contain exactly:
|
|
109
|
+
"""
|
|
110
|
+
Feature: E1
|
|
111
|
+
|
|
112
|
+
Scenario: S1.1
|
|
113
|
+
Given a step passes ... passed
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
Feature: E3
|
|
117
|
+
|
|
118
|
+
"""
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@change_request
|
|
3
|
+
Feature: Issue #116: SummaryReporter shows failed scenarios list
|
|
4
|
+
|
|
5
|
+
Scenario: Test Setup
|
|
6
|
+
Given a new working directory
|
|
7
|
+
And a file named "features/steps/passing_failing_steps.py" with:
|
|
8
|
+
"""
|
|
9
|
+
from behave import step
|
|
10
|
+
|
|
11
|
+
@step(u'a step passes')
|
|
12
|
+
def step_passes(context):
|
|
13
|
+
pass
|
|
14
|
+
|
|
15
|
+
@step(u'a step fails')
|
|
16
|
+
def step_fails(context):
|
|
17
|
+
assert False, "FAILS"
|
|
18
|
+
"""
|
|
19
|
+
And a file named "features/e1.feature" with:
|
|
20
|
+
"""
|
|
21
|
+
Feature: E1
|
|
22
|
+
|
|
23
|
+
Scenario: E1.1
|
|
24
|
+
Given a step passes
|
|
25
|
+
|
|
26
|
+
@xfail
|
|
27
|
+
Scenario: E1.2 (XFAIL)
|
|
28
|
+
Given a step fails
|
|
29
|
+
|
|
30
|
+
Scenario: E1.3
|
|
31
|
+
Given a step passes
|
|
32
|
+
"""
|
|
33
|
+
And a file named "features/e2.feature" with:
|
|
34
|
+
"""
|
|
35
|
+
@example2
|
|
36
|
+
Feature: E2
|
|
37
|
+
|
|
38
|
+
@xfail
|
|
39
|
+
Scenario: E2.1 (XFAIL)
|
|
40
|
+
Given a step fails
|
|
41
|
+
|
|
42
|
+
Scenario: E2.2
|
|
43
|
+
Given a step passes
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
Scenario: Summary shows list of failed scenarios when at least one fails
|
|
47
|
+
When I run "behave -f plain features/"
|
|
48
|
+
Then it should fail
|
|
49
|
+
And the command output should contain:
|
|
50
|
+
"""
|
|
51
|
+
Failing scenarios:
|
|
52
|
+
features/e1.feature:7 E1.2 (XFAIL)
|
|
53
|
+
features/e2.feature:5 E2.1 (XFAIL)
|
|
54
|
+
|
|
55
|
+
0 features passed, 2 failed, 0 skipped
|
|
56
|
+
3 scenarios passed, 2 failed, 0 skipped
|
|
57
|
+
3 steps passed, 2 failed, 0 skipped, 0 undefined
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
Scenario: Summary hides list of failed scenarios when all scenarios pass
|
|
61
|
+
When I run "behave -f plain --tags=~@xfail features/"
|
|
62
|
+
Then it should pass with:
|
|
63
|
+
"""
|
|
64
|
+
2 features passed, 0 failed, 0 skipped
|
|
65
|
+
3 scenarios passed, 0 failed, 2 skipped
|
|
66
|
+
3 steps passed, 0 failed, 2 skipped, 0 undefined
|
|
67
|
+
"""
|
|
68
|
+
But the command output should not contain:
|
|
69
|
+
"""
|
|
70
|
+
Failing scenarios:
|
|
71
|
+
"""
|