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,11 @@
1
+ @issue
2
+ Feature: Issue #197: Hooks processing should be more exception safe
3
+
4
+ TESTS PROVIDED IN: features/runner.hook_errors.feature
5
+
6
+ @reuse.colocated_test
7
+ Scenario: Hook processing in case of errors
8
+ Given I use the current directory as working directory
9
+ When I run "behave -f plain features/runner.hook_errors.feature"
10
+ Then it should pass
11
+
@@ -0,0 +1,129 @@
1
+ @issue
2
+ Feature: Issue #216: ANSI escape sequences are used while using --wip option
3
+
4
+ . ENSURE THAT:
5
+ . * Coloring is disabled when --wip option is used.
6
+ . * In addition, no colouring is used when using --show-skipped option
7
+ . * Undefined step snippets are not "colored".
8
+
9
+ @setup
10
+ Scenario: Feature Setup
11
+ Given a new working directory
12
+ And a file named "behave.ini" with:
13
+ """
14
+ [behave]
15
+ default_format = pretty
16
+ show_skipped = false
17
+ show_timings = false
18
+ """
19
+ And a file named "features/steps/use_behave4cmd_steps.py" with:
20
+ """
21
+ import behave4cmd0.passing_steps
22
+ import behave4cmd0.failing_steps
23
+ import behave4cmd0.note_steps
24
+ """
25
+ And a file named "features/steps/ansi_steps.py" with:
26
+ """
27
+ from behave import step, then
28
+ from behave4cmd0.command_steps import step_command_output_should_not_contain_text
29
+
30
+ @then(u'the command output should not contain any ANSI escape sequences')
31
+ def step_command_ouput_should_not_contain_ansi_sequences(context):
32
+ CSI = u"\x1b[" #< ANSI CONTROL SEQUENCE INTRODUCER (CSI).
33
+ step_command_output_should_not_contain_text(context, CSI)
34
+ """
35
+ And a file named "features/scenario_with_undefined_steps.feature" with:
36
+ """
37
+ Feature:
38
+
39
+ @wip
40
+ Scenario: Alice
41
+ Given a step passes
42
+ When a step is undefined
43
+ Then a step passes
44
+
45
+ @foo
46
+ Scenario: Bob
47
+ When another step is undefined
48
+ """
49
+
50
+
51
+ Scenario: When using --wip, coloring is disabled
52
+ When I run "behave --wip features"
53
+ Then it should fail with:
54
+ """
55
+ 0 features passed, 1 failed, 0 skipped
56
+ 0 scenarios passed, 1 failed, 0 skipped, 1 untested
57
+ 1 step passed, 0 failed, 1 skipped, 1 undefined, 1 untested
58
+ """
59
+ And the command output should contain:
60
+ """
61
+ Scenario: Alice
62
+ Given a step passes ... passed
63
+ When a step is undefined ... undefined
64
+ """
65
+ But the command output should not contain any ANSI escape sequences
66
+ And note that "the plain formatter is used as default formatter"
67
+
68
+
69
+ Scenario: When using --wip and --show-skipped, coloring is disabled
70
+ When I run "behave --wip --show-skipped features"
71
+ Then it should fail with:
72
+ """
73
+ 0 features passed, 1 failed, 0 skipped
74
+ 0 scenarios passed, 1 failed, 0 skipped, 1 untested
75
+ 1 step passed, 0 failed, 1 skipped, 1 undefined, 1 untested
76
+ """
77
+ And the command output should contain:
78
+ """
79
+ Scenario: Alice
80
+ Given a step passes ... passed
81
+ When a step is undefined ... undefined
82
+ """
83
+ But the command output should not contain any ANSI escape sequences
84
+ And note that "the plain formatter is used as default formatter"
85
+
86
+
87
+ Scenario: When using --wip and --format, coloring is disabled
88
+ When I run "behave --wip -f pretty features"
89
+ Then it should fail with:
90
+ """
91
+ 0 features passed, 1 failed, 0 skipped
92
+ 0 scenarios passed, 1 failed, 0 skipped, 1 untested
93
+ 1 step passed, 0 failed, 1 skipped, 1 undefined, 1 untested
94
+ """
95
+ And the command output should contain:
96
+ """
97
+ Feature: # features/scenario_with_undefined_steps.feature:1
98
+
99
+ @wip
100
+ Scenario: Alice # features/scenario_with_undefined_steps.feature:4
101
+ Given a step passes # ../behave4cmd0/passing_steps.py:23
102
+ When a step is undefined # None
103
+ Then a step passes # None
104
+ """
105
+ But the command output should not contain any ANSI escape sequences
106
+ And note that "the plain formatter is overridden on command-line"
107
+ And note that "the coloring mode is disabled"
108
+
109
+
110
+ Scenario: When using --wip and --color, coloring is disabled
111
+ When I run "behave --wip -f pretty --color features"
112
+ Then it should fail with:
113
+ """
114
+ 0 features passed, 1 failed, 0 skipped
115
+ 0 scenarios passed, 1 failed, 0 skipped, 1 untested
116
+ 1 step passed, 0 failed, 1 skipped, 1 undefined, 1 untested
117
+ """
118
+ And the command output should contain:
119
+ """
120
+ Feature: # features/scenario_with_undefined_steps.feature:1
121
+
122
+ @wip
123
+ Scenario: Alice # features/scenario_with_undefined_steps.feature:4
124
+ Given a step passes # ../behave4cmd0/passing_steps.py:23
125
+ When a step is undefined # None
126
+ Then a step passes # None
127
+ """
128
+ But the command output should not contain any ANSI escape sequences
129
+ And note that "the coloring mode is overridden by the wip mode"
@@ -0,0 +1,51 @@
1
+ @issue
2
+ @unicode
3
+ Feature: UnicodeDecodeError in tracebacks (when an exception in a step implementation)
4
+
5
+ . Exception with non-ASCII character is raised in a step implementation.
6
+ . UnicodeDecodeError occurs with:
7
+ . 'ascii' codec can't decode byte 0x82 in position 11: ordinal not in range(128)
8
+ .
9
+ . RELATED:
10
+ . * features/i18n.unicode_problems.feature
11
+
12
+ @setup
13
+ Scenario: Feature Setup
14
+ Given a new working directory
15
+ And a file named "features/steps/steps.py" with:
16
+ """
17
+ # -*- coding: UTF-8 -*-
18
+ from behave import step
19
+ import six
20
+ if six.PY2:
21
+ chr = unichr
22
+
23
+ @step(u'a step raises an exception with non-ASCII character "{char_code:d}"')
24
+ def step_raises_exception_with_non_ascii_text(context, char_code):
25
+ assert 0 <= char_code <= 255, "RANGE-ERROR: char_code=%s" % char_code
26
+ raise RuntimeError(u"FAIL:"+ chr(char_code) +";")
27
+ """
28
+
29
+ Scenario Outline: Syndrome with non-ASCII char <char_code> (format=<format>)
30
+ Given a file named "features/syndrome_0226_<char_code>.feature" with:
31
+ """
32
+ Feature:
33
+ Scenario:
34
+ Given a step raises an exception with non-ASCII character "<char_code>"
35
+ """
36
+ When I run "behave -f <format> features/syndrome_0226_<char_code>.feature"
37
+ Then it should fail with:
38
+ """
39
+ 0 scenarios passed, 1 failed, 0 skipped
40
+ 0 steps passed, 1 failed, 0 skipped, 0 undefined
41
+ """
42
+ And the command output should contain:
43
+ """
44
+ RuntimeError: FAIL:<special_char>;
45
+ """
46
+ But the command output should not contain "UnicodeDecodeError"
47
+
48
+ Examples:
49
+ | format | char_code | special_char | comment! |
50
+ | plain | 162 | ¢ | cent |
51
+ | pretty | 191 | ¿ | question-mark on-the-head |
@@ -0,0 +1,41 @@
1
+ @feature_request
2
+ @issue
3
+ Feature: Issue #228: Allow before_scenario to determine whether steps should be run.
4
+
5
+ Allow before_scenario to call mark_skipped() and early out if the current
6
+ scenario should be skipped.
7
+
8
+ Scenario: Allow before_scenario to skip the current scenario
9
+
10
+ Given a new working directory
11
+ And a file named "features/steps/steps.py" with:
12
+ """
13
+ from behave import step
14
+
15
+ @step('a step passes')
16
+ def step_passes(context):
17
+ pass
18
+ """
19
+ And a file named "features/environment.py" with
20
+ """
21
+ def before_scenario(context, scenario):
22
+ if scenario.name == 'Skip this scenario':
23
+ scenario.skip()
24
+ """
25
+ And a file named "features/issue228_example.feature" with
26
+ """
27
+ Feature:
28
+ Scenario: Skip this scenario
29
+ Given I'm using an "undefined step"
30
+
31
+ Scenario: Run this scenario
32
+ Given a step passes
33
+ """
34
+ When I run "behave -f plain features/issue228_example.feature"
35
+ Then it should pass
36
+ And the command output should contain:
37
+ """
38
+ 1 feature passed, 0 failed, 0 skipped
39
+ 1 scenario passed, 0 failed, 1 skipped
40
+ 1 step passed, 0 failed, 1 skipped, 0 undefined
41
+ """
@@ -0,0 +1,46 @@
1
+ @issue
2
+ @unicode
3
+ Feature: Assert with non-ASCII char causes UnicodeDecodeError
4
+
5
+ . Failing assert with non-ASCII character in its message
6
+ . causes UnicodeDecodeError and silent exit in Python2.
7
+ .
8
+ . RELATED:
9
+ . * features/i18n.unicode_problems.feature
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(u'a step fails with non-ASCII character "{char_code:d}"')
19
+ def step_fails_with_non_ascii_text(context, char_code):
20
+ assert 0 <= char_code <= 255, "RANGE-ERROR: char_code=%s" % char_code
21
+ assert False, "FAIL:"+ chr(char_code) +";"
22
+ """
23
+
24
+ Scenario Outline: Syndrome with non-ASCII char <char_code> (format=<format>)
25
+ Given a file named "features/syndrome_0230_<char_code>.feature" with:
26
+ """
27
+ Feature:
28
+ Scenario:
29
+ Given a step fails with non-ASCII character "<char_code>"
30
+ """
31
+ When I run "behave -f <format> features/syndrome_0230_<char_code>.feature"
32
+ Then it should fail with:
33
+ """
34
+ 0 scenarios passed, 1 failed, 0 skipped
35
+ 0 steps passed, 1 failed, 0 skipped, 0 undefined
36
+ """
37
+ And the command output should not contain "UnicodeDecodeError"
38
+ But the command output should contain:
39
+ """
40
+ Assertion Failed: FAIL:
41
+ """
42
+
43
+ Examples:
44
+ | format | char_code |
45
+ | plain | 130 |
46
+ | pretty | 190 |
@@ -0,0 +1,77 @@
1
+ @issue
2
+ @not_reproducible
3
+ Feature: Issue #231: Display the output of the last print command
4
+
5
+ . The output of the last print command in a step is not displayed
6
+ . in the behave output (at least with standard pretty formatter),
7
+ . unless the string to print ends with newline ('\n').
8
+ .
9
+ . ANALYSIS: NOT-REPRODUCIBLE
10
+ . Checked print function and stdout without newline.
11
+ . Both show the expected capture stdout output when the step fails.
12
+
13
+ @setup
14
+ Scenario: Feature Setup
15
+ Given a new working directory
16
+ And a file named "features/syndrome1.feature" with:
17
+ """
18
+ Feature:
19
+ Scenario: Alice
20
+ Given a step passes
21
+ When a step passes
22
+ Then I write "ALICE was HERE" without newline to stdout and fail
23
+ """
24
+ And a file named "features/syndrome2.feature" with:
25
+ """
26
+ Feature:
27
+ Scenario: Bob
28
+ Given a step passes
29
+ Then I print "BOB was HERE" without newline and fail
30
+ """
31
+ And a file named "features/steps/steps.py" with:
32
+ """
33
+ from __future__ import print_function
34
+ from behave import step
35
+ import sys
36
+
37
+ @step('{word:w} step passes')
38
+ def step_passes(context, word):
39
+ pass
40
+
41
+ @step('I write "{message}" without newline to stdout and fail')
42
+ def step_write_without_newline_and_fail(context, message):
43
+ sys.stdout.write(message)
44
+ assert False, "FAIL: "+ message
45
+
46
+ @step('I print "{message}" without newline and fail')
47
+ def step_print_without_newline_and_fail(context, message):
48
+ print(message, end="")
49
+ assert False, "FAIL: "+ message
50
+ """
51
+
52
+
53
+ Scenario: Write to stdout without newline
54
+ When I run "behave -f pretty -c -T features/syndrome1.feature"
55
+ Then it should fail with:
56
+ """
57
+ 0 scenarios passed, 1 failed, 0 skipped
58
+ 2 steps passed, 1 failed, 0 skipped, 0 undefined
59
+ """
60
+ And the command output should contain:
61
+ """
62
+ Captured stdout:
63
+ ALICE was HERE
64
+ """
65
+
66
+ Scenario: Use print function without newline
67
+ When I run "behave -f pretty -c -T features/syndrome2.feature"
68
+ Then it should fail with:
69
+ """
70
+ 0 scenarios passed, 1 failed, 0 skipped
71
+ 1 step passed, 1 failed, 0 skipped, 0 undefined
72
+ """
73
+ And the command output should contain:
74
+ """
75
+ Captured stdout:
76
+ BOB was HERE
77
+ """
@@ -0,0 +1,52 @@
1
+ @issue
2
+ @feature_request
3
+ Feature: Issue #238 Skip a Scenario in a Scenario Outline
4
+
5
+ Scenario:
6
+ Given a new working directory
7
+ And a file named "features/issue238_1.feature" with:
8
+ """
9
+ Feature: Testing Scenario skipping
10
+ Scenario Outline:
11
+ Given a set of "<thing>"
12
+ When I ensure that "<thing>" != invalid
13
+ Then it should pass
14
+
15
+ Examples:
16
+ | thing |
17
+ | valid |
18
+ | invalid |
19
+ """
20
+ And a file named "features/steps/steps.py" with:
21
+ """
22
+ @given('a set of "{thing}"')
23
+ def step_check_thing_assumption(ctx, thing):
24
+ if thing == "invalid":
25
+ ctx.scenario.skip("ASSUMPTION-MISMATCH: INVALID-THING")
26
+
27
+ @when('I ensure that "{thing}" != invalid')
28
+ def step_ensure_that_thing_is_valid(ctx, thing):
29
+ assert thing != "invalid"
30
+
31
+ @then('it should pass')
32
+ def step_passes(context):
33
+ pass
34
+ """
35
+ When I run "behave -f plain --show-skipped --no-timings"
36
+ Then it should pass with:
37
+ """
38
+ 1 feature passed, 0 failed, 0 skipped
39
+ 1 scenario passed, 0 failed, 1 skipped
40
+ 3 steps passed, 0 failed, 3 skipped, 0 undefined
41
+ """
42
+ And the command output should contain:
43
+ """
44
+ Scenario Outline: -- @1.1
45
+ Given a set of "valid" ... passed
46
+ When I ensure that "valid" != invalid ... passed
47
+ Then it should pass ... passed
48
+
49
+ Scenario Outline: -- @1.2
50
+ Given a set of "invalid" ... skipped
51
+ """
52
+ But note that "the step that skipped the scenario is also marked as skipped"
@@ -0,0 +1,15 @@
1
+ @issue
2
+ @unicode
3
+ Feature: UnicodeDecodeError in model.Step (when step fails)
4
+
5
+ . Output of failing step contains non-ASCII characters.
6
+ .
7
+ . RELATED:
8
+ . * features/i18n.unicode_problems.feature
9
+
10
+
11
+ @reuse.colocated_test
12
+ Scenario:
13
+ Given I use the current directory as working directory
14
+ When I run "behave -f plain --tags=@setup,@problematic.output features/i18n.unicode_problems.feature"
15
+ Then it should pass
@@ -0,0 +1,118 @@
1
+ @issue
2
+ Feature: Issue #280: AmbiguousStep error with similar step definitions and use_step_matcher("re")
3
+
4
+ . While using the RegexMatcher with steps that have the same step prefix
5
+ . an AmbiguousStep exception occurs if the shorter step is registered first.
6
+ .
7
+ . EXAMPLE:
8
+ . Two steps with definitions that have the same step prefix:
9
+ .
10
+ . * I do something
11
+ . * I do something more
12
+ .
13
+ . cause an AmbiguousStep error to be thrown:
14
+ .
15
+ . behave.step_registry.AmbiguousStep: @when('I do something more') has already
16
+ . been defined in existing step @when('I do something') at ...
17
+ .
18
+ . SOLUTION: Add regex begin-/end-markers around the step text( '^'+ step + '$')
19
+ . NOTE: Only RegexMatcher is affected.
20
+
21
+ @setup
22
+ Scenario: Feature Setup
23
+ Given a new working directory
24
+ And a file named "features/steps/calculator_steps1.py" with:
25
+ """
26
+ from behave import given, then
27
+ from hamcrest import assert_that, equal_to
28
+
29
+ class SimpleCalculator(object):
30
+ def __init__(self):
31
+ self.result = 0
32
+
33
+ def add(self, value):
34
+ self.result += value
35
+
36
+ @given(u'a calculator')
37
+ def step_impl(context):
38
+ context.calculator = SimpleCalculator()
39
+
40
+ @then(u'the calculator result is "{expected_result:d}"')
41
+ def step_impl(context, expected_result):
42
+ assert_that(context.calculator.result, equal_to(expected_result))
43
+ """
44
+
45
+ Scenario: Ensure RegexMatcher is not ordering sensitive
46
+ Given a file named "features/syndrome_280_1.feature" with:
47
+ """
48
+ Feature:
49
+ Scenario: Use both steps
50
+ Given I do something
51
+ When I do something more
52
+ """
53
+ And a file named "features/steps/simple_steps.py" with:
54
+ """
55
+ from behave import step, use_step_matcher
56
+ use_step_matcher("re")
57
+
58
+ # -- ORDERING SENSITIVE PART:
59
+ @step(u'I do something')
60
+ def step_impl(context):
61
+ pass
62
+
63
+ @step(u'I do something more')
64
+ def step_impl(context):
65
+ pass
66
+ """
67
+ When I run "behave -f plain features/syndrome_280_1.feature"
68
+ Then it should pass with:
69
+ """
70
+ 1 scenario passed, 0 failed, 0 skipped
71
+ """
72
+ But the command output should not contain "AmbiguousStep:"
73
+ And the command output should not contain:
74
+ """
75
+ AmbiguousStep: @step('I do something more') has already been defined in
76
+ existing step @step('I do something') at features/steps/simple_steps.py:5'
77
+ """
78
+
79
+ Scenario: Ensure correct step implementation is selected
80
+ Given a file named "features/syndrome_280_2.feature" with:
81
+ """
82
+ Feature: Steps with same step prefix -- Use correct step implementation
83
+ Scenario: Use shorter step
84
+ Given a calculator
85
+ When I add "2" to it
86
+ And I add "3" to it
87
+ Then the calculator result is "5"
88
+
89
+ Scenario: Use longer step
90
+ Given a calculator
91
+ When I add "2" to it twice
92
+ And I add "3" to it
93
+ Then the calculator result is "7"
94
+ """
95
+ And a file named "features/steps/calculator_steps2.py" with:
96
+ """
97
+ from behave import when, use_step_matcher
98
+ use_step_matcher("re")
99
+
100
+ # -- ORDERING SENSITIVE PART:
101
+ @when(u'I add "(?P<value>\d+)" to it')
102
+ def step_impl(context, value):
103
+ number_value = int(value)
104
+ context.calculator.add(number_value)
105
+
106
+ @when(u'I add "(?P<value>\d+)" to it twice')
107
+ def step_impl(context, value):
108
+ number_value = int(value)
109
+ context.calculator.add(number_value)
110
+ context.calculator.add(number_value)
111
+ """
112
+ When I run "behave -f pretty --no-color features/syndrome_280_2.feature"
113
+ Then it should pass with:
114
+ """
115
+ When I add "2" to it twice # features/steps/calculator_steps2.py:10
116
+ And I add "3" to it # features/steps/calculator_steps2.py:5
117
+ """
118
+ But the command output should not contain "AmbiguousStep"