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,49 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #125: Duplicate "Captured stdout" if substep has failed
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
Background: Test Setup
|
|
6
|
+
Given a new working directory
|
|
7
|
+
And a file named "features/steps/steps.py" with:
|
|
8
|
+
"""
|
|
9
|
+
from behave import step
|
|
10
|
+
|
|
11
|
+
@step('a step fails with stdout "{message}"')
|
|
12
|
+
def step_fails_with_stdout(context, message):
|
|
13
|
+
print(message)
|
|
14
|
+
assert False, 'EXPECT: Step fails with stdout.'
|
|
15
|
+
|
|
16
|
+
@step('substep fails with stdout "{message}"')
|
|
17
|
+
def substep_fails_with_stdout(context, message):
|
|
18
|
+
context.execute_steps(u'When a step fails with stdout "%s"' % message)
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
Scenario: Subprocess call shows generated output
|
|
22
|
+
Given a file named "features/issue125_example.feature" with:
|
|
23
|
+
"""
|
|
24
|
+
Feature:
|
|
25
|
+
Scenario:
|
|
26
|
+
When substep fails with stdout "Hello"
|
|
27
|
+
"""
|
|
28
|
+
When I run "behave -f plain --no-timings features/issue125_example.feature"
|
|
29
|
+
Then it should fail with:
|
|
30
|
+
"""
|
|
31
|
+
0 scenarios passed, 1 failed, 0 skipped
|
|
32
|
+
0 steps passed, 1 failed, 0 skipped, 0 undefined
|
|
33
|
+
"""
|
|
34
|
+
And the command output should contain:
|
|
35
|
+
"""
|
|
36
|
+
Feature:
|
|
37
|
+
Scenario:
|
|
38
|
+
When substep fails with stdout "Hello" ... failed
|
|
39
|
+
|
|
40
|
+
Assertion Failed: FAILED SUB-STEP: When a step fails with stdout "Hello"
|
|
41
|
+
Substep info: Assertion Failed: EXPECT: Step fails with stdout.
|
|
42
|
+
"""
|
|
43
|
+
And the command output should contain 1 times:
|
|
44
|
+
"""
|
|
45
|
+
Captured stdout:
|
|
46
|
+
Hello
|
|
47
|
+
"""
|
|
48
|
+
But note that "the captured output should not be contained multiple times"
|
|
49
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #127: Strip trailing colons
|
|
3
|
+
|
|
4
|
+
. Trailing colon in a step is stripped by the Gherkin parser.
|
|
5
|
+
. Undefined step snippets should not suggest the step with a trailing colon.
|
|
6
|
+
.
|
|
7
|
+
. GENERAL RULE (by looking at the parser):
|
|
8
|
+
. 1. Colon in step in feature file is OK
|
|
9
|
+
. (parser strips this for step-with-table or step-with-multiline-text).
|
|
10
|
+
. 2. Step definitions in Python files should not end with a colon
|
|
11
|
+
. (used in @given/@when/@then decorators).
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Background:
|
|
15
|
+
Given a new working directory
|
|
16
|
+
And a file named "features/example127.feature" with:
|
|
17
|
+
"""
|
|
18
|
+
Feature:
|
|
19
|
+
Scenario:
|
|
20
|
+
Given the following superusers exist:
|
|
21
|
+
| Name | User Id |
|
|
22
|
+
| Alice | 101 |
|
|
23
|
+
| Bob | 102 |
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
Scenario: Step Definition has no trailing colon (GOOD CASE)
|
|
27
|
+
Given a file named "features/steps/good_steps.py" with:
|
|
28
|
+
"""
|
|
29
|
+
from behave import given
|
|
30
|
+
|
|
31
|
+
@given(u'the following superusers exist')
|
|
32
|
+
def step_given_following_superusers_exist(context):
|
|
33
|
+
pass
|
|
34
|
+
"""
|
|
35
|
+
When I run "behave -f plain features/example127.feature"
|
|
36
|
+
Then it should pass
|
|
37
|
+
And the command output should not contain:
|
|
38
|
+
"""
|
|
39
|
+
You can implement step definitions for undefined steps with these snippets:
|
|
40
|
+
|
|
41
|
+
@given(u'the following superusers exist:')
|
|
42
|
+
def step_impl(context):
|
|
43
|
+
raise NotImplementedError(u'STEP: Given the following superusers exist:')
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
Scenario: Step Definition has trailing colon (BAD CASE)
|
|
47
|
+
Given a file named "features/steps/bad_steps.py" with:
|
|
48
|
+
"""
|
|
49
|
+
from behave import given
|
|
50
|
+
|
|
51
|
+
@given(u'the following superusers exist:')
|
|
52
|
+
def step_given_following_superusers_exist(context):
|
|
53
|
+
pass
|
|
54
|
+
"""
|
|
55
|
+
When I run "behave -f plain features/example127.feature"
|
|
56
|
+
Then it should fail
|
|
57
|
+
And the command output should contain:
|
|
58
|
+
"""
|
|
59
|
+
You can implement step definitions for undefined steps with these snippets:
|
|
60
|
+
|
|
61
|
+
@given(u'the following superusers exist')
|
|
62
|
+
def step_impl(context):
|
|
63
|
+
raise NotImplementedError(u'STEP: Given the following superusers exist')
|
|
64
|
+
"""
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@not_reproducible
|
|
3
|
+
Feature: Issue #139: Wrong steps seem to be executed when using --wip
|
|
4
|
+
|
|
5
|
+
. RELATED-TO: issue #35
|
|
6
|
+
. behave --format=plain --tags @one" seems to execute right scenario w/ wrong steps
|
|
7
|
+
.
|
|
8
|
+
. If you have a feature file with two scenarios where the second is tagged
|
|
9
|
+
. with @wip, running behave -w will output step names from the first scenario.
|
|
10
|
+
. It does seem to run the correct code for the steps.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
Scenario:
|
|
14
|
+
Given a new working directory
|
|
15
|
+
And a file named "features/steps/steps.py" with:
|
|
16
|
+
"""
|
|
17
|
+
from behave import given, when, then, step
|
|
18
|
+
|
|
19
|
+
@step('a step passes')
|
|
20
|
+
def step_passes(context):
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
@step('a step fails')
|
|
24
|
+
def step_fails(context):
|
|
25
|
+
assert False, "XFAIL"
|
|
26
|
+
|
|
27
|
+
@when('I run a test step')
|
|
28
|
+
def step_impl(context):
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
@when('I run some other test step')
|
|
32
|
+
def step_impl(context):
|
|
33
|
+
pass
|
|
34
|
+
|
|
35
|
+
@then('I should not see a failure here')
|
|
36
|
+
def step_impl(context):
|
|
37
|
+
pass
|
|
38
|
+
"""
|
|
39
|
+
And a file named "features/issue0139_example.feature" with:
|
|
40
|
+
"""
|
|
41
|
+
Feature: Bug in wip/behave -w
|
|
42
|
+
|
|
43
|
+
Scenario: This is strange
|
|
44
|
+
Given a step passes
|
|
45
|
+
When a step passes
|
|
46
|
+
Then a step fails
|
|
47
|
+
|
|
48
|
+
@wip
|
|
49
|
+
Scenario: Demonstrate bug
|
|
50
|
+
When I run a test step
|
|
51
|
+
And I run some other test step
|
|
52
|
+
Then I should not see a failure here
|
|
53
|
+
"""
|
|
54
|
+
When I run "behave -w -f plain -T features/issue0139_example.feature"
|
|
55
|
+
Then it should pass
|
|
56
|
+
And the command output should contain:
|
|
57
|
+
"""
|
|
58
|
+
Feature: Bug in wip/behave -w
|
|
59
|
+
Scenario: This is strange
|
|
60
|
+
Scenario: Demonstrate bug
|
|
61
|
+
When I run a test step ... passed
|
|
62
|
+
And I run some other test step ... passed
|
|
63
|
+
Then I should not see a failure here ... passed
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@not_reproducible
|
|
3
|
+
Feature: Issue #142: --junit flag fails to output with step table data: TypeError: <Row [u'data', u'value']> is not JSON serializable
|
|
4
|
+
|
|
5
|
+
DUPLICATES: issue #67 (already fixed).
|
|
6
|
+
|
|
7
|
+
Scenario:
|
|
8
|
+
Given a new working directory
|
|
9
|
+
And a file named "features/steps/steps.py" with:
|
|
10
|
+
"""
|
|
11
|
+
from behave import given, when, then, step
|
|
12
|
+
|
|
13
|
+
@then('use table data with')
|
|
14
|
+
def step_impl(context):
|
|
15
|
+
pass
|
|
16
|
+
"""
|
|
17
|
+
And a file named "features/issue0142_example.feature" with:
|
|
18
|
+
"""
|
|
19
|
+
Feature:
|
|
20
|
+
Scenario: Use a table
|
|
21
|
+
Then use table data with:
|
|
22
|
+
| data | value |
|
|
23
|
+
| behave outputs junit with tables | false |
|
|
24
|
+
"""
|
|
25
|
+
When I run "behave --junit -f json features/issue0142_example.feature"
|
|
26
|
+
Then it should pass
|
|
27
|
+
But the command output should not contain:
|
|
28
|
+
"""
|
|
29
|
+
TypeError: <Row [u'behave outputs junit with tables', u'false']> is not JSON serializable
|
|
30
|
+
"""
|
|
31
|
+
And the command output should not contain:
|
|
32
|
+
"""
|
|
33
|
+
Traceback (most recent call last):
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #143: Logging starts with a StreamHandler way too early
|
|
3
|
+
|
|
4
|
+
. This verifies that some imported library or other item has not made a
|
|
5
|
+
. call to logging too soon, which would add a StreamHandler.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@setup
|
|
9
|
+
Scenario: Feature Setup
|
|
10
|
+
Given a new working directory
|
|
11
|
+
And a file named "features/steps/steps.py" with:
|
|
12
|
+
"""
|
|
13
|
+
import logging
|
|
14
|
+
from behave import given, when, then, step
|
|
15
|
+
|
|
16
|
+
@step('I create {count:n} log records')
|
|
17
|
+
def step_create_log_records(context, count):
|
|
18
|
+
for i in range(count):
|
|
19
|
+
logging.debug('Some debug logging')
|
|
20
|
+
"""
|
|
21
|
+
And a file named "features/issue0143_example.feature" with:
|
|
22
|
+
"""
|
|
23
|
+
Feature: Logging should not be output unless there is a failure
|
|
24
|
+
|
|
25
|
+
Scenario: A passing test
|
|
26
|
+
Given I create 4 log records
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
Scenario: Ensure that no log-ouput occurs with enabled log-capture
|
|
30
|
+
Given an empty file named "features/environment.py"
|
|
31
|
+
When I run "behave -f plain --logcapture features/issue0143_example.feature"
|
|
32
|
+
Then it should pass
|
|
33
|
+
And the command output should not contain:
|
|
34
|
+
"""
|
|
35
|
+
DEBUG:root:Some debug logging
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
Scenario: Ensure that log-ouput occurs with disabled log-capture
|
|
40
|
+
Given a file named "features/environment.py" with:
|
|
41
|
+
"""
|
|
42
|
+
import logging
|
|
43
|
+
|
|
44
|
+
def before_all(context):
|
|
45
|
+
# -- basicConfig() will not set level if setup is already done.
|
|
46
|
+
logging.basicConfig()
|
|
47
|
+
logging.getLogger().setLevel(logging.DEBUG)
|
|
48
|
+
"""
|
|
49
|
+
When I run "behave -f plain --no-logcapture features/issue0143_example.feature"
|
|
50
|
+
Then it should pass
|
|
51
|
+
And the command output should contain:
|
|
52
|
+
"""
|
|
53
|
+
DEBUG:root:Some debug logging
|
|
54
|
+
"""
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #145: before_feature/after_feature should not be skipped
|
|
3
|
+
|
|
4
|
+
Hooks before_feature(), after_feature() (and before_step()) are skipped
|
|
5
|
+
if --tags options select feature tag and scenario tag.
|
|
6
|
+
|
|
7
|
+
SEE ALSO: https://github.com/cucumber/cucumber/wiki/Tags
|
|
8
|
+
|
|
9
|
+
@setup
|
|
10
|
+
Scenario: Setup
|
|
11
|
+
Given a new working directory
|
|
12
|
+
And a file named "features/steps/steps.py" with:
|
|
13
|
+
"""
|
|
14
|
+
from behave import step
|
|
15
|
+
|
|
16
|
+
@step('a step passes')
|
|
17
|
+
def step_passes(context):
|
|
18
|
+
pass
|
|
19
|
+
"""
|
|
20
|
+
And a file named "features/issue0145_example.feature" with:
|
|
21
|
+
"""
|
|
22
|
+
@feature
|
|
23
|
+
Feature: Feature-145
|
|
24
|
+
|
|
25
|
+
@scenario
|
|
26
|
+
Scenario: Scenario-145
|
|
27
|
+
Given a step passes
|
|
28
|
+
When a step passes
|
|
29
|
+
Then a step passes
|
|
30
|
+
"""
|
|
31
|
+
And a file named "features/environment.py" with:
|
|
32
|
+
"""
|
|
33
|
+
from __future__ import print_function
|
|
34
|
+
|
|
35
|
+
def before_feature(context, feature):
|
|
36
|
+
print("hooks.before_feature: %s called." % feature.name)
|
|
37
|
+
|
|
38
|
+
def after_feature(context, feature):
|
|
39
|
+
print("hooks.after_feature: %s called." % feature.name)
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
Scenario: Select only @scenario tag
|
|
43
|
+
When I run "behave -f plain -T --tags=@scenario features/issue0145_example.feature"
|
|
44
|
+
Then it should pass with:
|
|
45
|
+
"""
|
|
46
|
+
1 feature passed, 0 failed, 0 skipped
|
|
47
|
+
1 scenario passed, 0 failed, 0 skipped
|
|
48
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
49
|
+
"""
|
|
50
|
+
And the behave hook "before_feature" was called
|
|
51
|
+
And the behave hook "after_feature" was called
|
|
52
|
+
|
|
53
|
+
Scenario: Select @feature tag and @scenario tag (logical-and, fails if not fixed)
|
|
54
|
+
When I run "behave -f plain -T --tags=@feature --tags=@scenario features/issue0145_example.feature"
|
|
55
|
+
Then it should pass with:
|
|
56
|
+
"""
|
|
57
|
+
1 feature passed, 0 failed, 0 skipped
|
|
58
|
+
1 scenario passed, 0 failed, 0 skipped
|
|
59
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
60
|
+
"""
|
|
61
|
+
And the behave hook "before_feature" was called
|
|
62
|
+
And the behave hook "after_feature" was called
|
|
63
|
+
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@already_fixed
|
|
3
|
+
Feature: Issue #148: Substeps do not fail
|
|
4
|
+
|
|
5
|
+
FIXED-BY: issue #117 context.execute_steps() should support table and multi-line text.
|
|
6
|
+
RELATED-TO: issue #96
|
|
7
|
+
|
|
8
|
+
@setup
|
|
9
|
+
Scenario: Setup
|
|
10
|
+
Given a new working directory
|
|
11
|
+
And a file named "features/steps/passing_steps.py" with:
|
|
12
|
+
"""
|
|
13
|
+
@step('a step passes')
|
|
14
|
+
def step_passes(context):
|
|
15
|
+
pass
|
|
16
|
+
|
|
17
|
+
@step('a step fails')
|
|
18
|
+
def step_fails(context):
|
|
19
|
+
assert False, "XFAIL"
|
|
20
|
+
"""
|
|
21
|
+
And a file named "features/issue0148_example.feature" with:
|
|
22
|
+
"""
|
|
23
|
+
Feature: Sub steps
|
|
24
|
+
|
|
25
|
+
@xfail
|
|
26
|
+
Scenario: Failing test without substeps
|
|
27
|
+
Given a step passes
|
|
28
|
+
When a step fails
|
|
29
|
+
Then a step passes
|
|
30
|
+
|
|
31
|
+
@xfail
|
|
32
|
+
Scenario: Failing test with substeps
|
|
33
|
+
Given a step passes
|
|
34
|
+
When I do something with stupid substeps
|
|
35
|
+
Then a step passes
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
Scenario: Missing Step Keywords in Substeps
|
|
39
|
+
Given a file named "features/steps/substeps.py" with:
|
|
40
|
+
"""
|
|
41
|
+
@When('I do something with stupid substeps')
|
|
42
|
+
def step(context):
|
|
43
|
+
context.execute_steps(u'''
|
|
44
|
+
I do something stupid
|
|
45
|
+
there is a second stupid step
|
|
46
|
+
''') # Given/When/Then keywords are missing in substeps above.
|
|
47
|
+
"""
|
|
48
|
+
When I run "behave -f plain -T features/issue0148_example.feature"
|
|
49
|
+
Then it should fail with:
|
|
50
|
+
"""
|
|
51
|
+
0 features passed, 1 failed, 0 skipped
|
|
52
|
+
0 scenarios passed, 2 failed, 0 skipped
|
|
53
|
+
2 steps passed, 2 failed, 2 skipped, 0 undefined
|
|
54
|
+
"""
|
|
55
|
+
And the command output should contain:
|
|
56
|
+
"""
|
|
57
|
+
Scenario: Failing test without substeps
|
|
58
|
+
Given a step passes ... passed
|
|
59
|
+
When a step fails ... failed
|
|
60
|
+
"""
|
|
61
|
+
And the command output should contain:
|
|
62
|
+
"""
|
|
63
|
+
Scenario: Failing test with substeps
|
|
64
|
+
Given a step passes ... passed
|
|
65
|
+
When I do something with stupid substeps ... failed
|
|
66
|
+
"""
|
|
67
|
+
And the command output should contain:
|
|
68
|
+
"""
|
|
69
|
+
ParserError: Failed to parse <string>:
|
|
70
|
+
Parser failure in state steps, at line 2: "I do something stupid"
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
Scenario: Use Step Keywords in Substeps
|
|
75
|
+
Given a file named "features/steps/substeps.py" with:
|
|
76
|
+
"""
|
|
77
|
+
@when('I do something with stupid substeps')
|
|
78
|
+
def step(context):
|
|
79
|
+
context.execute_steps(u'''
|
|
80
|
+
When a step fails
|
|
81
|
+
Then a step fails
|
|
82
|
+
''')
|
|
83
|
+
"""
|
|
84
|
+
When I run "behave -f plain -T features/issue0148_example.feature"
|
|
85
|
+
Then it should fail with:
|
|
86
|
+
"""
|
|
87
|
+
0 features passed, 1 failed, 0 skipped
|
|
88
|
+
0 scenarios passed, 2 failed, 0 skipped
|
|
89
|
+
2 steps passed, 2 failed, 2 skipped, 0 undefined
|
|
90
|
+
"""
|
|
91
|
+
And the command output should contain:
|
|
92
|
+
"""
|
|
93
|
+
Scenario: Failing test with substeps
|
|
94
|
+
Given a step passes ... passed
|
|
95
|
+
When I do something with stupid substeps ... failed
|
|
96
|
+
Assertion Failed: FAILED SUB-STEP: When a step fails
|
|
97
|
+
Substep info: Assertion Failed: XFAIL
|
|
98
|
+
"""
|
|
99
|
+
But the command output should not contain:
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
ParserError: Failed to parse <string>
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #152: Fix encoding issues
|
|
3
|
+
|
|
4
|
+
. I fixed two encoding issues in pretty formatter and in JUnit serialization.
|
|
5
|
+
. Now it's possible to use accented letters in feature files and
|
|
6
|
+
. create JUnit reports from the tests.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Scenario: Ensure JUnit reports can be created from a foreign language
|
|
10
|
+
Given a new working directory
|
|
11
|
+
And an empty file named "features/steps/steps.py"
|
|
12
|
+
And a file named "features/eins.feature" with:
|
|
13
|
+
"""
|
|
14
|
+
# language: de
|
|
15
|
+
Funktionalität: Die Welt ist schön
|
|
16
|
+
Szenario: Was wäre wenn die schöne, neue Welt untergeht
|
|
17
|
+
"""
|
|
18
|
+
When I run "behave -f plain --junit --no-timings features/eins.feature"
|
|
19
|
+
Then it should pass with:
|
|
20
|
+
"""
|
|
21
|
+
1 feature passed, 0 failed, 0 skipped
|
|
22
|
+
1 scenario passed, 0 failed, 0 skipped
|
|
23
|
+
0 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
24
|
+
"""
|
|
25
|
+
And the command output should contain:
|
|
26
|
+
"""
|
|
27
|
+
Funktionalität: Die Welt ist schön
|
|
28
|
+
Szenario: Was wäre wenn die schöne, neue Welt untergeht
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@reuse.colocated_test
|
|
33
|
+
Scenario: Ensure JUnit reports can be created from a foreign language
|
|
34
|
+
Given I use the current directory as working directory
|
|
35
|
+
When I run "behave -f plain --junit --no-timings tools/test-features/french.feature"
|
|
36
|
+
Then it should pass with:
|
|
37
|
+
"""
|
|
38
|
+
1 feature passed, 0 failed, 0 skipped
|
|
39
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
40
|
+
5 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
41
|
+
"""
|
|
42
|
+
And the command output should contain:
|
|
43
|
+
"""
|
|
44
|
+
Fonctionnalité: testing stuff
|
|
45
|
+
Scénario: test stuff
|
|
46
|
+
Etant donné I am testing stuff ... passed
|
|
47
|
+
Quand I exercise it work ... passed
|
|
48
|
+
Alors it will work ... passed
|
|
49
|
+
Scénario: test more stuff
|
|
50
|
+
Etant donné I am testing stuff ... passed
|
|
51
|
+
Alors it will work ... passed
|
|
52
|
+
"""
|