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,44 @@
1
+ Feature: Use a step library
2
+
3
+ As a tester
4
+ I want to use steps from one or more step libraries
5
+ To simplify the reuse of problem domain specific steps in multiple projects.
6
+
7
+
8
+ Scenario: Use a simple step library
9
+ Given a new working directory
10
+ And an empty file named "step_library1/__init__.py"
11
+ And a file named "step_library1/alice_steps.py" with:
12
+ """
13
+ from behave import step
14
+
15
+ @step('I meet Alice')
16
+ def step_meet_alice(context):
17
+ pass
18
+ """
19
+ And a file named "step_library1/bob_steps.py" with:
20
+ """
21
+ from behave import step
22
+
23
+ @step('I meet Bob')
24
+ def step_meet_bob(context):
25
+ pass
26
+ """
27
+ And a file named "features/steps/use_step_library.py" with:
28
+ """
29
+ from step_library1 import alice_steps, bob_steps
30
+ """
31
+ And a file named "features/example_use_step_library.feature" with:
32
+ """
33
+ Feature:
34
+ Scenario:
35
+ Given I meet Alice
36
+ And I meet Bob
37
+ """
38
+ When I run "behave -f plain features/example_use_step_library.feature"
39
+ Then it should pass with:
40
+ """
41
+ 1 feature passed, 0 failed, 0 skipped
42
+ 1 scenario passed, 0 failed, 0 skipped
43
+ 2 steps passed, 0 failed, 0 skipped, 0 undefined
44
+ """
@@ -0,0 +1,189 @@
1
+ Feature: Step dialect for generic steps
2
+
3
+ As a test/story writer
4
+ I want to have a possibility to use generic steps
5
+ So that I can execute a sequence of steps without BDD keywords (Given/When/Then)
6
+
7
+ . SPECIFICATION: Generic step
8
+ . * Prefix each step with a '*' (asterisk/star) character to mark it as step
9
+ . * Provide step-functions/step definition with "@step" decorator
10
+
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
+ from behave import step
18
+
19
+ @step('{word:w} step passes')
20
+ def step_passes(context, word):
21
+ pass
22
+
23
+ @step('{word:w} step passes with "{param}"')
24
+ def step_passes_with_param(context, word, param):
25
+ pass
26
+
27
+ @step('a multi-line text step with')
28
+ def step_with_multiline_text(context):
29
+ assert context.text is not None, "REQUIRE: multi-line text"
30
+
31
+ @step('a step fails with "{param}"')
32
+ def step_fails_with_param(context, param=None):
33
+ assert False, "XFAIL-STEP: %s" % param
34
+
35
+ @step('a step fails')
36
+ def step_fails(context):
37
+ assert False, "XFAIL-STEP"
38
+
39
+ @step('a table step with')
40
+ def step_with_table(context):
41
+ assert context.table, "REQUIRES: table"
42
+ context.table.require_columns(["name", "age"])
43
+ """
44
+
45
+
46
+ Scenario: Simple step-by-step example
47
+
48
+ * a step passes
49
+ * another step passes
50
+
51
+
52
+ Scenario: Simple step-by-step example 2
53
+ Given a file named "features/generic_steps.feature" with:
54
+ """
55
+ Feature:
56
+ Scenario:
57
+ * a step passes
58
+ * another step passes
59
+ * a step passes with "Alice"
60
+ * another step passes with "Bob"
61
+ """
62
+ When I run "behave -f plain -T features/generic_steps.feature"
63
+ Then it should pass with:
64
+ """
65
+ 1 scenario passed, 0 failed, 0 skipped
66
+ 4 steps passed, 0 failed, 0 skipped
67
+ """
68
+ And the command output should contain:
69
+ """
70
+ Feature:
71
+ Scenario:
72
+ * a step passes ... passed
73
+ * another step passes ... passed
74
+ * a step passes with "Alice" ... passed
75
+ * another step passes with "Bob" ... passed
76
+ """
77
+
78
+ Scenario: Simple step-by-step example with failing steps
79
+ Given a file named "features/generic_steps.failing.feature" with:
80
+ """
81
+ Feature:
82
+ Scenario:
83
+ * a step passes
84
+ * a step fails with "Alice"
85
+ * a step fails with "Bob"
86
+ * another step passes
87
+ """
88
+ When I run "behave -f plain -T features/generic_steps.failing.feature"
89
+ Then it should fail with:
90
+ """
91
+ 0 scenarios passed, 1 failed, 0 skipped
92
+ 1 step passed, 1 failed, 2 skipped
93
+ """
94
+ And the command output should contain:
95
+ """
96
+ Feature:
97
+ Scenario:
98
+ * a step passes ... passed
99
+ * a step fails with "Alice" ... failed
100
+ """
101
+
102
+
103
+ Scenario: Simple step-by-step example with scenario description
104
+
105
+ CASE: Ensure that first step is discovered after last description line.
106
+
107
+ Given a file named "features/generic_steps.with_description.feature" with:
108
+ '''
109
+ Feature:
110
+ Scenario:
111
+
112
+ First scenario description line.
113
+ Second scenario description line.
114
+
115
+ * a step passes
116
+ * another step passes
117
+ '''
118
+ When I run "behave -f plain -T features/generic_steps.with_description.feature"
119
+ Then it should pass with:
120
+ """
121
+ 1 scenario passed, 0 failed, 0 skipped
122
+ 2 steps passed, 0 failed, 0 skipped
123
+ """
124
+
125
+
126
+ Scenario: Simple step-by-step example with multi-line text
127
+ Given a file named "features/generic_steps.with_text.feature" with:
128
+ '''
129
+ Feature:
130
+ Scenario:
131
+ * a step passes
132
+ * a multi-line text step with:
133
+ """
134
+ First line of multi-line text.
135
+ Second-line of multi-line text.
136
+ """
137
+ * another step passes with "Charly"
138
+ '''
139
+ When I run "behave -f plain -T features/generic_steps.with_text.feature"
140
+ Then it should pass with:
141
+ """
142
+ 1 scenario passed, 0 failed, 0 skipped
143
+ 3 steps passed, 0 failed, 0 skipped
144
+ """
145
+ And the command output should contain:
146
+ '''
147
+ Feature:
148
+
149
+ Scenario:
150
+ * a step passes ... passed
151
+ * a multi-line text step with ... passed
152
+ """
153
+ First line of multi-line text.
154
+ Second-line of multi-line text.
155
+ """
156
+ * another step passes with "Charly" ... passed
157
+ '''
158
+
159
+ Scenario: Simple step-by-step example with table
160
+ Given a file named "features/generic_steps.with_table.feature" with:
161
+ '''
162
+ Feature:
163
+ Scenario:
164
+ * a step passes
165
+ * a table step with:
166
+ | name | age |
167
+ | Alice | 10 |
168
+ | Bob | 12 |
169
+ * another step passes with "Dodo"
170
+ '''
171
+ When I run "behave -f plain -T features/generic_steps.with_table.feature"
172
+ Then it should pass with:
173
+ """
174
+ 1 scenario passed, 0 failed, 0 skipped
175
+ 3 steps passed, 0 failed, 0 skipped
176
+ """
177
+ And the command output should contain:
178
+ '''
179
+ Feature:
180
+ Scenario:
181
+ * a step passes ... passed
182
+ * a table step with ... passed
183
+ | name | age |
184
+ | Alice | 10 |
185
+ | Bob | 12 |
186
+ * another step passes with "Dodo" ... passed
187
+ '''
188
+
189
+
@@ -0,0 +1,89 @@
1
+ Feature: Step Dialect for BDD Steps with Given/When/Then Keywords
2
+
3
+ In order to execute a sequence of steps with BDD keywords (Given/When/Then)
4
+ As a test/story writer
5
+ I want to have the possibility to express myself.
6
+
7
+ . NOTE:
8
+ . * More details are provided in other features.
9
+
10
+
11
+ Scenario: Simple example
12
+
13
+ Normally preferred style with BDD keywords.
14
+ Note that BDD keywords are dependent on language settings.
15
+
16
+ Given a step passes
17
+ When a step passes
18
+ And a step passes
19
+ Then a step passes
20
+ And a step passes
21
+ But a step passes
22
+
23
+
24
+ Scenario: Simple example (with lower-case keywords)
25
+
26
+ Alternative style with lower-case BDD keywords.
27
+
28
+ given a step passes
29
+ when a step passes
30
+ and a step passes
31
+ then a step passes
32
+ and a step passes
33
+ but a step passes
34
+
35
+
36
+ Scenario: Step usage example with details by running behave
37
+ Given a new working directory
38
+ And a file named "features/steps/steps.py" with:
39
+ """
40
+ from behave import given, when, then, step
41
+
42
+ @given('a step passes')
43
+ def given_step_passes(context):
44
+ pass
45
+
46
+ @when('a step passes')
47
+ def when_step_passes(context):
48
+ pass
49
+
50
+ @then('a step passes')
51
+ def then_step_passes(context):
52
+ pass
53
+
54
+ @step('a step passes with "{param}"')
55
+ def step_passes_with_param(context, param):
56
+ pass
57
+
58
+ @step('another step passes')
59
+ def step_passes(context):
60
+ pass
61
+
62
+ @step('another step passes with "{param}"')
63
+ def step_passes(context, param):
64
+ pass
65
+ """
66
+ And a file named "features/basic_steps.feature" with:
67
+ """
68
+ Feature:
69
+ Scenario:
70
+ Given a step passes
71
+ And another step passes
72
+ When a step passes with "Alice"
73
+ Then another step passes with "Bob"
74
+ """
75
+ When I run "behave -f plain -T features/basic_steps.feature"
76
+ Then it should pass with:
77
+ """
78
+ 1 scenario passed, 0 failed, 0 skipped
79
+ 4 steps passed, 0 failed, 0 skipped
80
+ """
81
+ And the command output should contain:
82
+ """
83
+ Feature:
84
+ Scenario:
85
+ Given a step passes ... passed
86
+ And another step passes ... passed
87
+ When a step passes with "Alice" ... passed
88
+ Then another step passes with "Bob" ... passed
89
+ """
@@ -0,0 +1,239 @@
1
+ @sequential
2
+ Feature: Parse data types in step parameters (type transformation)
3
+
4
+ As a test writer
5
+ I want write steps with parameter that should have floating-point data types
6
+ So that I can just use the step parameter with the correct type
7
+
8
+ behave uses the parse module (inverse of Python string.format).
9
+ Therefore, the following ``parse types`` for floats are already supported:
10
+
11
+ ===== =========================================== ============= ================================
12
+ Type Characters Matched (regex class) Output Type Example(s)
13
+ ===== =========================================== ============= ================================
14
+ % Percentage (converted to value/100.0) float 51.2%
15
+ f Fixed-point numbers float 1.23 -1.45
16
+ e Floating-point numbers with exponent float 1.1e-10 -12.3E+5
17
+ g General number format (either d, f or e) float 123 1.23 -1.45E+12
18
+ ===== =========================================== ============= ================================
19
+
20
+
21
+ SEE ALSO:
22
+ * http://pypi.python.org/pypi/parse
23
+ * string.format: http://docs.python.org/library/string.html#format-string-syntax
24
+
25
+
26
+ @setup
27
+ Scenario: Feature Setup
28
+ Given a new working directory
29
+ And a file named "features/steps/float_param_steps.py" with:
30
+ """
31
+ from behave import then, step
32
+ class NotMatched(object): pass
33
+
34
+ @step('a float param with "{value:g}"')
35
+ def step_float_param_with(context, value):
36
+ assert type(value) is float
37
+ context.value = value
38
+
39
+ @step('a float param with "{value}"')
40
+ def step_float_param_otherwise(context, value):
41
+ context.value = NotMatched
42
+
43
+ @step('a generic float param with "{value:g}"')
44
+ def step_generic_float_param_with(context, value):
45
+ step_float_param_with(context, value)
46
+
47
+ @step('a generic float param with "{value}"')
48
+ def step_generic_float_param_otherwise(context, value):
49
+ step_float_param_otherwise(context, value)
50
+
51
+ @step('a float with exponent param with "{value:e}"')
52
+ def step_float_with_exponent_param_with(context, value):
53
+ step_float_param_with(context, value)
54
+
55
+ @step('a float with exponent param with "{value}"')
56
+ def step_float_with_exponent_param_otherwise(context, value):
57
+ step_float_param_otherwise(context, value)
58
+
59
+ @step('a percentage param with "{value:%}"')
60
+ def step_percentage_param_with(context, value):
61
+ step_float_param_with(context, value)
62
+
63
+ @step('a percentage param with "{value}"')
64
+ def step_percentage_param_otherwise(context, value):
65
+ step_float_param_otherwise(context, value)
66
+
67
+ @step('a fixed-point number param with "{value:f}"')
68
+ def step_fixed_point_number_param_with(context, value):
69
+ step_float_param_with(context, value)
70
+
71
+ @step('a fixed-point number param with "{value}"')
72
+ def step_fixed_point_number_param_otherwise(context, value):
73
+ step_float_param_otherwise(context, value)
74
+
75
+ @then('the value should be {outcome} as float number')
76
+ def step_value_should_be_matched_as_float_number(context, outcome):
77
+ expected_type = float
78
+ if outcome == "matched":
79
+ assert type(context.value) is expected_type, \
80
+ "Unexpected type: %s" % type(context.value)
81
+ else:
82
+ assert context.value is NotMatched
83
+
84
+ @then('the value should be {outcome} as float number with "{expected:g}"')
85
+ def step_value_should_be_matched_as_float_number_with_expected(context, outcome, expected):
86
+ step_value_should_be_matched_as_float_number(context, outcome)
87
+ assert context.value == expected, \
88
+ "FAILED: value(%s) == expected(%s)" % (context.value, expected)
89
+ """
90
+
91
+
92
+ Scenario: Float parameter values with type "%" (percentage)
93
+ Given a file named "features/example.float_param.with_percent.feature" with:
94
+ """
95
+ Feature: Float parameter values with type "%" (percentage)
96
+
97
+ Scenario Outline: Good cases
98
+ Given a percentage param with "<Value>"
99
+ Then the value should be matched as float number with "<Expected Value>"
100
+
101
+ Examples:
102
+ | Value | Expected Value | Case |
103
+ | 0% | 0 | Zero |
104
+ | 20% | 0.2 | Positive number |
105
+ | 120% | 1.2 | Larger than 100% |
106
+ | 10.5% | 0.105 | Float number |
107
+ | -10% | -0.1 | Negative number |
108
+ | +10% | 0.1 | With plus sign |
109
+
110
+
111
+ Scenario Outline: Bad cases (not matched)
112
+ Given a percentage param with "<Value>"
113
+ Then the value should be <Outcome> as float number
114
+
115
+ Examples:
116
+ | Value | Outcome | Reason |
117
+ | 123 | not-matched | Percentage sign is missing |
118
+ | 1.23 | not-matched | Float number without percentage sign |
119
+ | Alice | not-matched | Not a number |
120
+ """
121
+ When I run "behave -f plain features/example.float_param.with_percent.feature"
122
+ Then it should pass with:
123
+ """
124
+ 9 scenarios passed, 0 failed, 0 skipped
125
+ """
126
+
127
+
128
+ Scenario: Fixed-point parameter values with type "f"
129
+ Given a file named "features/example.float_param.with_type_f.feature" with:
130
+ """
131
+ Feature: Float parameter values with type "f" (fixed-point number)
132
+
133
+ Scenario Outline: Good cases
134
+ Given a fixed-point number param with "<Value>"
135
+ Then the value should be matched as float number with "<Expected Value>"
136
+
137
+ Examples:
138
+ | Value | Expected Value | Case |
139
+ | 0.23 | 0.23 | |
140
+ | 1.23 | 1.23 | |
141
+ | 123.45 | 123.45 | |
142
+ | +1.23 | 1.23 | With plus sign |
143
+ | -1.23 | -1.23 | Negative float |
144
+
145
+
146
+ Scenario Outline: Bad cases (not matched)
147
+ Given a fixed-point number param with "<Value>"
148
+ Then the value should be <Outcome> as float number
149
+
150
+ Examples:
151
+ | Value | Outcome | Reason |
152
+ | 123 | not-matched | Integer number |
153
+ | 1.23E-7 | not-matched | Float number with exponent |
154
+ | Alice | not-matched | Not a number |
155
+ """
156
+ When I run "behave -f plain features/example.float_param.with_type_f.feature"
157
+ Then it should pass with:
158
+ """
159
+ 8 scenarios passed, 0 failed, 0 skipped
160
+ """
161
+
162
+
163
+ Scenario: Float with exponent parameter values with type "e"
164
+ Given a file named "features/example.float_param.with_type_e.feature" with:
165
+ """
166
+ Feature: Float parameter values with type "e" (float with exponents)
167
+
168
+ Scenario Outline: Good cases
169
+ Given a float with exponent param with "<Value>"
170
+ Then the value should be matched as float number with "<Expected Value>"
171
+
172
+ Examples:
173
+ | Value | Expected Value | Case |
174
+ | 1.0E-10 | 1E-10 | With mantisse, negative exponent |
175
+ | 1.23E+5 | 123E3 | Exponent with plus sign |
176
+ | 123.0E+3 | 1.23E5 | Exponent with plus sign |
177
+ | -1.23E5 | -123E3 | Negative number with mantisse and exponent |
178
+ | INF | +INF | Infinity (INF) |
179
+ | +INF | INF | |
180
+ | -INF | -INF | |
181
+ | +inf | INF | Lower-case special names |
182
+
183
+
184
+ Scenario Outline: Bad cases (not matched)
185
+ Given a float with exponent param with "<Value>"
186
+ Then the value should be <Outcome> as float number
187
+
188
+ Examples:
189
+ | Value | Outcome | Reason |
190
+ | 1E10 | not-matched | Without mantissa |
191
+ | 1.E10 | not-matched | Short mantissa |
192
+ | 123 | not-matched | Integer number |
193
+ | Alice | not-matched | Not a number |
194
+ """
195
+ When I run "behave -f plain features/example.float_param.with_type_e.feature"
196
+ Then it should pass with:
197
+ """
198
+ 12 scenarios passed, 0 failed, 0 skipped
199
+ """
200
+
201
+
202
+ Scenario: Generic float parameter values with type "g"
203
+ Given a file named "features/example.float_param.with_type_g.feature" with:
204
+ """
205
+ Feature: Float parameter values with type "g" (generic float)
206
+
207
+ Scenario Outline: Good cases
208
+ Given a generic float param with "<Value>"
209
+ Then the value should be matched as float number with "<Expected Value>"
210
+
211
+ Examples:
212
+ | Value | Expected Value | Case |
213
+ | 1 | 1.0 | Integer number format |
214
+ | 1E10 | 1.0E10 | Float with exponent and shortened mantissa |
215
+ | 1.23E5 | 1.23E5 | Float with exponent and mantissa |
216
+ | 1.23e5 | 1.23E5 | Float with exponent and mantissa (lower-case) |
217
+ | 1.0E-10 | 1E-10 | With mantisse, negative exponent |
218
+ | 1.23E+5 | 123E3 | Exponent with plus sign |
219
+ | 123.0E+3 | 1.23E5 | Exponent with plus sign |
220
+ | -1.23E5 | -123E3 | Negative number with mantisse and exponent |
221
+
222
+
223
+ Scenario Outline: Bad cases (not matched)
224
+ Given a generic float param with "<Value>"
225
+ Then the value should be <Outcome> as float number
226
+
227
+ Examples:
228
+ | Value | Outcome | Reason |
229
+ | 0b101 | not-matched | Binary number |
230
+ | 0o17 | not-matched | Octal number |
231
+ | 0x1A | not-matched | Hexadecimal number |
232
+ | 1.E10 | not-matched | Short mantissa |
233
+ | Alice | not-matched | Not a number |
234
+ """
235
+ When I run "behave -f plain features/example.float_param.with_type_g.feature"
236
+ Then it should pass with:
237
+ """
238
+ 13 scenarios passed, 0 failed, 0 skipped
239
+ """