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,305 @@
1
+ Feature: Test run can be aborted by the user
2
+
3
+ As a tester
4
+ I want sometimes to abort a test run (because it is anyway failing, etc.)
5
+ So that I am more productive.
6
+
7
+ . NOTES:
8
+ . * The test runner should fail gracefully (most of the times)
9
+ . * At least some cleanup hooks should be called (in general)
10
+
11
+
12
+ @setup
13
+ Scenario: Feature Setup
14
+ Given a new working directory
15
+ And a file named "features/steps/aborting_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
+ @step('the user aborts the test run')
24
+ def step_user_aborts_testrun(context):
25
+ raise KeyboardInterrupt()
26
+ """
27
+ And a file named "features/scenarios_pass3.feature" with:
28
+ """
29
+ Feature:
30
+ Scenario:
31
+ Given a step passes
32
+ When another step passes
33
+
34
+ Scenario:
35
+ Given first step passes
36
+ When second step passes
37
+ Then third step passes
38
+
39
+ Scenario:
40
+ Then last step passes
41
+ """
42
+
43
+
44
+ Scenario: Abort test run in step definition
45
+ Given a file named "features/aborting_in_step.feature" with:
46
+ """
47
+ Feature: User aborts test run in a step definition
48
+ Scenario:
49
+ Given a step passes
50
+ When another step passes
51
+
52
+ Scenario: User aborts here
53
+ Given first step passes
54
+ When the user aborts the test run
55
+ Then third step passes
56
+
57
+ Scenario:
58
+ Then last step passes
59
+ """
60
+ And an empty file named "features/environment.py"
61
+ When I run "behave -f plain -T features/aborting_in_step.feature"
62
+ Then it should fail with:
63
+ """
64
+ 0 features passed, 1 failed, 0 skipped
65
+ 1 scenario passed, 1 failed, 0 skipped, 1 untested
66
+ 3 steps passed, 1 failed, 1 skipped, 0 undefined, 1 untested
67
+ """
68
+ And the command output should contain:
69
+ """
70
+ Feature: User aborts test run in a step definition
71
+
72
+ Scenario:
73
+ Given a step passes ... passed
74
+ When another step passes ... passed
75
+
76
+ Scenario: User aborts here
77
+ Given first step passes ... passed
78
+ When the user aborts the test run ... failed
79
+ ABORTED: By user (KeyboardInterrupt).
80
+
81
+ ABORTED: By user.
82
+
83
+ Failing scenarios:
84
+ features/aborting_in_step.feature:6 User aborts here
85
+ """
86
+ But note that "the last scenario is untested (not-run) due to the user abort"
87
+
88
+
89
+ Scenario: Abort test run in before_scenario hook
90
+ Given a file named "features/aborting_in_before_scenario_hook.feature" with:
91
+ """
92
+ Feature: User aborts test run in before_scenario hook of S2
93
+ Scenario: S1
94
+ Given a step passes
95
+ When another step passes
96
+
97
+ @user.aborts.before_scenario
98
+ Scenario: S2 -- User aborts here
99
+ Given first step passes
100
+ When second step passes
101
+ Then third step passes
102
+
103
+ Scenario: S3
104
+ Then last step passes
105
+ """
106
+ And a file named "features/environment.py" with:
107
+ """
108
+ def before_scenario(context, scenario):
109
+ if "user.aborts.before_scenario" in scenario.tags:
110
+ user_aborts_testrun_here()
111
+
112
+ def user_aborts_testrun_here():
113
+ raise KeyboardInterrupt()
114
+ """
115
+ When I run "behave -f plain -T features/aborting_in_before_scenario_hook.feature"
116
+ Then it should fail with:
117
+ """
118
+ ABORTED: By user.
119
+ 0 features passed, 1 failed, 0 skipped
120
+ 1 scenario passed, 0 failed, 0 skipped, 2 untested
121
+ 2 steps passed, 0 failed, 0 skipped, 0 undefined, 4 untested
122
+ """
123
+ And the command output should contain:
124
+ """
125
+ Feature: User aborts test run in before_scenario hook of S2
126
+
127
+ Scenario: S1
128
+ Given a step passes ... passed
129
+ When another step passes ... passed
130
+ """
131
+ But the command output should not contain "Scenario: S2 -- User aborts here"
132
+ But the command output should not contain "Scenario: S3"
133
+ And note that "the second and third scenario is not run"
134
+
135
+
136
+ Scenario: Abort test run in after_scenario hook
137
+ Given a file named "features/aborting_in_after_scenario_hook.feature" with:
138
+ """
139
+ Feature: User aborts test run in after_scenario hook
140
+ Scenario:
141
+ Given a step passes
142
+ When another step passes
143
+
144
+ @user.aborts.after_scenario
145
+ Scenario: User aborts here
146
+ Given first step passes
147
+ When second step passes
148
+ Then third step passes
149
+
150
+ Scenario:
151
+ Then last step passes
152
+ """
153
+ And a file named "features/environment.py" with:
154
+ """
155
+ def after_scenario(context, scenario):
156
+ if "user.aborts.after_scenario" in scenario.tags:
157
+ raise KeyboardInterrupt()
158
+ """
159
+ When I run "behave -f plain -T features/aborting_in_after_scenario_hook.feature"
160
+ Then it should fail with:
161
+ """
162
+ ABORTED: By user.
163
+ 0 features passed, 1 failed, 0 skipped
164
+ 2 scenarios passed, 0 failed, 0 skipped, 1 untested
165
+ 5 steps passed, 0 failed, 0 skipped, 0 undefined, 1 untested
166
+ """
167
+ And the command output should contain:
168
+ """
169
+ Feature: User aborts test run in after_scenario hook
170
+
171
+ Scenario:
172
+ Given a step passes ... passed
173
+ When another step passes ... passed
174
+
175
+ Scenario: User aborts here
176
+ Given first step passes ... passed
177
+ When second step passes ... passed
178
+ Then third step passes ... passed
179
+ """
180
+ But the command output should not contain:
181
+ """
182
+ Scenario:
183
+ Then last step passes ... passed
184
+ """
185
+ And note that "the last scenario is not run"
186
+
187
+
188
+ Scenario: Abort test run in before_feature hook
189
+ Given a file named "features/aborting_in_before_feature_hook.feature" with:
190
+ """
191
+ @user.aborts.before_feature
192
+ Feature: User aborts test HERE
193
+ Scenario:
194
+ Given a step passes
195
+ When another step passes
196
+
197
+ Scenario:
198
+ Given first step passes
199
+ When second step passes
200
+ Then third step passes
201
+
202
+ Scenario:
203
+ Then last step passes
204
+ """
205
+ And a file named "features/environment.py" with:
206
+ """
207
+ from __future__ import print_function
208
+
209
+ def before_feature(context, feature):
210
+ if "user.aborts.before_feature" in feature.tags:
211
+ print("ABORTED in before_feature: %s" % feature.location)
212
+ raise KeyboardInterrupt()
213
+ """
214
+ When I run "behave -f plain -T features/aborting_in_before_feature_hook.feature"
215
+ Then it should fail with:
216
+ """
217
+ ABORTED in before_feature: features/aborting_in_before_feature_hook.feature:2
218
+
219
+ ABORTED: By user.
220
+ 0 features passed, 0 failed, 0 skipped, 1 untested
221
+ 0 scenarios passed, 0 failed, 0 skipped, 3 untested
222
+ 0 steps passed, 0 failed, 0 skipped, 0 undefined, 6 untested
223
+ """
224
+ But note that "the feature is not run"
225
+ And note that "the formatters are not informed of this feature"
226
+
227
+
228
+ Scenario: Abort test run in after_feature hook
229
+ Given a file named "features/aborting_in_after_feature_hook.feature" with:
230
+ """
231
+ @user.aborts.after_feature
232
+ Feature: User aborts test after HERE
233
+ Scenario:
234
+ Given a step passes
235
+ When another step passes
236
+
237
+ Scenario:
238
+ Given first step passes
239
+ When second step passes
240
+ Then third step passes
241
+
242
+ Scenario:
243
+ Then last step passes
244
+ """
245
+ And a file named "features/environment.py" with:
246
+ """
247
+ def after_feature(context, feature):
248
+ if "user.aborts.after_feature" in feature.tags:
249
+ raise KeyboardInterrupt()
250
+ """
251
+ When I run "behave -f plain -T features/aborting_in_after_feature_hook.feature"
252
+ Then it should fail with:
253
+ """
254
+ ABORTED: By user.
255
+ 1 feature passed, 0 failed, 0 skipped
256
+ 3 scenarios passed, 0 failed, 0 skipped
257
+ 6 steps passed, 0 failed, 0 skipped, 0 undefined
258
+ """
259
+ But note that "the behave command fails, but all features/scenarios passed"
260
+
261
+
262
+ Scenario: Abort test run in before_all hook
263
+
264
+ Note that this situation is not handled very gracefully (yet).
265
+
266
+ Given a file named "features/scenarios_pass3.feature" exists
267
+ And a file named "features/environment.py" with:
268
+ """
269
+ def before_all(context):
270
+ raise KeyboardInterrupt() #< ABORT-HERE
271
+ """
272
+ When I run "behave -f plain -T features/scenarios_pass3.feature"
273
+ Then it should fail with:
274
+ """
275
+ Traceback (most recent call last):
276
+ """
277
+ And the command output should contain:
278
+ """
279
+ File "features/environment.py", line 2, in before_all
280
+ raise KeyboardInterrupt() #< ABORT-HERE
281
+ """
282
+ And note that "no feature is not run"
283
+
284
+
285
+ Scenario: Abort test run in after_all hook
286
+
287
+ Note that this situation is not handled very gracefully (yet).
288
+
289
+ Given a file named "features/scenarios_pass3.feature" exists
290
+ And a file named "features/environment.py" with:
291
+ """
292
+ def after_all(context):
293
+ raise KeyboardInterrupt() #< ABORT-HERE
294
+ """
295
+ When I run "behave -f plain -T features/scenarios_pass3.feature"
296
+ Then it should fail with:
297
+ """
298
+ Traceback (most recent call last):
299
+ """
300
+ And the command output should contain:
301
+ """
302
+ File "features/environment.py", line 2, in after_all
303
+ raise KeyboardInterrupt() #< ABORT-HERE
304
+ """
305
+ And note that "all features are run"
@@ -0,0 +1,136 @@
1
+ Feature: Runner should continue after a failed step
2
+
3
+ As a tester or test writer
4
+ I want that the remaining scenario steps are executed even when a step fails
5
+ So that I see all remaining failures.
6
+
7
+ . NOTES:
8
+ . This may cause a number of correlated failures in the remaining steps.
9
+ . Therefore the default behavior of the runner is to skip the
10
+ . remaining scenario steps after a failure has occurred.
11
+ .
12
+ . RELATED TO: CR #299 (duplicated: #314)
13
+
14
+ @setup
15
+ Scenario: Test Setup
16
+ Given a new working directory
17
+ And a file named "features/steps/steps.py" with:
18
+ """
19
+ from behave import step
20
+ import sys
21
+
22
+ @step('{word:w} step passes')
23
+ def step_passes(context, word):
24
+ pass
25
+
26
+ @step('{word:w} step fails')
27
+ def step_fails(context, word):
28
+ assert False, "XFAIL (in: %s step)" % word
29
+ """
30
+ And a file named "features/alice.feature" with:
31
+ """
32
+ Feature: Alice
33
+ Scenario: Passing
34
+ Given first step passes
35
+ When second step passes
36
+ Then third step passes
37
+
38
+ Scenario: Fails in second step
39
+ Given a step passes
40
+ When second step fails
41
+ Then another step passes
42
+
43
+ @runner.continue_after_failed_step
44
+ Scenario: Fails in first and third step
45
+ Given first step fails
46
+ When second step passes
47
+ Then third step fails
48
+ """
49
+
50
+
51
+ Scenario: Runner continues after failed step in all scenarios
52
+ Given a file named "features/environment.py" with:
53
+ """
54
+ from behave.model import Scenario
55
+
56
+ def before_all(context):
57
+ userdata = context.config.userdata
58
+ continue_after_failed = userdata.getbool("runner.continue_after_failed_step", False)
59
+ Scenario.continue_after_failed_step = continue_after_failed
60
+ """
61
+ And a file named "behave.ini" with:
62
+ """
63
+ [behave]
64
+ show_timings = false
65
+
66
+ [behave.userdata]
67
+ runner.continue_after_failed_step = true
68
+ """
69
+ When I run "behave -f plain features/alice.feature"
70
+ Then it should fail with:
71
+ """
72
+ Failing scenarios:
73
+ features/alice.feature:7 Fails in second step
74
+ features/alice.feature:13 Fails in first and third step
75
+
76
+ 0 features passed, 1 failed, 0 skipped
77
+ 1 scenario passed, 2 failed, 0 skipped
78
+ 6 steps passed, 3 failed, 0 skipped, 0 undefined
79
+ """
80
+ And the command output should contain:
81
+ """
82
+ Scenario: Fails in second step
83
+ Given a step passes ... passed
84
+ When second step fails ... failed
85
+ Assertion Failed: XFAIL (in: second step)
86
+ Then another step passes ... passed
87
+
88
+ Scenario: Fails in first and third step
89
+ Given first step fails ... failed
90
+ Assertion Failed: XFAIL (in: first step)
91
+ When second step passes ... passed
92
+ Then third step fails ... failed
93
+ Assertion Failed: XFAIL (in: third step)
94
+ """
95
+ But note that "step execution continues after failed step(s)"
96
+ And note that "no steps are skipped"
97
+
98
+
99
+ Scenario: Runner continues after failed step in some scenarios
100
+
101
+ Enable this feature only on tagged scenarios (or features).
102
+
103
+ Given a file named "features/environment.py" with:
104
+ """
105
+ def before_scenario(context, scenario):
106
+ if "runner.continue_after_failed_step" in scenario.effective_tags:
107
+ scenario.continue_after_failed_step = True
108
+ """
109
+ When I run "behave -f plain -T features/alice.feature"
110
+ Then it should fail with:
111
+ """
112
+ Failing scenarios:
113
+ features/alice.feature:7 Fails in second step
114
+ features/alice.feature:13 Fails in first and third step
115
+
116
+ 0 features passed, 1 failed, 0 skipped
117
+ 1 scenario passed, 2 failed, 0 skipped
118
+ 5 steps passed, 3 failed, 1 skipped, 0 undefined
119
+ """
120
+ And the command output should contain:
121
+ """
122
+ Scenario: Fails in second step
123
+ Given a step passes ... passed
124
+ When second step fails ... failed
125
+ Assertion Failed: XFAIL (in: second step)
126
+
127
+ Scenario: Fails in first and third step
128
+ Given first step fails ... failed
129
+ Assertion Failed: XFAIL (in: first step)
130
+ When second step passes ... passed
131
+ Then third step fails ... failed
132
+ Assertion Failed: XFAIL (in: third step)
133
+ """
134
+ But note that "step execution continues after failed step in tagged scenario only"
135
+ And note that "some steps are skipped (in 2nd, untagged scenario)"
136
+
@@ -0,0 +1,175 @@
1
+ @sequential
2
+ Feature: Default Formatter
3
+
4
+ . SPECIFICATION:
5
+ . * Default formatter is used when no other formatter is specified/provided.
6
+ . * Default formatter uses stdout as default output/outfile.
7
+ . * Pretty formatter is the default formatter.
8
+ . * Behave configfile can specify the default formatter.
9
+
10
+
11
+ @setup
12
+ Scenario: Test Setup
13
+ Given a new working directory
14
+ And a file named "features/steps/passing_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
+ Feature: Alice
25
+ Scenario: A1
26
+ Given a step passes
27
+ When a step passes
28
+ Then a step passes
29
+ """
30
+ And a file named "features/bob.feature" with:
31
+ """
32
+ Feature: Bob
33
+ Scenario: B1
34
+ When a step passes
35
+ Then a step passes
36
+ """
37
+
38
+ @no_configfile
39
+ Scenario: Pretty formatter is used as default formatter if no other is defined
40
+ Given a file named "behave.ini" does not exist
41
+ When I run "behave -c features/"
42
+ Then it should pass with:
43
+ """
44
+ 2 features passed, 0 failed, 0 skipped
45
+ 2 scenarios passed, 0 failed, 0 skipped
46
+ """
47
+ And the command output should contain:
48
+ """
49
+ Feature: Alice # features/alice.feature:1
50
+ Scenario: A1 # features/alice.feature:2
51
+ Given a step passes # features/steps/passing_steps.py:3
52
+ When a step passes # features/steps/passing_steps.py:3
53
+ Then a step passes # features/steps/passing_steps.py:3
54
+
55
+ Feature: Bob # features/bob.feature:1
56
+ Scenario: B1 # features/bob.feature:2
57
+ When a step passes # features/steps/passing_steps.py:3
58
+ Then a step passes # features/steps/passing_steps.py:3
59
+ """
60
+
61
+
62
+ @with_configfile
63
+ Scenario: Configfile can define own default formatter
64
+ Given a file named "behave.ini" with:
65
+ """
66
+ [behave]
67
+ default_format = plain
68
+ show_timings = false
69
+ """
70
+ When I run "behave features/"
71
+ Then it should pass with:
72
+ """
73
+ 2 features passed, 0 failed, 0 skipped
74
+ 2 scenarios passed, 0 failed, 0 skipped
75
+ """
76
+ And the command output should contain:
77
+ """
78
+ Feature: Alice
79
+ Scenario: A1
80
+ Given a step passes ... passed
81
+ When a step passes ... passed
82
+ Then a step passes ... passed
83
+
84
+ Feature: Bob
85
+ Scenario: B1
86
+ When a step passes ... passed
87
+ Then a step passes ... passed
88
+ """
89
+
90
+ @with_configfile
91
+ Scenario: Use default formatter with own outfile instead of stdout
92
+ Given a file named "behave.ini" with:
93
+ """
94
+ [behave]
95
+ default_format = plain
96
+ show_timings = false
97
+ """
98
+ When I run "behave --outfile=output/default.out features/"
99
+ Then it should pass with:
100
+ """
101
+ 2 features passed, 0 failed, 0 skipped
102
+ 2 scenarios passed, 0 failed, 0 skipped
103
+ """
104
+ And the file "output/default.out" should contain:
105
+ """
106
+ Feature: Alice
107
+ Scenario: A1
108
+ Given a step passes ... passed
109
+ When a step passes ... passed
110
+ Then a step passes ... passed
111
+
112
+ Feature: Bob
113
+ Scenario: B1
114
+ When a step passes ... passed
115
+ Then a step passes ... passed
116
+ """
117
+
118
+
119
+ @with_configfile
120
+ Scenario: Can override default formatter from configfile on command-line
121
+ Given a file named "behave.ini" with:
122
+ """
123
+ [behave]
124
+ default_format = plain
125
+ show_timings = false
126
+ """
127
+ When I run "behave -f progress features/"
128
+ Then it should pass with:
129
+ """
130
+ 2 features passed, 0 failed, 0 skipped
131
+ 2 scenarios passed, 0 failed, 0 skipped
132
+ """
133
+ And the command output should contain:
134
+ """
135
+ features/alice.feature .
136
+ features/bob.feature .
137
+ """
138
+
139
+
140
+ # -- Some formatter are specified in configfile.
141
+ @with_configfile
142
+ Scenario: Default formatter is used when non is provided on command-line
143
+ Given a file named "behave.ini" with:
144
+ """
145
+ [behave]
146
+ default_format = plain
147
+ format = progress
148
+ outfiles = output/progress.out
149
+ show_timings = false
150
+ """
151
+ And I remove the directory "output"
152
+ When I run "behave features/"
153
+ Then it should pass with:
154
+ """
155
+ 2 features passed, 0 failed, 0 skipped
156
+ 2 scenarios passed, 0 failed, 0 skipped
157
+ """
158
+ And the command output should contain:
159
+ """
160
+ Feature: Alice
161
+ Scenario: A1
162
+ Given a step passes ... passed
163
+ When a step passes ... passed
164
+ Then a step passes ... passed
165
+
166
+ Feature: Bob
167
+ Scenario: B1
168
+ When a step passes ... passed
169
+ Then a step passes ... passed
170
+ """
171
+ And the file "output/progress.out" should contain:
172
+ """
173
+ features/alice.feature .
174
+ features/bob.feature .
175
+ """