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,42 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@unicode
|
|
3
|
+
Feature: Issue #449 -- Unicode output problem when fails with Russion text
|
|
4
|
+
|
|
5
|
+
. Either Exception text (as summary) or traceback python line shows
|
|
6
|
+
. special characters correctly.
|
|
7
|
+
|
|
8
|
+
Scenario:
|
|
9
|
+
Given a new working directory
|
|
10
|
+
And a file named "features/steps/problematic_steps.py" with:
|
|
11
|
+
"""
|
|
12
|
+
# -*- coding: UTF-8 -*-
|
|
13
|
+
# NOTE: Python2 requires encoding to decode special chars correctly.
|
|
14
|
+
from behave import step
|
|
15
|
+
from hamcrest.core import assert_that, equal_to
|
|
16
|
+
|
|
17
|
+
@step("Russian text")
|
|
18
|
+
def step_russian_text(stop):
|
|
19
|
+
assert_that(False, equal_to(True), u"Всё очень плохо") # cyrillic
|
|
20
|
+
"""
|
|
21
|
+
And a file named "behave.ini" with:
|
|
22
|
+
"""
|
|
23
|
+
[behave]
|
|
24
|
+
show_timings = false
|
|
25
|
+
"""
|
|
26
|
+
And a file named "features/syndrome.feature" with:
|
|
27
|
+
"""
|
|
28
|
+
Feature:
|
|
29
|
+
Scenario:
|
|
30
|
+
Given Russian text
|
|
31
|
+
"""
|
|
32
|
+
When I run "behave -f plain features/syndrome.feature"
|
|
33
|
+
Then it should fail with:
|
|
34
|
+
"""
|
|
35
|
+
Scenario:
|
|
36
|
+
Given Russian text ... failed
|
|
37
|
+
Assertion Failed: Всё очень плохо
|
|
38
|
+
"""
|
|
39
|
+
But the command output should not contain:
|
|
40
|
+
"""
|
|
41
|
+
Assertion Failed: 'ascii' codec can't encode characters in position
|
|
42
|
+
"""
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@unicode
|
|
3
|
+
Feature: Issue #453 -- Unicode output problem when Exception is raised in step
|
|
4
|
+
|
|
5
|
+
. Either Exception text (as summary) or traceback python line shows
|
|
6
|
+
. special characters incorrectly.
|
|
7
|
+
.
|
|
8
|
+
. Result (of failed step):
|
|
9
|
+
. File "features/steps/steps.py", line 8, in foo
|
|
10
|
+
. raise Exception(u"по ����ки") <-- This is not
|
|
11
|
+
. Exception: по русски <-- This is OK
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Scenario:
|
|
15
|
+
Given a new working directory
|
|
16
|
+
And a file named "features/steps/problematic_steps.py" with:
|
|
17
|
+
"""
|
|
18
|
+
# -*- coding: UTF-8 -*-
|
|
19
|
+
from behave import step
|
|
20
|
+
|
|
21
|
+
@step(u'an exception with special chars is raised')
|
|
22
|
+
def step_exception_raised(context):
|
|
23
|
+
raise Exception(u"по русски")
|
|
24
|
+
"""
|
|
25
|
+
And a file named "features/syndrome.feature" with:
|
|
26
|
+
"""
|
|
27
|
+
Feature:
|
|
28
|
+
Scenario:
|
|
29
|
+
Given an exception with special chars is raised
|
|
30
|
+
"""
|
|
31
|
+
When I run "behave -f plain features/syndrome.feature"
|
|
32
|
+
Then it should fail with:
|
|
33
|
+
"""
|
|
34
|
+
Scenario:
|
|
35
|
+
Given an exception with special chars is raised ... failed
|
|
36
|
+
"""
|
|
37
|
+
And the command output should contain:
|
|
38
|
+
"""
|
|
39
|
+
File "features/steps/problematic_steps.py", line 6, in step_exception_raised
|
|
40
|
+
raise Exception(u"по русски")
|
|
41
|
+
Exception: по русски
|
|
42
|
+
"""
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
@not_reproducible
|
|
2
|
+
@issue
|
|
3
|
+
Feature: Issue #457 -- Double-quotes in error messages of JUnit XML reports
|
|
4
|
+
|
|
5
|
+
STATUS: Problem is currently not reproducible.
|
|
6
|
+
XML attributes are escaped correctly even when double-quotes are used.
|
|
7
|
+
|
|
8
|
+
@setup
|
|
9
|
+
Scenario: Feature Setup
|
|
10
|
+
Given a new working directory
|
|
11
|
+
And a file named "features/steps/fail_steps.py" with:
|
|
12
|
+
"""
|
|
13
|
+
from behave import step
|
|
14
|
+
|
|
15
|
+
@step('{word:w} step fails with message')
|
|
16
|
+
def step_fails(context, word):
|
|
17
|
+
assert context.text
|
|
18
|
+
assert False, "FAILED: "+ context.text
|
|
19
|
+
|
|
20
|
+
@step('{word:w} step fails with error and message')
|
|
21
|
+
def step_fails2(context, word):
|
|
22
|
+
assert context.text
|
|
23
|
+
raise RuntimeError(context.text)
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Scenario: Use failing assertation in a JUnit XML report
|
|
28
|
+
Given a file named "features/fails1.feature" with:
|
|
29
|
+
"""
|
|
30
|
+
Feature:
|
|
31
|
+
Scenario: Alice
|
|
32
|
+
Given a step fails with message:
|
|
33
|
+
'''
|
|
34
|
+
My name is "Alice"
|
|
35
|
+
'''
|
|
36
|
+
"""
|
|
37
|
+
When I run "behave --junit features/fails1.feature"
|
|
38
|
+
Then it should fail with:
|
|
39
|
+
"""
|
|
40
|
+
0 scenarios passed, 1 failed, 0 skipped
|
|
41
|
+
"""
|
|
42
|
+
And the file "reports/TESTS-fails1.xml" should contain:
|
|
43
|
+
"""
|
|
44
|
+
<failure message="FAILED: My name is "Alice""
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
Scenario: Use exception in a JUnit XML report
|
|
48
|
+
Given a file named "features/fails2.feature" with:
|
|
49
|
+
"""
|
|
50
|
+
Feature:
|
|
51
|
+
Scenario: Bob
|
|
52
|
+
Given a step fails with error and message:
|
|
53
|
+
'''
|
|
54
|
+
My name is "Bob" and <here> I am
|
|
55
|
+
'''
|
|
56
|
+
"""
|
|
57
|
+
When I run "behave --junit features/fails2.feature"
|
|
58
|
+
Then it should fail with:
|
|
59
|
+
"""
|
|
60
|
+
0 scenarios passed, 1 failed, 0 skipped
|
|
61
|
+
"""
|
|
62
|
+
And the file "reports/TESTS-fails2.xml" should contain:
|
|
63
|
+
"""
|
|
64
|
+
<error message="My name is "Bob" and <here> I am"
|
|
65
|
+
"""
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #462-- Invalid JSON output when --include option selects no features
|
|
3
|
+
|
|
4
|
+
. Invalid JSON output is generated when no features are selected in a test-run.
|
|
5
|
+
. For example, this may be the case when the --include option is used.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Background:
|
|
9
|
+
Given a new working directory
|
|
10
|
+
And a file named "features/steps/pass_steps.py" with:
|
|
11
|
+
"""
|
|
12
|
+
from behave import step
|
|
13
|
+
|
|
14
|
+
@step('{word:w} step passes')
|
|
15
|
+
def step_passes(context, word):
|
|
16
|
+
pass
|
|
17
|
+
"""
|
|
18
|
+
And a file named "features/passing.feature" with:
|
|
19
|
+
"""
|
|
20
|
+
Feature:
|
|
21
|
+
Scenario:
|
|
22
|
+
Given a step passes
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Scenario: Include Option selects no feature files
|
|
27
|
+
When I run "behave -f json -i __unknown__.feature"
|
|
28
|
+
Then it should pass with:
|
|
29
|
+
"""
|
|
30
|
+
0 features passed, 0 failed, 0 skipped
|
|
31
|
+
0 scenarios passed, 0 failed, 0 skipped
|
|
32
|
+
"""
|
|
33
|
+
And the command output should contain:
|
|
34
|
+
"""
|
|
35
|
+
[
|
|
36
|
+
]
|
|
37
|
+
"""
|
|
38
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
Feature: Issue #467 -- Scenario status when scenario w/o steps is skipped
|
|
3
|
+
|
|
4
|
+
. The scenario.status should be "skipped"
|
|
5
|
+
. if you try to skip a scenario without any steps.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Scenario: Skip scenario without steps
|
|
9
|
+
Given a new working directory
|
|
10
|
+
And a file named "features/steps/pass_steps.py" with:
|
|
11
|
+
"""
|
|
12
|
+
from behave import step
|
|
13
|
+
|
|
14
|
+
@step('{word:w} step passes')
|
|
15
|
+
def step_passes(context, word):
|
|
16
|
+
pass
|
|
17
|
+
"""
|
|
18
|
+
And a file named "features/without_steps.feature" with:
|
|
19
|
+
"""
|
|
20
|
+
Feature:
|
|
21
|
+
@skip_this
|
|
22
|
+
Scenario: Without steps
|
|
23
|
+
"""
|
|
24
|
+
And a file named "features/environment.py" with:
|
|
25
|
+
"""
|
|
26
|
+
def before_scenario(context, scenario):
|
|
27
|
+
if "skip_this" in scenario.tags:
|
|
28
|
+
scenario.skip()
|
|
29
|
+
"""
|
|
30
|
+
When I run "behave -f plain features/without_steps.feature"
|
|
31
|
+
Then it should pass with:
|
|
32
|
+
"""
|
|
33
|
+
Feature:
|
|
34
|
+
Scenario: Without steps
|
|
35
|
+
|
|
36
|
+
0 features passed, 0 failed, 1 skipped
|
|
37
|
+
0 scenarios passed, 0 failed, 1 skipped
|
|
38
|
+
"""
|
|
39
|
+
But note that "the scenario without steps is skipped"
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@unicode
|
|
3
|
+
@not_reproducible
|
|
4
|
+
Feature: Issue #487 -- UnicodeEncodeError with ZBSP in multi-line text
|
|
5
|
+
|
|
6
|
+
. NOTE: I use ZBSP (zero-width space) in multiline text
|
|
7
|
+
. Traceback (most recent call last):
|
|
8
|
+
. File "/usr/bin/behave-2", line 9, in <module>
|
|
9
|
+
. load_entry_point('behave==1.2.5', 'console_scripts', 'behave')()
|
|
10
|
+
. File "/usr/lib/python2.7/site-packages/behave/__main__.py", line 111, in main
|
|
11
|
+
. print(u"ParseError: %s" % e)
|
|
12
|
+
. UnicodeEncodeError: 'ascii' codec can't encode characters in position 92-103: ordinal not in range(128)
|
|
13
|
+
.
|
|
14
|
+
. ANALYSIS:
|
|
15
|
+
. ParseError indicates that the problem occured while parsing the
|
|
16
|
+
. feature file. Feature file encoding is assumed
|
|
17
|
+
|
|
18
|
+
@not.with_ci=appveyor
|
|
19
|
+
Scenario:
|
|
20
|
+
Given a new working directory
|
|
21
|
+
And a file named "features/steps/pass_steps.py" with:
|
|
22
|
+
"""
|
|
23
|
+
from behave import step
|
|
24
|
+
|
|
25
|
+
@step('{word:w} step passes')
|
|
26
|
+
def step_passes(context, word):
|
|
27
|
+
pass
|
|
28
|
+
"""
|
|
29
|
+
And a file named "features/steps/steps.py" with:
|
|
30
|
+
"""
|
|
31
|
+
# -*- coding: latin-1 -*-
|
|
32
|
+
from __future__ import print_function
|
|
33
|
+
from behave import step
|
|
34
|
+
|
|
35
|
+
@step('I use {special_unicode_char:w} in text')
|
|
36
|
+
def step_use_ZBSP_with_text(context, special_unicode_char):
|
|
37
|
+
assert context.text
|
|
38
|
+
print(u"TEXT: %s" % context.text)
|
|
39
|
+
"""
|
|
40
|
+
And a file named "behave.ini" with:
|
|
41
|
+
"""
|
|
42
|
+
[behave]
|
|
43
|
+
show_timings = false
|
|
44
|
+
"""
|
|
45
|
+
And a file named "features/syndrome.feature" with:
|
|
46
|
+
"""
|
|
47
|
+
Feature:
|
|
48
|
+
|
|
49
|
+
Scenario Outline: Use special unicode char (<comment>)
|
|
50
|
+
Given I use ZBSP in text:
|
|
51
|
+
'''
|
|
52
|
+
HERE we use a ==><special_unicode_char><== SPECIAL UNICODE CHAR.
|
|
53
|
+
'''
|
|
54
|
+
|
|
55
|
+
Examples:
|
|
56
|
+
| special_unicode_char | comment |
|
|
57
|
+
| ⌘ | MACOS command key symbol |
|
|
58
|
+
| © | copyright sign |
|
|
59
|
+
| € | Euro sign (currency) |
|
|
60
|
+
| xxx XXX | special space |
|
|
61
|
+
"""
|
|
62
|
+
When I run "behave -f plain features/syndrome.feature"
|
|
63
|
+
Then it should pass with:
|
|
64
|
+
"""
|
|
65
|
+
4 scenarios passed, 0 failed, 0 skipped
|
|
66
|
+
"""
|
|
67
|
+
And the command output should contain:
|
|
68
|
+
'''
|
|
69
|
+
Scenario Outline: Use special unicode char (MACOS command key symbol) -- @1.1
|
|
70
|
+
Given I use ZBSP in text ... passed
|
|
71
|
+
"""
|
|
72
|
+
HERE we use a ==>⌘<== SPECIAL UNICODE CHAR.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
Scenario Outline: Use special unicode char (copyright sign) -- @1.2
|
|
76
|
+
Given I use ZBSP in text ... passed
|
|
77
|
+
"""
|
|
78
|
+
HERE we use a ==>©<== SPECIAL UNICODE CHAR.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
Scenario Outline: Use special unicode char (Euro sign (currency)) -- @1.3
|
|
82
|
+
Given I use ZBSP in text ... passed
|
|
83
|
+
"""
|
|
84
|
+
HERE we use a ==>€<== SPECIAL UNICODE CHAR.
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
Scenario Outline: Use special unicode char (special space) -- @1.4
|
|
88
|
+
Given I use ZBSP in text ... passed
|
|
89
|
+
"""
|
|
90
|
+
HERE we use a ==>xxx XXX<== SPECIAL UNICODE CHAR.
|
|
91
|
+
"""
|
|
92
|
+
'''
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@user_error
|
|
3
|
+
@python2.problem
|
|
4
|
+
Feature: Issue #506 -- Behave stops on error
|
|
5
|
+
|
|
6
|
+
. ANALYSIS:
|
|
7
|
+
. Using exception.__cause__ = original_exception causes problems in Python2
|
|
8
|
+
. When you use the Python3 chained-exception mechanism,
|
|
9
|
+
. you should better ensure that the "original_exception.__traceback__" attribute
|
|
10
|
+
. exists. Otherwise, a new exception (missing attribute) is raised
|
|
11
|
+
. when you format the traceback,
|
|
12
|
+
|
|
13
|
+
Scenario:
|
|
14
|
+
Given a new working directory
|
|
15
|
+
And a file named "features/steps/pass_steps.py" with:
|
|
16
|
+
"""
|
|
17
|
+
from behave import step
|
|
18
|
+
|
|
19
|
+
@step('{word:w} step passes')
|
|
20
|
+
def step_passes(context, word):
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
"""
|
|
24
|
+
And a file named "features/steps/steps.py" with:
|
|
25
|
+
"""
|
|
26
|
+
from behave import when, then
|
|
27
|
+
from behave._types import ChainedExceptionUtil
|
|
28
|
+
import copy
|
|
29
|
+
|
|
30
|
+
@when('I bad chained-exception causes my step to fail')
|
|
31
|
+
def step_bad_usage_of_chained_exception(context):
|
|
32
|
+
# -- BAD IMPLEMENATION:
|
|
33
|
+
exception = ZeroDivisionError('integer division or modulo by zero')
|
|
34
|
+
exception.__cause__ = copy.copy(exception)
|
|
35
|
+
raise exception
|
|
36
|
+
|
|
37
|
+
@when('a chained-exception causes my step to fail')
|
|
38
|
+
def step_chained_exception_causes_failure(context):
|
|
39
|
+
try:
|
|
40
|
+
raise ZeroDivisionError("OOPS-1")
|
|
41
|
+
except ZeroDivisionError as e:
|
|
42
|
+
e2 = RuntimeError("OOPS-2")
|
|
43
|
+
ChainedExceptionUtil.set_cause(e2, e)
|
|
44
|
+
raise e2
|
|
45
|
+
|
|
46
|
+
@then('this step must be executed')
|
|
47
|
+
def step_check_step(context):
|
|
48
|
+
pass
|
|
49
|
+
"""
|
|
50
|
+
And a file named "features/syndrome.feature" with:
|
|
51
|
+
"""
|
|
52
|
+
Feature: Failing step which can lead to stop behave
|
|
53
|
+
|
|
54
|
+
@failing
|
|
55
|
+
Scenario: Run stopping behave scenario
|
|
56
|
+
When a chained-exception causes my step to fail
|
|
57
|
+
Then this step must be executed
|
|
58
|
+
"""
|
|
59
|
+
When I run "behave -f plain features/syndrome.feature"
|
|
60
|
+
Then it should fail with:
|
|
61
|
+
"""
|
|
62
|
+
0 scenarios passed, 1 failed, 0 skipped
|
|
63
|
+
"""
|
|
64
|
+
And the command output should contain:
|
|
65
|
+
"""
|
|
66
|
+
ZeroDivisionError: OOPS-1
|
|
67
|
+
|
|
68
|
+
The above exception was the direct cause of the following exception:
|
|
69
|
+
|
|
70
|
+
Traceback (most recent call last):
|
|
71
|
+
"""
|
|
72
|
+
And the command output should contain:
|
|
73
|
+
"""
|
|
74
|
+
File "features/steps/steps.py", line 19, in step_chained_exception_causes_failure
|
|
75
|
+
raise e2
|
|
76
|
+
RuntimeError: OOPS-2
|
|
77
|
+
"""
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
@issue
|
|
2
|
+
@junit
|
|
3
|
+
@wip
|
|
4
|
+
Feature: Issue #510 -- JUnit XML output is not well-formed (in some cases)
|
|
5
|
+
|
|
6
|
+
. Special control characters in JUnit stdout/stderr sections
|
|
7
|
+
. are directly written to CDATA XML sections.
|
|
8
|
+
.
|
|
9
|
+
. According to the XML charset specification only the following unicode
|
|
10
|
+
. codepoints (characters) are allowed in a CDATA section:
|
|
11
|
+
.
|
|
12
|
+
. Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
|
|
13
|
+
. /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
|
|
14
|
+
.
|
|
15
|
+
. [XML-charsets] "The normative reference is XML 1.0 (Fifth Edition),
|
|
16
|
+
. section 2.2, https://www.w3.org/TR/REC-xml/#charsets
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@use.with_xmllint=yes
|
|
20
|
+
@xfail
|
|
21
|
+
Scenario:
|
|
22
|
+
Given a new working directory
|
|
23
|
+
And a file named "features/steps/special_char_steps.py" with:
|
|
24
|
+
"""
|
|
25
|
+
# -*- coding: UTF-8 -*-
|
|
26
|
+
from __future__ import print_function
|
|
27
|
+
from behave import step
|
|
28
|
+
|
|
29
|
+
@step(u'we print ^D')
|
|
30
|
+
def step_print_special_char_control_d(context):
|
|
31
|
+
print(u"\004")
|
|
32
|
+
"""
|
|
33
|
+
And a file named "features/special_char.feature" with:
|
|
34
|
+
"""
|
|
35
|
+
Feature: An illegal char
|
|
36
|
+
Scenario: Control-D
|
|
37
|
+
When we print ^D
|
|
38
|
+
"""
|
|
39
|
+
When I run "behave --junit features/special_char.feature"
|
|
40
|
+
Then it should pass with:
|
|
41
|
+
"""
|
|
42
|
+
1 scenario passed, 0 failed, 0 skipped
|
|
43
|
+
"""
|
|
44
|
+
When I run "xmllint reports/TESTS-special_char.xml"
|
|
45
|
+
Then it should pass
|
|
46
|
+
And the command output should not contain "parser error"
|
|
47
|
+
And the command output should not contain:
|
|
48
|
+
"""
|
|
49
|
+
reports/TESTS-special_char.xml:12: parser error : PCDATA invalid Char value 4
|
|
50
|
+
"""
|
|
51
|
+
And note that "xmllint reports additional correlated errors"
|