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,134 @@
|
|
|
1
|
+
@sequential
|
|
2
|
+
Feature: Tags Formatter (Tag Counts)
|
|
3
|
+
|
|
4
|
+
As a tester
|
|
5
|
+
I want to obtain a quick overview which tags are used (and how often)
|
|
6
|
+
So that I can better use tags on command-line
|
|
7
|
+
|
|
8
|
+
NOTE: Primarily intended for dry-run mode.
|
|
9
|
+
|
|
10
|
+
@setup
|
|
11
|
+
Scenario: Feature Setup
|
|
12
|
+
Given a new working directory
|
|
13
|
+
And a file named "features/steps/steps.py" with:
|
|
14
|
+
"""
|
|
15
|
+
from behave import step
|
|
16
|
+
|
|
17
|
+
@step('a step passes')
|
|
18
|
+
def step_passes(context):
|
|
19
|
+
pass
|
|
20
|
+
"""
|
|
21
|
+
And a file named "features/alice.feature" with:
|
|
22
|
+
"""
|
|
23
|
+
@one
|
|
24
|
+
Feature: Alice
|
|
25
|
+
|
|
26
|
+
@setup
|
|
27
|
+
Scenario: Setup Feature
|
|
28
|
+
Given a step passes
|
|
29
|
+
|
|
30
|
+
@wip
|
|
31
|
+
Scenario: A1 with tags: @wip (inherited: @one)
|
|
32
|
+
Given a step passes
|
|
33
|
+
|
|
34
|
+
@foo
|
|
35
|
+
@wip
|
|
36
|
+
Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
37
|
+
When a step passes
|
|
38
|
+
|
|
39
|
+
@foo @bar
|
|
40
|
+
Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
41
|
+
Then a step passes
|
|
42
|
+
"""
|
|
43
|
+
And a file named "features/bob.feature" with:
|
|
44
|
+
"""
|
|
45
|
+
@two
|
|
46
|
+
Feature: Bob
|
|
47
|
+
|
|
48
|
+
Scenario: B1 without tags (inherited: @two)
|
|
49
|
+
Given a step passes
|
|
50
|
+
|
|
51
|
+
@foo @one
|
|
52
|
+
Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
53
|
+
When a step passes
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
Scenario: Use Tags formatter to get an overview of used tags
|
|
58
|
+
When I run "behave -f tags --dry-run features/"
|
|
59
|
+
Then it should pass with:
|
|
60
|
+
"""
|
|
61
|
+
0 features passed, 0 failed, 0 skipped, 2 untested
|
|
62
|
+
0 scenarios passed, 0 failed, 0 skipped, 6 untested
|
|
63
|
+
"""
|
|
64
|
+
And the command output should contain:
|
|
65
|
+
"""
|
|
66
|
+
TAG COUNTS (alphabetically sorted):
|
|
67
|
+
@bar 1 (used for scenario)
|
|
68
|
+
@foo 3 (used for scenario)
|
|
69
|
+
@one 2 (used for feature: 1, scenario: 1)
|
|
70
|
+
@setup 1 (used for scenario)
|
|
71
|
+
@two 1 (used for feature)
|
|
72
|
+
@wip 2 (used for scenario)
|
|
73
|
+
"""
|
|
74
|
+
But note that "tags inherited from its feature are (normally) not counted."
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
Scenario: Use Tags formatter together with another formatter
|
|
78
|
+
When I run "behave -f tags -f plain -T features/"
|
|
79
|
+
Then it should pass with:
|
|
80
|
+
"""
|
|
81
|
+
2 features passed, 0 failed, 0 skipped
|
|
82
|
+
6 scenarios passed, 0 failed, 0 skipped
|
|
83
|
+
"""
|
|
84
|
+
And the command output should contain:
|
|
85
|
+
"""
|
|
86
|
+
Feature: Alice
|
|
87
|
+
|
|
88
|
+
Scenario: Setup Feature
|
|
89
|
+
Given a step passes ... passed
|
|
90
|
+
|
|
91
|
+
Scenario: A1 with tags: @wip (inherited: @one)
|
|
92
|
+
Given a step passes ... passed
|
|
93
|
+
|
|
94
|
+
Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
95
|
+
When a step passes ... passed
|
|
96
|
+
|
|
97
|
+
Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
98
|
+
Then a step passes ... passed
|
|
99
|
+
|
|
100
|
+
Feature: Bob
|
|
101
|
+
|
|
102
|
+
Scenario: B1 without tags (inherited: @two)
|
|
103
|
+
Given a step passes ... passed
|
|
104
|
+
|
|
105
|
+
Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
106
|
+
When a step passes ... passed
|
|
107
|
+
|
|
108
|
+
TAG COUNTS (alphabetically sorted):
|
|
109
|
+
@bar 1 (used for scenario)
|
|
110
|
+
@foo 3 (used for scenario)
|
|
111
|
+
@one 2 (used for feature: 1, scenario: 1)
|
|
112
|
+
@setup 1 (used for scenario)
|
|
113
|
+
@two 1 (used for feature)
|
|
114
|
+
@wip 2 (used for scenario)
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
Scenario: Use Tags formatter when tags are selected
|
|
118
|
+
When I run "behave -f tags --tags=@setup,@wip features/"
|
|
119
|
+
Then it should pass with:
|
|
120
|
+
"""
|
|
121
|
+
1 feature passed, 0 failed, 1 skipped
|
|
122
|
+
3 scenarios passed, 0 failed, 3 skipped
|
|
123
|
+
"""
|
|
124
|
+
And the command output should contain:
|
|
125
|
+
"""
|
|
126
|
+
TAG COUNTS (alphabetically sorted):
|
|
127
|
+
@bar 1 (used for scenario)
|
|
128
|
+
@foo 3 (used for scenario)
|
|
129
|
+
@one 2 (used for feature: 1, scenario: 1)
|
|
130
|
+
@setup 1 (used for scenario)
|
|
131
|
+
@two 1 (used for feature)
|
|
132
|
+
@wip 2 (used for scenario)
|
|
133
|
+
"""
|
|
134
|
+
And note that "all tags are detected even from skipped features and scenarios"
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
@sequential
|
|
2
|
+
Feature: TagsLocation Formatter
|
|
3
|
+
|
|
4
|
+
As a tester
|
|
5
|
+
I want to know where and in which context tags are used
|
|
6
|
+
So that I better understand how to use tags in feature files and on command-line
|
|
7
|
+
|
|
8
|
+
NOTE: Primarily intended for dry-run mode.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@setup
|
|
12
|
+
Scenario: Feature Setup
|
|
13
|
+
Given a new working directory
|
|
14
|
+
And a file named "features/steps/steps.py" with:
|
|
15
|
+
"""
|
|
16
|
+
from behave import step
|
|
17
|
+
|
|
18
|
+
@step('a step passes')
|
|
19
|
+
def step_passes(context):
|
|
20
|
+
pass
|
|
21
|
+
"""
|
|
22
|
+
And a file named "features/alice.feature" with:
|
|
23
|
+
"""
|
|
24
|
+
@one
|
|
25
|
+
Feature: Alice
|
|
26
|
+
|
|
27
|
+
@setup
|
|
28
|
+
Scenario: Setup Feature
|
|
29
|
+
Given a step passes
|
|
30
|
+
|
|
31
|
+
@wip
|
|
32
|
+
Scenario: A1 with tags: @wip (inherited: @one)
|
|
33
|
+
Given a step passes
|
|
34
|
+
|
|
35
|
+
@foo
|
|
36
|
+
@wip
|
|
37
|
+
Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
38
|
+
When a step passes
|
|
39
|
+
|
|
40
|
+
@foo @bar
|
|
41
|
+
Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
42
|
+
Then a step passes
|
|
43
|
+
"""
|
|
44
|
+
And a file named "features/bob.feature" with:
|
|
45
|
+
"""
|
|
46
|
+
@two
|
|
47
|
+
Feature: Bob
|
|
48
|
+
|
|
49
|
+
Scenario: B1 without tags (inherited: @two)
|
|
50
|
+
Given a step passes
|
|
51
|
+
|
|
52
|
+
@foo @one
|
|
53
|
+
Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
54
|
+
When a step passes
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Scenario: Use TagsLocation formatter to get an overview where tags are used
|
|
59
|
+
When I run "behave -f tags.location --dry-run features/"
|
|
60
|
+
Then it should pass with:
|
|
61
|
+
"""
|
|
62
|
+
0 features passed, 0 failed, 0 skipped, 2 untested
|
|
63
|
+
0 scenarios passed, 0 failed, 0 skipped, 6 untested
|
|
64
|
+
"""
|
|
65
|
+
And the command output should contain:
|
|
66
|
+
"""
|
|
67
|
+
TAG LOCATIONS (alphabetically ordered):
|
|
68
|
+
@bar:
|
|
69
|
+
features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
70
|
+
|
|
71
|
+
@foo:
|
|
72
|
+
features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
73
|
+
features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
74
|
+
features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
75
|
+
|
|
76
|
+
@one:
|
|
77
|
+
features/alice.feature:2 Feature: Alice
|
|
78
|
+
features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
79
|
+
|
|
80
|
+
@setup:
|
|
81
|
+
features/alice.feature:5 Scenario: Setup Feature
|
|
82
|
+
|
|
83
|
+
@two:
|
|
84
|
+
features/bob.feature:2 Feature: Bob
|
|
85
|
+
|
|
86
|
+
@wip:
|
|
87
|
+
features/alice.feature:9 Scenario: A1 with tags: @wip (inherited: @one)
|
|
88
|
+
features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
89
|
+
"""
|
|
90
|
+
But note that "tags inherited from its feature are (normally) not counted."
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
Scenario: Use TagsLocation formatter together with another formatter
|
|
94
|
+
When I run "behave -f tags.location -f plain -T features/"
|
|
95
|
+
Then it should pass with:
|
|
96
|
+
"""
|
|
97
|
+
2 features passed, 0 failed, 0 skipped
|
|
98
|
+
6 scenarios passed, 0 failed, 0 skipped
|
|
99
|
+
"""
|
|
100
|
+
And the command output should contain:
|
|
101
|
+
"""
|
|
102
|
+
Feature: Alice
|
|
103
|
+
|
|
104
|
+
Scenario: Setup Feature
|
|
105
|
+
Given a step passes ... passed
|
|
106
|
+
|
|
107
|
+
Scenario: A1 with tags: @wip (inherited: @one)
|
|
108
|
+
Given a step passes ... passed
|
|
109
|
+
|
|
110
|
+
Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
111
|
+
When a step passes ... passed
|
|
112
|
+
|
|
113
|
+
Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
114
|
+
Then a step passes ... passed
|
|
115
|
+
|
|
116
|
+
Feature: Bob
|
|
117
|
+
|
|
118
|
+
Scenario: B1 without tags (inherited: @two)
|
|
119
|
+
Given a step passes ... passed
|
|
120
|
+
|
|
121
|
+
Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
122
|
+
When a step passes ... passed
|
|
123
|
+
"""
|
|
124
|
+
And the command output should contain:
|
|
125
|
+
"""
|
|
126
|
+
TAG LOCATIONS (alphabetically ordered):
|
|
127
|
+
@bar:
|
|
128
|
+
features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
129
|
+
|
|
130
|
+
@foo:
|
|
131
|
+
features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
132
|
+
features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
133
|
+
features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
134
|
+
|
|
135
|
+
@one:
|
|
136
|
+
features/alice.feature:2 Feature: Alice
|
|
137
|
+
features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
138
|
+
|
|
139
|
+
@setup:
|
|
140
|
+
features/alice.feature:5 Scenario: Setup Feature
|
|
141
|
+
|
|
142
|
+
@two:
|
|
143
|
+
features/bob.feature:2 Feature: Bob
|
|
144
|
+
|
|
145
|
+
@wip:
|
|
146
|
+
features/alice.feature:9 Scenario: A1 with tags: @wip (inherited: @one)
|
|
147
|
+
features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
Scenario: Use TagsLocation formatter when tags are selected
|
|
152
|
+
When I run "behave -f tags.location --tags=@setup,@wip features/"
|
|
153
|
+
Then it should pass with:
|
|
154
|
+
"""
|
|
155
|
+
1 feature passed, 0 failed, 1 skipped
|
|
156
|
+
3 scenarios passed, 0 failed, 3 skipped
|
|
157
|
+
"""
|
|
158
|
+
And the command output should contain:
|
|
159
|
+
"""
|
|
160
|
+
TAG LOCATIONS (alphabetically ordered):
|
|
161
|
+
@bar:
|
|
162
|
+
features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
163
|
+
|
|
164
|
+
@foo:
|
|
165
|
+
features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
166
|
+
features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
|
|
167
|
+
features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
168
|
+
|
|
169
|
+
@one:
|
|
170
|
+
features/alice.feature:2 Feature: Alice
|
|
171
|
+
features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
|
|
172
|
+
|
|
173
|
+
@setup:
|
|
174
|
+
features/alice.feature:5 Scenario: Setup Feature
|
|
175
|
+
|
|
176
|
+
@two:
|
|
177
|
+
features/bob.feature:2 Feature: Bob
|
|
178
|
+
|
|
179
|
+
@wip:
|
|
180
|
+
features/alice.feature:9 Scenario: A1 with tags: @wip (inherited: @one)
|
|
181
|
+
features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
|
|
182
|
+
"""
|
|
183
|
+
And note that "all tags are detected even from skipped features and scenarios"
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
Feature: Use a user-defined Formatter
|
|
2
|
+
|
|
3
|
+
As a behave user
|
|
4
|
+
I want to be able to provide own, user-defined formatters
|
|
5
|
+
So that I am able to add a new, user-defined formatters
|
|
6
|
+
when I need other output formats (or override existing ones).
|
|
7
|
+
|
|
8
|
+
. SPECIFICATION:
|
|
9
|
+
. * A user-defined formatter must inherit from the "Formatter" class.
|
|
10
|
+
. * A user-defined formatter can be specified on command-line
|
|
11
|
+
. by using a scoped class name as value for the '--format' option.
|
|
12
|
+
. * A user-defined formatter can be registered by name
|
|
13
|
+
. by using the "behave.formatters" section in the behave config file.
|
|
14
|
+
.
|
|
15
|
+
. SCOPED CLASS NAME (for formatter.class):
|
|
16
|
+
. * my.module_name:ClassName (preferred: single colon separator)
|
|
17
|
+
. * my.module_name::ClassName (alternative: double colon separator)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@setup
|
|
21
|
+
Scenario: Feature Setup
|
|
22
|
+
Given a new working directory
|
|
23
|
+
And a file named "features/steps/passing_steps.py" with:
|
|
24
|
+
"""
|
|
25
|
+
from behave import step
|
|
26
|
+
|
|
27
|
+
@step('{word:w} step passes')
|
|
28
|
+
def step_passes(context, word):
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
@step('{word:w} step fails')
|
|
32
|
+
def step_fails(context, word):
|
|
33
|
+
assert False, "XFAIL-STEP"
|
|
34
|
+
"""
|
|
35
|
+
And a file named "features/passing.feature" with:
|
|
36
|
+
"""
|
|
37
|
+
Feature:
|
|
38
|
+
Scenario: Alice
|
|
39
|
+
Given a step passes
|
|
40
|
+
When another step passes
|
|
41
|
+
|
|
42
|
+
Scenario: Bob
|
|
43
|
+
Then some step passes
|
|
44
|
+
"""
|
|
45
|
+
And an empty file named "behave_ext/__init__.py"
|
|
46
|
+
And a file named "behave_ext/formatter_one.py" with:
|
|
47
|
+
"""
|
|
48
|
+
from behave.formatter.base import Formatter
|
|
49
|
+
|
|
50
|
+
class NotAFormatter(object): pass
|
|
51
|
+
class SuperFormatter(Formatter):
|
|
52
|
+
name = "super"
|
|
53
|
+
description = "Super-duper formatter."
|
|
54
|
+
"""
|
|
55
|
+
And a file named "behave_ext/formatter_foo.py" with:
|
|
56
|
+
"""
|
|
57
|
+
from behave.formatter.base import Formatter
|
|
58
|
+
|
|
59
|
+
class FooFormatter(Formatter):
|
|
60
|
+
name = "foo"
|
|
61
|
+
description = "User-specific FOO formatter."
|
|
62
|
+
|
|
63
|
+
class FooFormatter2(Formatter):
|
|
64
|
+
description = "User-specific FOO2 formatter."
|
|
65
|
+
"""
|
|
66
|
+
And a file named "behave_ext/formatter_bar.py" with:
|
|
67
|
+
"""
|
|
68
|
+
from behave.formatter.base import Formatter
|
|
69
|
+
|
|
70
|
+
class BarFormatter(Formatter):
|
|
71
|
+
description = "User-specific BAR formatter."
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
@use_formatter.class
|
|
75
|
+
Scenario: Use a known, valid user-defined formatter with scoped class name
|
|
76
|
+
When I run "behave -f behave_ext.formatter_one:SuperFormatter features/passing.feature"
|
|
77
|
+
Then it should pass with:
|
|
78
|
+
"""
|
|
79
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
80
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
@use_formatter.class
|
|
84
|
+
Scenario: Use a known, valid user-defined formatter (with double colon)
|
|
85
|
+
|
|
86
|
+
ALTERNATIVE: Can currently use a double colon as separator, too.
|
|
87
|
+
|
|
88
|
+
When I run "behave -f behave_ext.formatter_one::SuperFormatter features/passing.feature"
|
|
89
|
+
Then it should pass with:
|
|
90
|
+
"""
|
|
91
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
92
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@use_formatter.class
|
|
97
|
+
Scenario Outline: Use built-in formatter "<formatter.name>" like a user-defined formatter
|
|
98
|
+
When I run "behave -f <formatter.class> features/passing.feature"
|
|
99
|
+
Then it should pass with:
|
|
100
|
+
"""
|
|
101
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
102
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
Examples:
|
|
106
|
+
| formatter.name | formatter.class |
|
|
107
|
+
| plain | behave.formatter.plain:PlainFormatter |
|
|
108
|
+
| pretty | behave.formatter.pretty:PrettyFormatter |
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
@problematic
|
|
112
|
+
@use_formatter.class
|
|
113
|
+
Scenario Outline: Use a problematic user-defined formatter (<case>)
|
|
114
|
+
When I run "behave -f <formatter.class> features/passing.feature"
|
|
115
|
+
Then it should fail with:
|
|
116
|
+
"""
|
|
117
|
+
error: format=<formatter.class> is unknown
|
|
118
|
+
"""
|
|
119
|
+
|
|
120
|
+
Examples:
|
|
121
|
+
| formatter.class | case |
|
|
122
|
+
| my.unknown_module:SomeFormatter | Unknown module |
|
|
123
|
+
| behave_ext.formatter_one:UnknownClass | Unknown class |
|
|
124
|
+
| behave_ext.formatter_one:NotAFormatter | Invalid Formatter class |
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
@formatter.registered_by_name
|
|
128
|
+
Scenario Outline: Register user-defined formatter by name: <formatter.name>
|
|
129
|
+
Given a file named "behave.ini" with:
|
|
130
|
+
"""
|
|
131
|
+
[behave.formatters]
|
|
132
|
+
foo = behave_ext.formatter_foo:FooFormatter
|
|
133
|
+
foo2 = behave_ext.formatter_foo:FooFormatter2
|
|
134
|
+
bar = behave_ext.formatter_bar:BarFormatter
|
|
135
|
+
"""
|
|
136
|
+
And note that "the schema: 'formatter.name = formatter.class' is used"
|
|
137
|
+
When I run "behave -f <formatter.name> features/passing.feature"
|
|
138
|
+
Then it should pass with:
|
|
139
|
+
"""
|
|
140
|
+
2 scenarios passed, 0 failed, 0 skipped
|
|
141
|
+
3 steps passed, 0 failed, 0 skipped, 0 undefined
|
|
142
|
+
"""
|
|
143
|
+
But the command output should not contain:
|
|
144
|
+
"""
|
|
145
|
+
error: format=<formatter.name> is unknown
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
Examples:
|
|
149
|
+
| formatter.name | Comment |
|
|
150
|
+
| foo | First user-defined, registered formatter. |
|
|
151
|
+
| bar | Last user-defined, registered formatter. |
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
@formatter.registered_by_name
|
|
155
|
+
Scenario: Help-Format shows description of registered-by-name formatters
|
|
156
|
+
Given a file named "behave.ini" with:
|
|
157
|
+
"""
|
|
158
|
+
[behave.formatters]
|
|
159
|
+
foo = behave_ext.formatter_foo:FooFormatter
|
|
160
|
+
bar = behave_ext.formatter_bar:BarFormatter
|
|
161
|
+
"""
|
|
162
|
+
When I run "behave -f help"
|
|
163
|
+
Then it should pass with:
|
|
164
|
+
"""
|
|
165
|
+
Available formatters:
|
|
166
|
+
"""
|
|
167
|
+
And the command output should contain:
|
|
168
|
+
"""
|
|
169
|
+
bar User-specific BAR formatter.
|
|
170
|
+
"""
|
|
171
|
+
And the command output should contain:
|
|
172
|
+
"""
|
|
173
|
+
foo User-specific FOO formatter.
|
|
174
|
+
"""
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
@problematic
|
|
178
|
+
@formatter.registered_by_name
|
|
179
|
+
Scenario Outline: Use problematic, registered-by-name formatter: <case>
|
|
180
|
+
Given a file named "behave.ini" with:
|
|
181
|
+
"""
|
|
182
|
+
[behave.formatters]
|
|
183
|
+
<formatter.name> = <formatter.class>
|
|
184
|
+
"""
|
|
185
|
+
When I run "behave -f <formatter.name> features/passing.feature"
|
|
186
|
+
Then it should fail with:
|
|
187
|
+
"""
|
|
188
|
+
error: format=<formatter.name> is unknown
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
Examples:
|
|
192
|
+
| formatter.name | formatter.class | case |
|
|
193
|
+
| unknown1 | my.unknown_module:SomeFormatter | Unknown module |
|
|
194
|
+
| unknown2 | behave_ext.formatter_one:UnknownClass | Unknown class |
|
|
195
|
+
| invalid1 | behave_ext.formatter_one:NotAFormatter | Invalid Formatter class |
|
|
196
|
+
|