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,102 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #63: 'ScenarioOutline' object has no attribute 'stdout'
|
|
3
|
+
|
|
4
|
+
The problem occurs when "behave --junit ..." is used
|
|
5
|
+
And a feature contains one or more ScenarioOutline(s).
|
|
6
|
+
|
|
7
|
+
Background: Test Setup
|
|
8
|
+
Given a new working directory
|
|
9
|
+
And a file named "features/steps/steps.py" with:
|
|
10
|
+
"""
|
|
11
|
+
# -- OMIT: from __future__ import print_function
|
|
12
|
+
from behave import given
|
|
13
|
+
import sys
|
|
14
|
+
|
|
15
|
+
def generate_output(step, outcome, name):
|
|
16
|
+
# -- OMIT: print("{0}0 {1}: {2};".format(step, outcome, name))
|
|
17
|
+
sys.stdout.write("{0}1 {1}: {2};\n".format(step, outcome, name))
|
|
18
|
+
sys.stderr.write("{0}2 {1}: {2};\n".format(step, outcome, name))
|
|
19
|
+
|
|
20
|
+
@given(u'a {outcome} step with "{name}"')
|
|
21
|
+
def step(context, outcome, name):
|
|
22
|
+
context.name = name
|
|
23
|
+
generate_output("Given", outcome, name)
|
|
24
|
+
assert outcome == "passing"
|
|
25
|
+
|
|
26
|
+
@when(u'a {outcome} step with "{name}" occurs')
|
|
27
|
+
def step(context, outcome, name):
|
|
28
|
+
generate_output("When", outcome, name)
|
|
29
|
+
assert outcome == "passing"
|
|
30
|
+
|
|
31
|
+
@then(u'a {outcome} step with "{name}" is reached')
|
|
32
|
+
def step(context, outcome, name):
|
|
33
|
+
generate_output("Then", outcome, name)
|
|
34
|
+
assert outcome == "passing"
|
|
35
|
+
assert context.name == name
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
Scenario: ScenarioOutline with Passing Steps
|
|
39
|
+
Given a file named "features/issue63_case1.feature" with:
|
|
40
|
+
"""
|
|
41
|
+
Feature: ScenarioOutline with Passing Steps
|
|
42
|
+
Scenario Outline:
|
|
43
|
+
Given a passing step with "<name>"
|
|
44
|
+
When a passing step with "<name>" occurs
|
|
45
|
+
Then a passing step with "<name>" is reached
|
|
46
|
+
|
|
47
|
+
Examples:
|
|
48
|
+
|name |
|
|
49
|
+
|Alice|
|
|
50
|
+
|Bob |
|
|
51
|
+
"""
|
|
52
|
+
When I run "behave -c --junit features/issue63_case1.feature"
|
|
53
|
+
Then it should pass with:
|
|
54
|
+
"""
|
|
55
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
56
|
+
6 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
57
|
+
"""
|
|
58
|
+
But the command output should not contain:
|
|
59
|
+
"""
|
|
60
|
+
AttributeError: 'ScenarioOutline' object has no attribute 'stdout'
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
Scenario: ScenarioOutline with Passing and Failing Steps
|
|
64
|
+
Given a file named "features/issue63_case2.feature" with:
|
|
65
|
+
"""
|
|
66
|
+
Feature: ScenarioOutline with Passing and Failing Steps
|
|
67
|
+
Scenario Outline:
|
|
68
|
+
Given a passing step with "<name>"
|
|
69
|
+
When a failing step with "<name>" occurs
|
|
70
|
+
Then a passing step with "<name>" is reached
|
|
71
|
+
|
|
72
|
+
Examples:
|
|
73
|
+
|name |
|
|
74
|
+
|Alice|
|
|
75
|
+
|Bob |
|
|
76
|
+
"""
|
|
77
|
+
When I run "behave -c --junit features/issue63_case2.feature"
|
|
78
|
+
Then it should fail with:
|
|
79
|
+
"""
|
|
80
|
+
0 scenarios passed, 2 failed, 0 skipped
|
|
81
|
+
2 steps passed, 2 failed, 2 skipped, 0 undefined
|
|
82
|
+
"""
|
|
83
|
+
But the command output should not contain:
|
|
84
|
+
"""
|
|
85
|
+
AttributeError: 'ScenarioOutline' object has no attribute 'stdout'
|
|
86
|
+
"""
|
|
87
|
+
And the command output should not contain:
|
|
88
|
+
"""
|
|
89
|
+
AttributeError: 'Scenario' object has no attribute 'exception'
|
|
90
|
+
"""
|
|
91
|
+
And the command output should contain:
|
|
92
|
+
"""
|
|
93
|
+
Captured stdout:
|
|
94
|
+
Given1 passing: Alice;
|
|
95
|
+
When1 failing: Alice;
|
|
96
|
+
"""
|
|
97
|
+
And the command output should contain:
|
|
98
|
+
"""
|
|
99
|
+
Captured stderr:
|
|
100
|
+
Given2 passing: Alice;
|
|
101
|
+
When2 failing: Alice;
|
|
102
|
+
"""
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #64 Exit status not set to 1 even there are failures in certain cases
|
|
3
|
+
|
|
4
|
+
The behave exit status not always returns 1 when failure(s) occur.
|
|
5
|
+
The problem was associated with the Feature.run() logic implementation.
|
|
6
|
+
|
|
7
|
+
This problem was first discovered while verifying issue #52 (see comments).
|
|
8
|
+
See also similar test when tags select a subset of scenarios.
|
|
9
|
+
|
|
10
|
+
RELATED ISSUES:
|
|
11
|
+
* issue #52
|
|
12
|
+
|
|
13
|
+
Background: Test Setup
|
|
14
|
+
Given a new working directory
|
|
15
|
+
Given a file named "features/steps/steps.py" with:
|
|
16
|
+
"""
|
|
17
|
+
from behave import given
|
|
18
|
+
|
|
19
|
+
@given(u'passing')
|
|
20
|
+
def step(context):
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
@given(u'failing')
|
|
24
|
+
def step(context):
|
|
25
|
+
assert False, "failing"
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
Scenario: Failing in First Scenario
|
|
29
|
+
Given a file named "features/issue64_case1.feature" with:
|
|
30
|
+
"""
|
|
31
|
+
Feature: Failing in First Scenario
|
|
32
|
+
Scenario:
|
|
33
|
+
Given failing
|
|
34
|
+
|
|
35
|
+
Scenario:
|
|
36
|
+
Given passing
|
|
37
|
+
"""
|
|
38
|
+
When I run "behave --format=plain features/issue64_case1.feature"
|
|
39
|
+
Then it should fail with:
|
|
40
|
+
"""
|
|
41
|
+
0 features passed, 1 failed, 0 skipped
|
|
42
|
+
1 scenario passed, 1 failed, 0 skipped
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
Scenario: Failing in Middle Scenario
|
|
46
|
+
Given a file named "features/issue64_case2.feature" with:
|
|
47
|
+
"""
|
|
48
|
+
Feature: Failing in Middle Scenario
|
|
49
|
+
Scenario:
|
|
50
|
+
Given passing
|
|
51
|
+
Scenario:
|
|
52
|
+
Given failing
|
|
53
|
+
Scenario:
|
|
54
|
+
Given passing
|
|
55
|
+
"""
|
|
56
|
+
When I run "behave --format=plain features/issue64_case2.feature"
|
|
57
|
+
Then it should fail with:
|
|
58
|
+
"""
|
|
59
|
+
0 features passed, 1 failed, 0 skipped
|
|
60
|
+
2 scenarios passed, 1 failed, 0 skipped
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
Scenario: Failing in Last Scenario
|
|
64
|
+
Given a file named "features/issue64_case3.feature" with:
|
|
65
|
+
"""
|
|
66
|
+
Feature: Failing in Last Scenario
|
|
67
|
+
Scenario:
|
|
68
|
+
Given passing
|
|
69
|
+
Scenario:
|
|
70
|
+
Given passing
|
|
71
|
+
Scenario:
|
|
72
|
+
Given failing
|
|
73
|
+
"""
|
|
74
|
+
When I run "behave --format=plain features/issue64_case3.feature"
|
|
75
|
+
Then it should fail with:
|
|
76
|
+
"""
|
|
77
|
+
0 features passed, 1 failed, 0 skipped
|
|
78
|
+
2 scenarios passed, 1 failed, 0 skipped
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
Scenario: Failing in First and Last Scenario
|
|
82
|
+
Given a file named "features/issue64_case4.feature" with:
|
|
83
|
+
"""
|
|
84
|
+
Feature: Failing in First and Last Scenario
|
|
85
|
+
Scenario:
|
|
86
|
+
Given failing
|
|
87
|
+
Scenario:
|
|
88
|
+
Given passing
|
|
89
|
+
Scenario:
|
|
90
|
+
Given failing
|
|
91
|
+
"""
|
|
92
|
+
When I run "behave --format=plain features/issue64_case4.feature"
|
|
93
|
+
Then it should fail with:
|
|
94
|
+
"""
|
|
95
|
+
0 features passed, 1 failed, 0 skipped
|
|
96
|
+
1 scenario passed, 2 failed, 0 skipped
|
|
97
|
+
"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #65 Unrecognized --tag-help argument
|
|
3
|
+
|
|
4
|
+
The "behave --help" output refers to the option "--tag-help"
|
|
5
|
+
in the description of the "--tags" option.
|
|
6
|
+
The correct option for more help on tags is "--tags-help".
|
|
7
|
+
|
|
8
|
+
Scenario: Ensure environment assumptions are correct (Sanity Check)
|
|
9
|
+
Given a new working directory
|
|
10
|
+
When I run "behave --help"
|
|
11
|
+
Then the command output should contain:
|
|
12
|
+
"""
|
|
13
|
+
--tags-help
|
|
14
|
+
"""
|
|
15
|
+
But the command output should not contain:
|
|
16
|
+
"""
|
|
17
|
+
--tag-help
|
|
18
|
+
"""
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #66: context.text and context.table are not cleared
|
|
3
|
+
|
|
4
|
+
I noticed that context.table and context.text survive after the step is finished.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Background: Test Setup
|
|
8
|
+
Given a new working directory
|
|
9
|
+
And a file named "features/steps/steps.py" with:
|
|
10
|
+
"""
|
|
11
|
+
from behave import given, when, then
|
|
12
|
+
from hamcrest import assert_that, equal_to, is_not, is_, none
|
|
13
|
+
import six
|
|
14
|
+
|
|
15
|
+
@given(u'a step with multiline text')
|
|
16
|
+
def step(context):
|
|
17
|
+
assert context.text is not None
|
|
18
|
+
assert context.text, "Ensure non-empty"
|
|
19
|
+
assert isinstance(context.text, six.string_types)
|
|
20
|
+
|
|
21
|
+
@given(u'a step with a table')
|
|
22
|
+
def step(context):
|
|
23
|
+
assert context.table is not None
|
|
24
|
+
|
|
25
|
+
@when(u'I check the "context.{name}" attribute')
|
|
26
|
+
def step(context, name):
|
|
27
|
+
context.name = name
|
|
28
|
+
context.value = getattr(context, name, None)
|
|
29
|
+
|
|
30
|
+
@then(u'its value is None')
|
|
31
|
+
def step(context):
|
|
32
|
+
assert_that(context.value, is_(none()))
|
|
33
|
+
|
|
34
|
+
@then(u'its value is "{value}"')
|
|
35
|
+
def step(context, value):
|
|
36
|
+
assert_that(context.value, equal_to(value))
|
|
37
|
+
|
|
38
|
+
@then(u'its value is not "{value}"')
|
|
39
|
+
def step(context, value):
|
|
40
|
+
assert_that(value, is_not(equal_to(context.value)))
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
Scenario: Ensure multiline text data is cleared for next step
|
|
44
|
+
Given a file named "features/issue66_case1.feature" with:
|
|
45
|
+
"""
|
|
46
|
+
Feature:
|
|
47
|
+
Scenario:
|
|
48
|
+
Given a step with multiline text:
|
|
49
|
+
'''
|
|
50
|
+
Alice, Bob and Charly
|
|
51
|
+
'''
|
|
52
|
+
When I check the "context.text" attribute
|
|
53
|
+
Then its value is not "Alice, Bob and Charly"
|
|
54
|
+
But its value is None
|
|
55
|
+
"""
|
|
56
|
+
When I run "behave -f plain features/issue66_case1.feature"
|
|
57
|
+
Then it should pass with:
|
|
58
|
+
"""
|
|
59
|
+
1 scenario passed, 0 failed, 0 skipped
|
|
60
|
+
4 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
Scenario: Ensure table data is cleared for next step
|
|
64
|
+
Given a file named "features/issue66_case2.feature" with:
|
|
65
|
+
"""
|
|
66
|
+
Feature:
|
|
67
|
+
Scenario:
|
|
68
|
+
Given a step with a table:
|
|
69
|
+
| name | gender |
|
|
70
|
+
| Alice | female |
|
|
71
|
+
| Bob | male |
|
|
72
|
+
When I check the "context.table" attribute
|
|
73
|
+
Then its value is None
|
|
74
|
+
"""
|
|
75
|
+
When I run "behave -f plain features/issue66_case2.feature"
|
|
76
|
+
Then it should pass with:
|
|
77
|
+
"""
|
|
78
|
+
1 scenario passed, 0 failed, 0 skipped
|
|
79
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
80
|
+
"""
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #67: JSON formatter cannot serialize tables.
|
|
3
|
+
|
|
4
|
+
The JSON formatter cannot handle tables (currently):
|
|
5
|
+
|
|
6
|
+
* Table as setup/intermediate/result table in steps of scenario
|
|
7
|
+
* Examples tables in a ScenarioOutline
|
|
8
|
+
|
|
9
|
+
A JSON exception occurs when such a feature file should be processed.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Scenario: Scenario with Tables
|
|
13
|
+
Given a new working directory
|
|
14
|
+
And a file named "features/steps/steps1.py" with:
|
|
15
|
+
"""
|
|
16
|
+
from behave import given, when, then
|
|
17
|
+
|
|
18
|
+
@given(u'I add the following employees')
|
|
19
|
+
def step(context):
|
|
20
|
+
pass # -- SKIP: Table processing here.
|
|
21
|
+
|
|
22
|
+
@when(u'I select department "{department}"')
|
|
23
|
+
def step(context, department):
|
|
24
|
+
context.department = department
|
|
25
|
+
|
|
26
|
+
@then(u'I get the following employees')
|
|
27
|
+
def step(context):
|
|
28
|
+
pass # -- SKIP: Table processing here.
|
|
29
|
+
"""
|
|
30
|
+
And a file named "features/issue67_case1.feature" with:
|
|
31
|
+
"""
|
|
32
|
+
Feature: Scenario with Tables
|
|
33
|
+
Scenario:
|
|
34
|
+
Given I add the following employees:
|
|
35
|
+
| name | department |
|
|
36
|
+
| Alice | Wonderland |
|
|
37
|
+
| Bob | Moonwalk |
|
|
38
|
+
When I select department "Wonderland"
|
|
39
|
+
Then I get the following employees:
|
|
40
|
+
| name | department |
|
|
41
|
+
| Alice | Wonderland |
|
|
42
|
+
"""
|
|
43
|
+
When I run "behave -f json features/issue67_case1.feature"
|
|
44
|
+
Then it should pass with:
|
|
45
|
+
"""
|
|
46
|
+
1 scenario passed, 0 failed, 0 skipped
|
|
47
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
48
|
+
"""
|
|
49
|
+
But the command output should not contain:
|
|
50
|
+
"""
|
|
51
|
+
TypeError: <Row [u'Alice', u'Wonderland']> is not JSON serializable
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
Scenario: ScenarioOutline with Examples Table
|
|
55
|
+
Given a file named "features/steps/steps2.py" with:
|
|
56
|
+
"""
|
|
57
|
+
from behave import given, when, then
|
|
58
|
+
|
|
59
|
+
@given(u'a step with "{name}"')
|
|
60
|
+
def step(context, name):
|
|
61
|
+
context.name = name
|
|
62
|
+
|
|
63
|
+
@when(u'a step with "{name}" occurs')
|
|
64
|
+
def step(context, name):
|
|
65
|
+
assert context.name == name
|
|
66
|
+
|
|
67
|
+
@then(u'a step with "{name}" is reached')
|
|
68
|
+
def step(context, name):
|
|
69
|
+
assert context.name == name
|
|
70
|
+
"""
|
|
71
|
+
And a file named "features/issue67_case2.feature" with:
|
|
72
|
+
"""
|
|
73
|
+
Feature: ScenarioOutline with Examples Table
|
|
74
|
+
Scenario Outline:
|
|
75
|
+
Given a step with "<name>"
|
|
76
|
+
When a step with "<name>" occurs
|
|
77
|
+
Then a step with "<name>" is reached
|
|
78
|
+
|
|
79
|
+
Examples:
|
|
80
|
+
|name |
|
|
81
|
+
|Alice|
|
|
82
|
+
|Bob |
|
|
83
|
+
"""
|
|
84
|
+
When I run "behave -f json features/issue67_case2.feature"
|
|
85
|
+
Then it should pass with:
|
|
86
|
+
"""
|
|
87
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
88
|
+
6 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
89
|
+
"""
|
|
90
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #69: JUnitReporter: Fault when processing ScenarioOutlines with failing steps
|
|
3
|
+
|
|
4
|
+
The problem occurs when "behave --junit ..." is used
|
|
5
|
+
And a feature contains one or more ScenarioOutline(s) with failing steps.
|
|
6
|
+
|
|
7
|
+
The JUnitReport does not process ScenarioOutline correctly (logic-error).
|
|
8
|
+
Therefore, Scenarios of a ScenarioOutline are processes as Scenario steps.
|
|
9
|
+
This causes problems when the step.status is "failed".
|
|
10
|
+
|
|
11
|
+
RELATED:
|
|
12
|
+
* issue #63
|
|
13
|
+
|
|
14
|
+
Background: Test Setup
|
|
15
|
+
Given a new working directory
|
|
16
|
+
And a file named "features/steps/steps.py" with:
|
|
17
|
+
"""
|
|
18
|
+
from behave import given
|
|
19
|
+
|
|
20
|
+
@given(u'a {outcome} step with "{name}"')
|
|
21
|
+
def step(context, outcome, name):
|
|
22
|
+
context.name = name
|
|
23
|
+
assert outcome == "passing"
|
|
24
|
+
|
|
25
|
+
@when(u'a {outcome} step with "{name}" occurs')
|
|
26
|
+
def step(context, outcome, name):
|
|
27
|
+
assert outcome == "passing"
|
|
28
|
+
assert context.name == name
|
|
29
|
+
|
|
30
|
+
@then(u'a {outcome} step with "{name}" is reached')
|
|
31
|
+
def step(context, outcome, name):
|
|
32
|
+
assert outcome == "passing"
|
|
33
|
+
assert context.name == name
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
Scenario: ScenarioOutline with Failing Steps
|
|
37
|
+
Given a file named "features/issue63_case2.feature" with:
|
|
38
|
+
"""
|
|
39
|
+
Feature: ScenarioOutline with Passing and Failing Steps
|
|
40
|
+
Scenario Outline:
|
|
41
|
+
Given a passing step with "<name>"
|
|
42
|
+
When a failing step with "<name>" occurs
|
|
43
|
+
Then a passing step with "<name>" is reached
|
|
44
|
+
|
|
45
|
+
Examples:
|
|
46
|
+
|name |
|
|
47
|
+
|Alice|
|
|
48
|
+
|Bob |
|
|
49
|
+
"""
|
|
50
|
+
When I run "behave -c --junit features/issue63_case2.feature"
|
|
51
|
+
Then it should fail with:
|
|
52
|
+
"""
|
|
53
|
+
0 scenarios passed, 2 failed, 0 skipped
|
|
54
|
+
2 steps passed, 2 failed, 2 skipped, 0 undefined
|
|
55
|
+
"""
|
|
56
|
+
But the command output should not contain:
|
|
57
|
+
"""
|
|
58
|
+
AttributeError: 'Scenario' object has no attribute 'exception'
|
|
59
|
+
"""
|
|
60
|
+
And the command output should not contain:
|
|
61
|
+
"""
|
|
62
|
+
behave/reporter/junit.py
|
|
63
|
+
"""
|
|
64
|
+
|