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.
Files changed (418) hide show
  1. checksums.yaml +7 -0
  2. data/.cane +0 -0
  3. data/.gitignore +17 -0
  4. data/.tailor +4 -0
  5. data/.travis.yml +11 -0
  6. data/CHANGELOG.md +3 -0
  7. data/Gemfile +3 -0
  8. data/LICENSE +15 -0
  9. data/README.md +41 -0
  10. data/Rakefile +68 -0
  11. data/busser-behave.gemspec +30 -0
  12. data/features/plugin_install_command.feature +11 -0
  13. data/features/plugin_list_command.feature +8 -0
  14. data/features/support/env.rb +13 -0
  15. data/features/test_command.feature +31 -0
  16. data/lib/busser/behave/version.rb +26 -0
  17. data/lib/busser/runner_plugin/behave.rb +37 -0
  18. data/vendor/behave/CHANGES.rst +483 -0
  19. data/vendor/behave/LICENSE +23 -0
  20. data/vendor/behave/MANIFEST.in +37 -0
  21. data/vendor/behave/PROJECT_INFO.rst +21 -0
  22. data/vendor/behave/README.rst +112 -0
  23. data/vendor/behave/VERSION.txt +1 -0
  24. data/vendor/behave/behave.ini +22 -0
  25. data/vendor/behave/behave/__init__.py +30 -0
  26. data/vendor/behave/behave/__main__.py +187 -0
  27. data/vendor/behave/behave/_stepimport.py +185 -0
  28. data/vendor/behave/behave/_types.py +134 -0
  29. data/vendor/behave/behave/api/__init__.py +7 -0
  30. data/vendor/behave/behave/api/async_step.py +283 -0
  31. data/vendor/behave/behave/capture.py +227 -0
  32. data/vendor/behave/behave/compat/__init__.py +5 -0
  33. data/vendor/behave/behave/compat/collections.py +20 -0
  34. data/vendor/behave/behave/configuration.py +788 -0
  35. data/vendor/behave/behave/contrib/__init__.py +0 -0
  36. data/vendor/behave/behave/contrib/scenario_autoretry.py +73 -0
  37. data/vendor/behave/behave/formatter/__init__.py +12 -0
  38. data/vendor/behave/behave/formatter/_builtins.py +39 -0
  39. data/vendor/behave/behave/formatter/_registry.py +135 -0
  40. data/vendor/behave/behave/formatter/ansi_escapes.py +91 -0
  41. data/vendor/behave/behave/formatter/base.py +200 -0
  42. data/vendor/behave/behave/formatter/formatters.py +57 -0
  43. data/vendor/behave/behave/formatter/json.py +253 -0
  44. data/vendor/behave/behave/formatter/null.py +12 -0
  45. data/vendor/behave/behave/formatter/plain.py +158 -0
  46. data/vendor/behave/behave/formatter/pretty.py +351 -0
  47. data/vendor/behave/behave/formatter/progress.py +287 -0
  48. data/vendor/behave/behave/formatter/rerun.py +114 -0
  49. data/vendor/behave/behave/formatter/sphinx_steps.py +372 -0
  50. data/vendor/behave/behave/formatter/sphinx_util.py +118 -0
  51. data/vendor/behave/behave/formatter/steps.py +497 -0
  52. data/vendor/behave/behave/formatter/tags.py +178 -0
  53. data/vendor/behave/behave/i18n.py +614 -0
  54. data/vendor/behave/behave/importer.py +102 -0
  55. data/vendor/behave/behave/json_parser.py +264 -0
  56. data/vendor/behave/behave/log_capture.py +233 -0
  57. data/vendor/behave/behave/matchers.py +402 -0
  58. data/vendor/behave/behave/model.py +1737 -0
  59. data/vendor/behave/behave/model_core.py +416 -0
  60. data/vendor/behave/behave/model_describe.py +105 -0
  61. data/vendor/behave/behave/parser.py +615 -0
  62. data/vendor/behave/behave/reporter/__init__.py +0 -0
  63. data/vendor/behave/behave/reporter/base.py +45 -0
  64. data/vendor/behave/behave/reporter/junit.py +473 -0
  65. data/vendor/behave/behave/reporter/summary.py +94 -0
  66. data/vendor/behave/behave/runner.py +753 -0
  67. data/vendor/behave/behave/runner_util.py +417 -0
  68. data/vendor/behave/behave/step_registry.py +112 -0
  69. data/vendor/behave/behave/tag_expression.py +111 -0
  70. data/vendor/behave/behave/tag_matcher.py +465 -0
  71. data/vendor/behave/behave/textutil.py +137 -0
  72. data/vendor/behave/behave/userdata.py +130 -0
  73. data/vendor/behave/behave4cmd0/__all_steps__.py +12 -0
  74. data/vendor/behave/behave4cmd0/__init__.py +5 -0
  75. data/vendor/behave/behave4cmd0/__setup.py +11 -0
  76. data/vendor/behave/behave4cmd0/command_shell.py +216 -0
  77. data/vendor/behave/behave4cmd0/command_shell_proc.py +256 -0
  78. data/vendor/behave/behave4cmd0/command_steps.py +532 -0
  79. data/vendor/behave/behave4cmd0/command_util.py +147 -0
  80. data/vendor/behave/behave4cmd0/failing_steps.py +49 -0
  81. data/vendor/behave/behave4cmd0/log/__init__.py +1 -0
  82. data/vendor/behave/behave4cmd0/log/steps.py +395 -0
  83. data/vendor/behave/behave4cmd0/note_steps.py +29 -0
  84. data/vendor/behave/behave4cmd0/passing_steps.py +36 -0
  85. data/vendor/behave/behave4cmd0/pathutil.py +146 -0
  86. data/vendor/behave/behave4cmd0/setup_command_shell.py +24 -0
  87. data/vendor/behave/behave4cmd0/textutil.py +304 -0
  88. data/vendor/behave/bin/behave +44 -0
  89. data/vendor/behave/bin/behave.cmd +10 -0
  90. data/vendor/behave/bin/behave.junit_filter.py +85 -0
  91. data/vendor/behave/bin/behave.step_durations.py +163 -0
  92. data/vendor/behave/bin/behave2cucumber_json.py +63 -0
  93. data/vendor/behave/bin/behave_cmd.py +44 -0
  94. data/vendor/behave/bin/convert_i18n_yaml.py +77 -0
  95. data/vendor/behave/bin/explore_platform_encoding.py +24 -0
  96. data/vendor/behave/bin/i18n.yml +621 -0
  97. data/vendor/behave/bin/invoke +8 -0
  98. data/vendor/behave/bin/invoke.cmd +9 -0
  99. data/vendor/behave/bin/json.format.py +167 -0
  100. data/vendor/behave/bin/jsonschema_validate.py +122 -0
  101. data/vendor/behave/bin/make_localpi.py +279 -0
  102. data/vendor/behave/bin/project_bootstrap.sh +30 -0
  103. data/vendor/behave/bin/toxcmd.py +270 -0
  104. data/vendor/behave/bin/toxcmd3.py +270 -0
  105. data/vendor/behave/conftest.py +27 -0
  106. data/vendor/behave/docs/Makefile +154 -0
  107. data/vendor/behave/docs/_static/agogo.css +501 -0
  108. data/vendor/behave/docs/_static/behave_logo.png +0 -0
  109. data/vendor/behave/docs/_static/behave_logo1.png +0 -0
  110. data/vendor/behave/docs/_static/behave_logo2.png +0 -0
  111. data/vendor/behave/docs/_static/behave_logo3.png +0 -0
  112. data/vendor/behave/docs/_themes/LICENSE +45 -0
  113. data/vendor/behave/docs/_themes/kr/layout.html +17 -0
  114. data/vendor/behave/docs/_themes/kr/relations.html +19 -0
  115. data/vendor/behave/docs/_themes/kr/static/flasky.css_t +480 -0
  116. data/vendor/behave/docs/_themes/kr/static/small_flask.css +90 -0
  117. data/vendor/behave/docs/_themes/kr/theme.conf +7 -0
  118. data/vendor/behave/docs/_themes/kr_small/layout.html +22 -0
  119. data/vendor/behave/docs/_themes/kr_small/static/flasky.css_t +287 -0
  120. data/vendor/behave/docs/_themes/kr_small/theme.conf +10 -0
  121. data/vendor/behave/docs/api.rst +408 -0
  122. data/vendor/behave/docs/appendix.rst +19 -0
  123. data/vendor/behave/docs/behave.rst +640 -0
  124. data/vendor/behave/docs/behave.rst-template +86 -0
  125. data/vendor/behave/docs/behave_ecosystem.rst +81 -0
  126. data/vendor/behave/docs/comparison.rst +85 -0
  127. data/vendor/behave/docs/conf.py +293 -0
  128. data/vendor/behave/docs/context_attributes.rst +66 -0
  129. data/vendor/behave/docs/django.rst +192 -0
  130. data/vendor/behave/docs/formatters.rst +61 -0
  131. data/vendor/behave/docs/gherkin.rst +673 -0
  132. data/vendor/behave/docs/index.rst +57 -0
  133. data/vendor/behave/docs/install.rst +60 -0
  134. data/vendor/behave/docs/more_info.rst +184 -0
  135. data/vendor/behave/docs/new_and_noteworthy.rst +18 -0
  136. data/vendor/behave/docs/new_and_noteworthy_v1.2.4.rst +11 -0
  137. data/vendor/behave/docs/new_and_noteworthy_v1.2.5.rst +814 -0
  138. data/vendor/behave/docs/new_and_noteworthy_v1.2.6.rst +255 -0
  139. data/vendor/behave/docs/parse_builtin_types.rst +59 -0
  140. data/vendor/behave/docs/philosophy.rst +235 -0
  141. data/vendor/behave/docs/regular_expressions.rst +71 -0
  142. data/vendor/behave/docs/related.rst +14 -0
  143. data/vendor/behave/docs/test_domains.rst +62 -0
  144. data/vendor/behave/docs/tutorial.rst +636 -0
  145. data/vendor/behave/docs/update_behave_rst.py +100 -0
  146. data/vendor/behave/etc/json/behave.json-schema +172 -0
  147. data/vendor/behave/etc/junit.xml/behave_junit.xsd +103 -0
  148. data/vendor/behave/etc/junit.xml/junit-4.xsd +92 -0
  149. data/vendor/behave/examples/async_step/README.txt +8 -0
  150. data/vendor/behave/examples/async_step/behave.ini +14 -0
  151. data/vendor/behave/examples/async_step/features/async_dispatch.feature +8 -0
  152. data/vendor/behave/examples/async_step/features/async_run.feature +6 -0
  153. data/vendor/behave/examples/async_step/features/environment.py +28 -0
  154. data/vendor/behave/examples/async_step/features/steps/async_dispatch_steps.py +26 -0
  155. data/vendor/behave/examples/async_step/features/steps/async_steps34.py +10 -0
  156. data/vendor/behave/examples/async_step/features/steps/async_steps35.py +10 -0
  157. data/vendor/behave/examples/async_step/testrun_example.async_dispatch.txt +11 -0
  158. data/vendor/behave/examples/async_step/testrun_example.async_run.txt +9 -0
  159. data/vendor/behave/examples/env_vars/README.rst +26 -0
  160. data/vendor/behave/examples/env_vars/behave.ini +15 -0
  161. data/vendor/behave/examples/env_vars/behave_run.output_example.txt +12 -0
  162. data/vendor/behave/examples/env_vars/features/env_var.feature +6 -0
  163. data/vendor/behave/examples/env_vars/features/steps/env_var_steps.py +38 -0
  164. data/vendor/behave/features/README.txt +12 -0
  165. data/vendor/behave/features/background.feature +392 -0
  166. data/vendor/behave/features/capture_stderr.feature +172 -0
  167. data/vendor/behave/features/capture_stdout.feature +125 -0
  168. data/vendor/behave/features/cmdline.lang_list.feature +33 -0
  169. data/vendor/behave/features/configuration.default_paths.feature +116 -0
  170. data/vendor/behave/features/context.global_params.feature +35 -0
  171. data/vendor/behave/features/context.local_params.feature +17 -0
  172. data/vendor/behave/features/directory_layout.advanced.feature +147 -0
  173. data/vendor/behave/features/directory_layout.basic.feature +75 -0
  174. data/vendor/behave/features/directory_layout.basic2.feature +87 -0
  175. data/vendor/behave/features/environment.py +53 -0
  176. data/vendor/behave/features/exploratory_testing.with_table.feature +141 -0
  177. data/vendor/behave/features/feature.description.feature +0 -0
  178. data/vendor/behave/features/feature.exclude_from_run.feature +96 -0
  179. data/vendor/behave/features/formatter.help.feature +30 -0
  180. data/vendor/behave/features/formatter.json.feature +420 -0
  181. data/vendor/behave/features/formatter.progress3.feature +235 -0
  182. data/vendor/behave/features/formatter.rerun.feature +296 -0
  183. data/vendor/behave/features/formatter.steps.feature +181 -0
  184. data/vendor/behave/features/formatter.steps_catalog.feature +100 -0
  185. data/vendor/behave/features/formatter.steps_doc.feature +140 -0
  186. data/vendor/behave/features/formatter.steps_usage.feature +404 -0
  187. data/vendor/behave/features/formatter.tags.feature +134 -0
  188. data/vendor/behave/features/formatter.tags_location.feature +183 -0
  189. data/vendor/behave/features/formatter.user_defined.feature +196 -0
  190. data/vendor/behave/features/i18n.unicode_problems.feature +445 -0
  191. data/vendor/behave/features/logcapture.clear_handlers.feature +114 -0
  192. data/vendor/behave/features/logcapture.feature +188 -0
  193. data/vendor/behave/features/logcapture.filter.feature +130 -0
  194. data/vendor/behave/features/logging.no_capture.feature +99 -0
  195. data/vendor/behave/features/logging.setup_format.feature +157 -0
  196. data/vendor/behave/features/logging.setup_level.feature +168 -0
  197. data/vendor/behave/features/logging.setup_with_configfile.feature +137 -0
  198. data/vendor/behave/features/parser.background.sad_cases.feature +129 -0
  199. data/vendor/behave/features/parser.feature.sad_cases.feature +144 -0
  200. data/vendor/behave/features/runner.abort_by_user.feature +305 -0
  201. data/vendor/behave/features/runner.continue_after_failed_step.feature +136 -0
  202. data/vendor/behave/features/runner.default_format.feature +175 -0
  203. data/vendor/behave/features/runner.dry_run.feature +184 -0
  204. data/vendor/behave/features/runner.feature_listfile.feature +223 -0
  205. data/vendor/behave/features/runner.hook_errors.feature +382 -0
  206. data/vendor/behave/features/runner.multiple_formatters.feature +285 -0
  207. data/vendor/behave/features/runner.scenario_autoretry.feature +131 -0
  208. data/vendor/behave/features/runner.select_files_by_regexp.example.feature +71 -0
  209. data/vendor/behave/features/runner.select_files_by_regexp.feature +84 -0
  210. data/vendor/behave/features/runner.select_scenarios_by_file_location.feature +403 -0
  211. data/vendor/behave/features/runner.select_scenarios_by_name.feature +289 -0
  212. data/vendor/behave/features/runner.select_scenarios_by_tag.feature +225 -0
  213. data/vendor/behave/features/runner.stop_after_failure.feature +122 -0
  214. data/vendor/behave/features/runner.tag_logic.feature +67 -0
  215. data/vendor/behave/features/runner.unknown_formatter.feature +23 -0
  216. data/vendor/behave/features/runner.use_stage_implementations.feature +126 -0
  217. data/vendor/behave/features/scenario.description.feature +171 -0
  218. data/vendor/behave/features/scenario.exclude_from_run.feature +217 -0
  219. data/vendor/behave/features/scenario_outline.basics.feature +100 -0
  220. data/vendor/behave/features/scenario_outline.improved.feature +177 -0
  221. data/vendor/behave/features/scenario_outline.name_annotation.feature +157 -0
  222. data/vendor/behave/features/scenario_outline.parametrized.feature +401 -0
  223. data/vendor/behave/features/scenario_outline.tagged_examples.feature +118 -0
  224. data/vendor/behave/features/step.async_steps.feature +225 -0
  225. data/vendor/behave/features/step.duplicated_step.feature +106 -0
  226. data/vendor/behave/features/step.execute_steps.feature +59 -0
  227. data/vendor/behave/features/step.execute_steps.with_table.feature +65 -0
  228. data/vendor/behave/features/step.import_other_step_module.feature +103 -0
  229. data/vendor/behave/features/step.pending_steps.feature +128 -0
  230. data/vendor/behave/features/step.undefined_steps.feature +307 -0
  231. data/vendor/behave/features/step.use_step_library.feature +44 -0
  232. data/vendor/behave/features/step_dialect.generic_steps.feature +189 -0
  233. data/vendor/behave/features/step_dialect.given_when_then.feature +89 -0
  234. data/vendor/behave/features/step_param.builtin_types.with_float.feature +239 -0
  235. data/vendor/behave/features/step_param.builtin_types.with_integer.feature +305 -0
  236. data/vendor/behave/features/step_param.custom_types.feature +134 -0
  237. data/vendor/behave/features/steps/behave_active_tags_steps.py +86 -0
  238. data/vendor/behave/features/steps/behave_context_steps.py +67 -0
  239. data/vendor/behave/features/steps/behave_model_tag_logic_steps.py +105 -0
  240. data/vendor/behave/features/steps/behave_model_util.py +105 -0
  241. data/vendor/behave/features/steps/behave_select_files_steps.py +83 -0
  242. data/vendor/behave/features/steps/behave_tag_expression_steps.py +166 -0
  243. data/vendor/behave/features/steps/behave_undefined_steps.py +101 -0
  244. data/vendor/behave/features/steps/use_steplib_behave4cmd.py +12 -0
  245. data/vendor/behave/features/summary.undefined_steps.feature +114 -0
  246. data/vendor/behave/features/tags.active_tags.feature +385 -0
  247. data/vendor/behave/features/tags.default_tags.feature +104 -0
  248. data/vendor/behave/features/tags.tag_expression.feature +105 -0
  249. data/vendor/behave/features/userdata.feature +331 -0
  250. data/vendor/behave/invoke.yaml +21 -0
  251. data/vendor/behave/issue.features/README.txt +17 -0
  252. data/vendor/behave/issue.features/environment.py +97 -0
  253. data/vendor/behave/issue.features/issue0030.feature +21 -0
  254. data/vendor/behave/issue.features/issue0031.feature +16 -0
  255. data/vendor/behave/issue.features/issue0032.feature +28 -0
  256. data/vendor/behave/issue.features/issue0035.feature +74 -0
  257. data/vendor/behave/issue.features/issue0040.feature +154 -0
  258. data/vendor/behave/issue.features/issue0041.feature +135 -0
  259. data/vendor/behave/issue.features/issue0042.feature +230 -0
  260. data/vendor/behave/issue.features/issue0044.feature +51 -0
  261. data/vendor/behave/issue.features/issue0046.feature +77 -0
  262. data/vendor/behave/issue.features/issue0052.feature +66 -0
  263. data/vendor/behave/issue.features/issue0059.feature +29 -0
  264. data/vendor/behave/issue.features/issue0063.feature +102 -0
  265. data/vendor/behave/issue.features/issue0064.feature +97 -0
  266. data/vendor/behave/issue.features/issue0065.feature +18 -0
  267. data/vendor/behave/issue.features/issue0066.feature +80 -0
  268. data/vendor/behave/issue.features/issue0067.feature +90 -0
  269. data/vendor/behave/issue.features/issue0069.feature +64 -0
  270. data/vendor/behave/issue.features/issue0072.feature +32 -0
  271. data/vendor/behave/issue.features/issue0073.feature +228 -0
  272. data/vendor/behave/issue.features/issue0075.feature +18 -0
  273. data/vendor/behave/issue.features/issue0077.feature +89 -0
  274. data/vendor/behave/issue.features/issue0080.feature +49 -0
  275. data/vendor/behave/issue.features/issue0081.feature +138 -0
  276. data/vendor/behave/issue.features/issue0083.feature +69 -0
  277. data/vendor/behave/issue.features/issue0084.feature +69 -0
  278. data/vendor/behave/issue.features/issue0085.feature +119 -0
  279. data/vendor/behave/issue.features/issue0092.feature +66 -0
  280. data/vendor/behave/issue.features/issue0096.feature +173 -0
  281. data/vendor/behave/issue.features/issue0099.feature +130 -0
  282. data/vendor/behave/issue.features/issue0109.feature +60 -0
  283. data/vendor/behave/issue.features/issue0111.feature +53 -0
  284. data/vendor/behave/issue.features/issue0112.feature +64 -0
  285. data/vendor/behave/issue.features/issue0114.feature +118 -0
  286. data/vendor/behave/issue.features/issue0116.feature +71 -0
  287. data/vendor/behave/issue.features/issue0125.feature +49 -0
  288. data/vendor/behave/issue.features/issue0127.feature +64 -0
  289. data/vendor/behave/issue.features/issue0139.feature +67 -0
  290. data/vendor/behave/issue.features/issue0142.feature +37 -0
  291. data/vendor/behave/issue.features/issue0143.feature +54 -0
  292. data/vendor/behave/issue.features/issue0145.feature +63 -0
  293. data/vendor/behave/issue.features/issue0148.feature +105 -0
  294. data/vendor/behave/issue.features/issue0152.feature +52 -0
  295. data/vendor/behave/issue.features/issue0159.feature +74 -0
  296. data/vendor/behave/issue.features/issue0162.feature +86 -0
  297. data/vendor/behave/issue.features/issue0171.feature +16 -0
  298. data/vendor/behave/issue.features/issue0172.feature +51 -0
  299. data/vendor/behave/issue.features/issue0175.feature +91 -0
  300. data/vendor/behave/issue.features/issue0177.feature +40 -0
  301. data/vendor/behave/issue.features/issue0181.feature +36 -0
  302. data/vendor/behave/issue.features/issue0184.feature +144 -0
  303. data/vendor/behave/issue.features/issue0186.feature +12 -0
  304. data/vendor/behave/issue.features/issue0188.feature +60 -0
  305. data/vendor/behave/issue.features/issue0191.feature +178 -0
  306. data/vendor/behave/issue.features/issue0194.feature +215 -0
  307. data/vendor/behave/issue.features/issue0197.feature +11 -0
  308. data/vendor/behave/issue.features/issue0216.feature +129 -0
  309. data/vendor/behave/issue.features/issue0226.feature +51 -0
  310. data/vendor/behave/issue.features/issue0228.feature +41 -0
  311. data/vendor/behave/issue.features/issue0230.feature +46 -0
  312. data/vendor/behave/issue.features/issue0231.feature +77 -0
  313. data/vendor/behave/issue.features/issue0238.feature +52 -0
  314. data/vendor/behave/issue.features/issue0251.feature +15 -0
  315. data/vendor/behave/issue.features/issue0280.feature +118 -0
  316. data/vendor/behave/issue.features/issue0288.feature +95 -0
  317. data/vendor/behave/issue.features/issue0300.feature +49 -0
  318. data/vendor/behave/issue.features/issue0302.feature +91 -0
  319. data/vendor/behave/issue.features/issue0309.feature +52 -0
  320. data/vendor/behave/issue.features/issue0330.feature +124 -0
  321. data/vendor/behave/issue.features/issue0349.feature +9 -0
  322. data/vendor/behave/issue.features/issue0361.feature +79 -0
  323. data/vendor/behave/issue.features/issue0383.feature +76 -0
  324. data/vendor/behave/issue.features/issue0384.feature +103 -0
  325. data/vendor/behave/issue.features/issue0385.feature +109 -0
  326. data/vendor/behave/issue.features/issue0424.feature +66 -0
  327. data/vendor/behave/issue.features/issue0446.feature +116 -0
  328. data/vendor/behave/issue.features/issue0449.feature +42 -0
  329. data/vendor/behave/issue.features/issue0453.feature +42 -0
  330. data/vendor/behave/issue.features/issue0457.feature +65 -0
  331. data/vendor/behave/issue.features/issue0462.feature +38 -0
  332. data/vendor/behave/issue.features/issue0476.feature +39 -0
  333. data/vendor/behave/issue.features/issue0487.feature +92 -0
  334. data/vendor/behave/issue.features/issue0506.feature +77 -0
  335. data/vendor/behave/issue.features/issue0510.feature +51 -0
  336. data/vendor/behave/issue.features/requirements.txt +12 -0
  337. data/vendor/behave/issue.features/steps/ansi_steps.py +20 -0
  338. data/vendor/behave/issue.features/steps/behave_hooks_steps.py +10 -0
  339. data/vendor/behave/issue.features/steps/use_steplib_behave4cmd.py +13 -0
  340. data/vendor/behave/more.features/formatter.json.validate_output.feature +37 -0
  341. data/vendor/behave/more.features/steps/tutorial_steps.py +16 -0
  342. data/vendor/behave/more.features/steps/use_steplib_behave4cmd.py +7 -0
  343. data/vendor/behave/more.features/tutorial.feature +6 -0
  344. data/vendor/behave/py.requirements/README.txt +5 -0
  345. data/vendor/behave/py.requirements/all.txt +16 -0
  346. data/vendor/behave/py.requirements/basic.txt +21 -0
  347. data/vendor/behave/py.requirements/develop.txt +28 -0
  348. data/vendor/behave/py.requirements/docs.txt +6 -0
  349. data/vendor/behave/py.requirements/json.txt +7 -0
  350. data/vendor/behave/py.requirements/more_py26.txt +8 -0
  351. data/vendor/behave/py.requirements/testing.txt +10 -0
  352. data/vendor/behave/pytest.ini +24 -0
  353. data/vendor/behave/setup.cfg +29 -0
  354. data/vendor/behave/setup.py +118 -0
  355. data/vendor/behave/setuptools_behave.py +130 -0
  356. data/vendor/behave/tasks/__behave.py +45 -0
  357. data/vendor/behave/tasks/__init__.py +55 -0
  358. data/vendor/behave/tasks/__main__.py +70 -0
  359. data/vendor/behave/tasks/_setup.py +135 -0
  360. data/vendor/behave/tasks/_vendor/README.rst +35 -0
  361. data/vendor/behave/tasks/_vendor/invoke.zip +0 -0
  362. data/vendor/behave/tasks/_vendor/path.py +1725 -0
  363. data/vendor/behave/tasks/_vendor/pathlib.py +1280 -0
  364. data/vendor/behave/tasks/_vendor/six.py +868 -0
  365. data/vendor/behave/tasks/clean.py +246 -0
  366. data/vendor/behave/tasks/docs.py +97 -0
  367. data/vendor/behave/tasks/requirements.txt +17 -0
  368. data/vendor/behave/tasks/test.py +192 -0
  369. data/vendor/behave/test/__init__.py +0 -0
  370. data/vendor/behave/test/_importer_candidate.py +3 -0
  371. data/vendor/behave/test/reporters/__init__.py +0 -0
  372. data/vendor/behave/test/reporters/test_summary.py +240 -0
  373. data/vendor/behave/test/test_ansi_escapes.py +73 -0
  374. data/vendor/behave/test/test_configuration.py +172 -0
  375. data/vendor/behave/test/test_formatter.py +265 -0
  376. data/vendor/behave/test/test_formatter_progress.py +39 -0
  377. data/vendor/behave/test/test_formatter_rerun.py +97 -0
  378. data/vendor/behave/test/test_formatter_tags.py +57 -0
  379. data/vendor/behave/test/test_importer.py +151 -0
  380. data/vendor/behave/test/test_log_capture.py +29 -0
  381. data/vendor/behave/test/test_matchers.py +236 -0
  382. data/vendor/behave/test/test_model.py +871 -0
  383. data/vendor/behave/test/test_parser.py +1590 -0
  384. data/vendor/behave/test/test_runner.py +1074 -0
  385. data/vendor/behave/test/test_step_registry.py +96 -0
  386. data/vendor/behave/test/test_tag_expression.py +506 -0
  387. data/vendor/behave/test/test_tag_expression2.py +462 -0
  388. data/vendor/behave/test/test_tag_matcher.py +729 -0
  389. data/vendor/behave/test/test_userdata.py +184 -0
  390. data/vendor/behave/tests/README.txt +12 -0
  391. data/vendor/behave/tests/__init__.py +0 -0
  392. data/vendor/behave/tests/api/__ONLY_PY34_or_newer.txt +0 -0
  393. data/vendor/behave/tests/api/__init__.py +0 -0
  394. data/vendor/behave/tests/api/_test_async_step34.py +130 -0
  395. data/vendor/behave/tests/api/_test_async_step35.py +75 -0
  396. data/vendor/behave/tests/api/test_async_step.py +18 -0
  397. data/vendor/behave/tests/api/testing_support.py +94 -0
  398. data/vendor/behave/tests/api/testing_support_async.py +21 -0
  399. data/vendor/behave/tests/issues/test_issue0336.py +66 -0
  400. data/vendor/behave/tests/issues/test_issue0449.py +55 -0
  401. data/vendor/behave/tests/issues/test_issue0453.py +62 -0
  402. data/vendor/behave/tests/issues/test_issue0458.py +54 -0
  403. data/vendor/behave/tests/issues/test_issue0495.py +65 -0
  404. data/vendor/behave/tests/unit/__init__.py +0 -0
  405. data/vendor/behave/tests/unit/test_behave4cmd_command_shell_proc.py +135 -0
  406. data/vendor/behave/tests/unit/test_capture.py +280 -0
  407. data/vendor/behave/tests/unit/test_model_core.py +56 -0
  408. data/vendor/behave/tests/unit/test_textutil.py +267 -0
  409. data/vendor/behave/tools/test-features/background.feature +9 -0
  410. data/vendor/behave/tools/test-features/environment.py +8 -0
  411. data/vendor/behave/tools/test-features/french.feature +11 -0
  412. data/vendor/behave/tools/test-features/outline.feature +39 -0
  413. data/vendor/behave/tools/test-features/parse.feature +10 -0
  414. data/vendor/behave/tools/test-features/step-data.feature +60 -0
  415. data/vendor/behave/tools/test-features/steps/steps.py +120 -0
  416. data/vendor/behave/tools/test-features/tags.feature +18 -0
  417. data/vendor/behave/tox.ini +159 -0
  418. metadata +562 -0
@@ -0,0 +1,445 @@
1
+ Feature: Internationalization (i18n) and Problems with Unicode Strings
2
+
3
+ . POTENTIAL PROBLEM AREAS:
4
+ . * Feature, scenario, step names with problematic chars
5
+ . * Tags with problematic chars
6
+ . * step raises exception with problematic text (output capture)
7
+ . * step generates output with problematic and some step fails (stdout capture)
8
+ . * filenames with problematic chars: feature files, steps files
9
+ .
10
+ . CHECKED FORMATTERS and REPORTERS:
11
+ . * plain
12
+ . * pretty
13
+ . * junit (used via "behave.ini" defaults)
14
+
15
+
16
+ @setup
17
+ Scenario: Feature Setup
18
+ Given a new working directory
19
+ And a file named "behave.ini" with:
20
+ """
21
+ [behave]
22
+ show_timings = false
23
+ show_skipped = false
24
+ show_source = true
25
+ junit = true
26
+ """
27
+ And a file named "features/steps/passing_steps.py" with:
28
+ """
29
+ # -*- coding: UTF-8 -*-
30
+ from behave import step
31
+
32
+ @step(u'{word:w} step passes')
33
+ def step_passes(context, word):
34
+ pass
35
+
36
+ @step(u'{word:w} step passes with "{text}"')
37
+ def step_passes_with_text(context, word, text):
38
+ pass
39
+
40
+ @step(u'{word:w} step fails')
41
+ def step_fails(context, word):
42
+ assert False, "XFAIL"
43
+
44
+ @step(u'{word:w} step fails with "{text}"')
45
+ def step_fails_with_text(context, word, text):
46
+ assert False, u"XFAIL: "+ text
47
+ """
48
+ And a file named "features/steps/step_write_output.py" with:
49
+ """
50
+ # -*- coding: UTF-8 -*-
51
+ from __future__ import print_function
52
+ from behave import step
53
+ import six
54
+
55
+ @step(u'I write text "{text}" to stdout')
56
+ def step_write_text(context, text):
57
+ if six.PY2 and isinstance(text, six.text_type):
58
+ text = text.encode("utf-8", "replace")
59
+ print(text)
60
+
61
+ @step(u'I write bytes "{data}" to stdout')
62
+ def step_write_bytes(context, data):
63
+ if isinstance(data, six.text_type):
64
+ data = data.encode("unicode-escape", "replace")
65
+ print(data)
66
+ """
67
+
68
+
69
+ Scenario Outline: Problematic scenario name: <scenario.name> (case: passed, <format>)
70
+ Given a file named "features/scenario_name_problematic_and_pass.feature" with:
71
+ """
72
+ Feature:
73
+ Scenario: <scenario.name>
74
+ Given a step passes
75
+ """
76
+ When I run "behave -f <format> features/scenario_name_problematic_and_pass.feature"
77
+ Then it should pass with:
78
+ """
79
+ 1 feature passed, 0 failed, 0 skipped
80
+ 1 scenario passed, 0 failed, 0 skipped
81
+ """
82
+ And the command output should contain:
83
+ """
84
+ Scenario: <scenario.name>
85
+ """
86
+
87
+ Examples:
88
+ | format | scenario.name |
89
+ | plain | Café |
90
+ | pretty | Ärgernis ist überall |
91
+
92
+
93
+ Scenario Outline: Problematic scenario name: <scenario.name> (case: failed, <format>)
94
+ Given a file named "features/scenario_name_problematic_and_fail.feature" with:
95
+ """
96
+ Feature:
97
+ Scenario: <scenario.name>
98
+ Given a step fails
99
+ """
100
+ When I run "behave -f <format> features/scenario_name_problematic_and_fail.feature"
101
+ Then it should fail with:
102
+ """
103
+ 0 features passed, 1 failed, 0 skipped
104
+ 0 scenarios passed, 1 failed, 0 skipped
105
+ """
106
+ And the command output should contain:
107
+ """
108
+ Scenario: <scenario.name>
109
+ """
110
+
111
+ Examples:
112
+ | format | scenario.name |
113
+ | plain | Café |
114
+ | pretty | Ärgernis ist überall |
115
+
116
+
117
+ Scenario Outline: Problematic step: <step.text> (case: passed, <format>)
118
+ Given a file named "features/step_problematic_and_pass.feature" with:
119
+ """
120
+ Feature:
121
+ Scenario:
122
+ Given a step passes with "<step.text>"
123
+ """
124
+ When I run "behave -f <format> features/step_problematic_and_pass.feature"
125
+ Then it should pass with:
126
+ """
127
+ 1 feature passed, 0 failed, 0 skipped
128
+ 1 scenario passed, 0 failed, 0 skipped
129
+ 1 step passed, 0 failed, 0 skipped, 0 undefined
130
+ """
131
+
132
+ Examples:
133
+ | format | step.text |
134
+ | plain | Café |
135
+ | pretty | Ärgernis ist überall |
136
+
137
+
138
+ Scenario Outline: Problematic step: <step.text> (case: fail, <format>)
139
+ Given a file named "features/step_problematic_and_fail.feature" with:
140
+ """
141
+ Feature:
142
+ Scenario:
143
+ Given a step fails with "<step.text>"
144
+ """
145
+ When I run "behave -f <format> features/step_problematic_and_fail.feature"
146
+ Then it should fail with:
147
+ """
148
+ 0 features passed, 1 failed, 0 skipped
149
+ 0 scenarios passed, 1 failed, 0 skipped
150
+ 0 steps passed, 1 failed, 0 skipped, 0 undefined
151
+ """
152
+
153
+ Examples:
154
+ | format | step.text |
155
+ | plain | Café |
156
+ | pretty | Ärgernis ist überall |
157
+
158
+
159
+ @problematic.feature_filename
160
+ @not.with_os=win32
161
+ Scenario Outline: Problematic feature filename: <name> (case: pass, <format>)
162
+ Given a file named "features/<name>_and_pass.feature" with:
163
+ """
164
+ Feature:
165
+ Scenario:
166
+ Given a step passes
167
+ """
168
+ When I run "behave -f <format> features/<name>_and_pass.feature"
169
+ Then it should pass with:
170
+ """
171
+ 1 feature passed, 0 failed, 0 skipped
172
+ 1 scenario passed, 0 failed, 0 skipped
173
+ """
174
+
175
+ Examples:
176
+ | format | name |
177
+ | plain | Café |
178
+ | pretty | Ärgernis_ist_überall |
179
+
180
+
181
+ @problematic.feature_filename
182
+ @not.with_os=win32
183
+ Scenario Outline: Problematic feature filename: <name> (case: fail, <format>)
184
+ Given a file named "features/<name>_and_fail.feature" with:
185
+ """
186
+ Feature:
187
+ Scenario:
188
+ Given a step fails
189
+ """
190
+ When I run "behave -f <format> features/<name>_and_fail.feature"
191
+ Then it should fail with:
192
+ """
193
+ 0 features passed, 1 failed, 0 skipped
194
+ 0 scenarios passed, 1 failed, 0 skipped
195
+ """
196
+
197
+ Examples:
198
+ | format | name |
199
+ | plain | Café |
200
+ | pretty | Ärgernis_ist_überall |
201
+
202
+
203
+ @problematic.step_filename
204
+ Scenario Outline: Problematic step filename: <name> (case: pass, <format>)
205
+
206
+ TEST-CONSTRAINT: Only one step file is used (= 1 name only).
207
+ Otherwise, duplicated steps occur (without cleanup in step directory).
208
+
209
+ Given a file named "features/problematic_stepfile_and_pass.feature" with:
210
+ """
211
+ Feature:
212
+ Scenario:
213
+ Given I use a weird step and pass
214
+ """
215
+ And a file named "features/steps/step_pass_<name>.py" with:
216
+ """
217
+ from behave import step
218
+
219
+ @step(u'I use a weird step and pass')
220
+ def step_weird_pass(context):
221
+ pass
222
+ """
223
+ When I run "behave -f <format> features/problematic_stepfile_and_pass.feature"
224
+ Then it should pass with:
225
+ """
226
+ 1 feature passed, 0 failed, 0 skipped
227
+ 1 scenario passed, 0 failed, 0 skipped
228
+ """
229
+ But note that "you should normally use only ASCII/latin-1 python filenames"
230
+
231
+ Examples:
232
+ | format | name |
233
+ | plain | Ärgernis_ist_überall |
234
+ | pretty | Ärgernis_ist_überall |
235
+
236
+
237
+ @problematic.step_filename
238
+ Scenario Outline: Problematic step filename: <name> (case: fail, <format>)
239
+
240
+ TEST-CONSTRAINT: Only one step file is used (= 1 name only).
241
+ Otherwise, duplicated steps occur (without cleanup in step directory).
242
+
243
+ Given a file named "features/problematic_stepfile_and_fail.feature" with:
244
+ """
245
+ Feature:
246
+ Scenario:
247
+ Given I use a weird step and fail
248
+ """
249
+ And a file named "features/steps/step_fail_<name>.py" with:
250
+ """
251
+ from behave import step
252
+
253
+ @step(u'I use a weird step and fail')
254
+ def step_weird_fails(context):
255
+ assert False, "XFAIL-WEIRD"
256
+ """
257
+ When I run "behave -f <format> features/problematic_stepfile_and_fail.feature"
258
+ Then it should fail with:
259
+ """
260
+ 0 features passed, 1 failed, 0 skipped
261
+ 0 scenarios passed, 1 failed, 0 skipped
262
+ """
263
+ But note that "you should normally use only ASCII/latin-1 python filenames"
264
+
265
+ Examples:
266
+ | format | name |
267
+ | plain | Ärgernis_ist_überall |
268
+ | pretty | Ärgernis_ist_überall |
269
+
270
+
271
+ @problematic.output
272
+ Scenario Outline: Problematic output: <text> (case: pass, <format>)
273
+ Given a file named "features/problematic_output_and_pass.feature" with:
274
+ """
275
+ Feature:
276
+ Scenario:
277
+ Given I write text "<text>" to stdout
278
+ Then I write bytes "<text>" to stdout
279
+ And a step passes
280
+ """
281
+ When I run "behave -f <format> --no-capture features/problematic_output_and_pass.feature"
282
+ Then it should pass with:
283
+ """
284
+ 1 feature passed, 0 failed, 0 skipped
285
+ 1 scenario passed, 0 failed, 0 skipped
286
+ """
287
+
288
+ Examples:
289
+ | format | text |
290
+ | plain | Café |
291
+ | pretty | Ärgernis ist überall |
292
+
293
+
294
+ @problematic.output
295
+ Scenario Outline: Problematic output: <text> (case: fail, <format>)
296
+ Given a file named "features/problematic_output_and_fail.feature" with:
297
+ """
298
+ Feature:
299
+ Scenario:
300
+ Given I write text "<text>" to stdout
301
+ Then I write bytes "<text>" to stdout
302
+ And a step fails
303
+ """
304
+ When I run "behave -f <format> features/problematic_output_and_fail.feature"
305
+ Then it should fail with:
306
+ """
307
+ 0 features passed, 1 failed, 0 skipped
308
+ 0 scenarios passed, 1 failed, 0 skipped
309
+ """
310
+ And the command output should contain:
311
+ """
312
+ <text>
313
+ """
314
+
315
+ Examples:
316
+ | format | text |
317
+ | plain | Café |
318
+ | pretty | Ärgernis ist überall |
319
+
320
+
321
+ @problematic.tags
322
+ Scenario Outline: Problematic tag: <tag> (case: pass, <format>)
323
+ Given a file named "features/problematic_tag_and_pass.feature" with:
324
+ """
325
+ Feature:
326
+ @<tag>
327
+ Scenario:
328
+ Given a step passes
329
+ """
330
+ When I run "behave -f <format> features/problematic_tag_and_pass.feature"
331
+ Then it should pass with:
332
+ """
333
+ 1 scenario passed, 0 failed, 0 skipped
334
+ """
335
+
336
+ Examples:
337
+ | format | tag |
338
+ | plain | tag.Café |
339
+ | pretty | tag.Ärgernis_ist_überall |
340
+
341
+
342
+ @problematic.tags
343
+ Scenario Outline: Problematic tag: <tag> (case: fail, <format>)
344
+ Given a file named "features/problematic_tag_and_fail.feature" with:
345
+ """
346
+ Feature:
347
+ @<tag>
348
+ Scenario:
349
+ Given a step fails
350
+ """
351
+ When I run "behave -f <format> features/problematic_tag_and_fail.feature"
352
+ Then it should fail with:
353
+ """
354
+ 0 scenarios passed, 1 failed, 0 skipped
355
+ """
356
+
357
+ Examples:
358
+ | format | tag |
359
+ | plain | tag.Café |
360
+ | pretty | tag.Ärgernis_ist_überall |
361
+
362
+
363
+ @issue_0230
364
+ Scenario Outline: Step assert fails with problematic chars (case: <format>)
365
+
366
+ NOTE: Python2 fails silently without showing the failed step.
367
+ HINT: Use unicode string when you use, special non-ASCII characters.
368
+ HINT: Use encoding-hint in python file header.
369
+
370
+ Given a file named "features/steps/problematic_steps.py" with:
371
+ """
372
+ # -*- coding: UTF-8 -*-
373
+ from behave import step
374
+
375
+ @step(u'{word:w} step fails with assert and non-ASCII text')
376
+ def step_fails_with_assert_and_problematic_text(context, word):
377
+ assert False, u"XFAIL:¾;"
378
+ """
379
+ And a file named "features/assert_with_ptext.feature" with:
380
+ """
381
+ Feature:
382
+ Scenario:
383
+ Given a step passes
384
+ When a step fails with assert and non-ASCII text
385
+ """
386
+ When I run "behave -f <format> features/assert_with_ptext.feature"
387
+ Then it should fail with:
388
+ """
389
+ 0 scenarios passed, 1 failed, 0 skipped
390
+ 1 step passed, 1 failed, 0 skipped, 0 undefined
391
+ """
392
+ And the command output should contain:
393
+ """
394
+ Assertion Failed: XFAIL:¾;
395
+ """
396
+
397
+ Examples:
398
+ | format |
399
+ | plain |
400
+ | pretty |
401
+
402
+ @issue_0226
403
+ Scenario Outline: Step raises exception with problematic chars (case: <format>)
404
+
405
+ In Python2: When an exception is raised with unicode argument,
406
+ (and special non-ASCII chars) the conversion of the exception into
407
+ a unicode string causes implicit conversion into a normal string
408
+ by using the default encoding (normally: ASCII).
409
+ Therefore, the implicit encoding into a normal string often fails.
410
+
411
+ SEE ALSO: http://bugs.python.org/issue2517
412
+ NOTE: Better if encoding hint is provided in python file header.
413
+
414
+ Given a file named "features/steps/problematic_steps.py" with:
415
+ """
416
+ # -*- coding: UTF-8 -*-
417
+ from behave import step
418
+
419
+ @step(u'{word:w} step fails with exception and non-ASCII text')
420
+ def step_fails_with_exception_and_problematic_text(context, word):
421
+ # -- REQUIRE: UNICODE STRING, when special, non-ASCII chars are used.
422
+ raise RuntimeError(u"FAIL:¾;")
423
+ """
424
+ And a file named "features/exception_with_ptext.feature" with:
425
+ """
426
+ Feature:
427
+ Scenario:
428
+ Given a step passes
429
+ When a step fails with exception and non-ASCII text
430
+ """
431
+ When I run "behave -f <format> features/exception_with_ptext.feature"
432
+ Then it should fail with:
433
+ """
434
+ 0 scenarios passed, 1 failed, 0 skipped
435
+ 1 step passed, 1 failed, 0 skipped, 0 undefined
436
+ """
437
+ And the command output should contain:
438
+ """
439
+ RuntimeError: FAIL:¾;
440
+ """
441
+
442
+ Examples:
443
+ | format |
444
+ | plain |
445
+ | pretty |
@@ -0,0 +1,114 @@
1
+ @logging
2
+ @capture
3
+ Feature: Use --logging-clear-handlers configuration option
4
+
5
+ PRECONDITION: log_capture mode is enabled (config.log_capture = true).
6
+
7
+ As a tester
8
+ In log-capture mode
9
+ I want sometimes to remove any logging handler before capture starts
10
+ So that I have the log-records output under control.
11
+
12
+
13
+ @setup
14
+ Scenario: Feature Setup
15
+ Given a new working directory
16
+ And a file named "features/steps/use_behave4cmd_steps.py" with:
17
+ """
18
+ import behave4cmd0.log.steps
19
+ import behave4cmd0.failing_steps
20
+ import behave4cmd0.passing_steps
21
+ """
22
+ And a file named "features/environment.py" with:
23
+ """
24
+ def before_all(context):
25
+ # -- SAME-AS: context.config.setup_logging()
26
+ import logging
27
+ logging.basicConfig(level=context.config.logging_level)
28
+
29
+ # -- ADDITIONAL LOG-HANDLER: Which will be cleared.
30
+ format = "LOG-HANDLER2: %(name)s %(levelname)s: %(message)s;"
31
+ handler = logging.StreamHandler()
32
+ handler.setFormatter(logging.Formatter(format))
33
+ root_logger = logging.getLogger()
34
+ root_logger.addHandler(handler)
35
+ """
36
+ And a file named "features/example.log_with_failure.feature" with:
37
+ """
38
+ Feature:
39
+ Scenario: Failing
40
+ Given I create log records with:
41
+ | category | level | message |
42
+ | root | ERROR | Hello Alice |
43
+ | root | WARN | Hello Bob |
44
+ When a step fails
45
+ """
46
+
47
+
48
+ Scenario: Use logcapture mode without clearing existing log handlers
49
+ Given a file named "behave.ini" with:
50
+ """
51
+ [behave]
52
+ log_capture = true
53
+ logging_level = WARN
54
+ """
55
+ When I run "behave -f plain features/example.log_with_failure.feature"
56
+ Then it should fail with:
57
+ """
58
+ 0 scenarios passed, 1 failed, 0 skipped
59
+ 1 step passed, 1 failed, 0 skipped, 0 undefined
60
+ """
61
+ And the command output should contain:
62
+ """
63
+ Captured logging:
64
+ ERROR:root:Hello Alice
65
+ WARNING:root:Hello Bob
66
+ """
67
+ And the command output should contain:
68
+ """
69
+ LOG-HANDLER2: root ERROR: Hello Alice;
70
+ LOG-HANDLER2: root WARNING: Hello Bob;
71
+ """
72
+
73
+
74
+ Scenario: Use logcapture mode with clearing additional log handlers (case: command-line)
75
+ Given a file named "behave.ini" with:
76
+ """
77
+ [behave]
78
+ log_capture = true
79
+ logging_level = WARN
80
+ """
81
+ When I run "behave -f plain --logging-clear-handlers features/example.log_with_failure.feature"
82
+ Then it should fail with:
83
+ """
84
+ Captured logging:
85
+ ERROR:root:Hello Alice
86
+ WARNING:root:Hello Bob
87
+ """
88
+ But the command output should not contain:
89
+ """
90
+ LOG-HANDLER2: root ERROR: Hello Alice;
91
+ LOG-HANDLER2: root WARNING: Hello Bob;
92
+ """
93
+
94
+
95
+ Scenario: Use Logcapture mode with clearing additional log handlers (case: configfile)
96
+ Given a file named "behave.ini" with:
97
+ """
98
+ [behave]
99
+ log_capture = true
100
+ logging_level = WARN
101
+ logging_clear_handlers = true
102
+ """
103
+ When I run "behave -f plain features/example.log_with_failure.feature"
104
+ Then it should fail with:
105
+ """
106
+ Captured logging:
107
+ ERROR:root:Hello Alice
108
+ WARNING:root:Hello Bob
109
+ """
110
+ But the command output should not contain:
111
+ """
112
+ LOG-HANDLER2: root ERROR: Hello Alice;
113
+ LOG-HANDLER2: root WARNING: Hello Bob;
114
+ """