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,76 @@
1
+ @issue
2
+ Feature: Issue #383 -- Handle (custom) Type parsing errors better
3
+
4
+ . Custom type parsing errors that occur during step matching
5
+ . lead currently to abortion of the test run.
6
+ . In addition, the actual reason what occured is very low-level.
7
+ .
8
+ . DESIRED:
9
+ . * Protect test runner/execution logic
10
+ . * Improve handling of these kind of errors
11
+ . * Provide better diagnostics
12
+ . * Continue to run tests (if possible)
13
+ .
14
+ . NOTE:
15
+ . This kind of problem is often caused by regular expressions that
16
+ . are not specific enough for the type conversion (LAZY-REGEXP DESIGN).
17
+ . Therefore, the problem occurs during type conversion/parsing phase
18
+ . and not in the initial step detection/matching phase.
19
+ .
20
+ . RELATED: features/step_param.custom_types.feature
21
+
22
+
23
+ Scenario: Type conversion fails
24
+ Given a new working directory
25
+ And a file named "features/steps/bad_type_converter_steps.py" with:
26
+ """
27
+ from behave import step, register_type
28
+ import parse
29
+
30
+ @parse.with_pattern(r".*") # -- NOTE: Wildcard pattern, accepts anything.
31
+ def parse_fails(text):
32
+ raise ValueError(text)
33
+
34
+ register_type(BadType=parse_fails)
35
+
36
+ @step('a param with "BadType:{value:BadType}"')
37
+ def step_param_with_badtype_value(context, value):
38
+ assert False, "SHOULD_NEVER_COME_HERE: BadType converter raises error."
39
+ """
40
+ And a file named "features/steps/reused_steps.py" with:
41
+ """
42
+ from behave4cmd0 import passing_steps
43
+ """
44
+ And a file named "behave.ini" with:
45
+ """
46
+ [behave]
47
+ show_timings = false
48
+ """
49
+ And a file named "features/example.type_conversion_fails.feature" with:
50
+ """
51
+ Feature: Type Conversion Fails
52
+ Scenario: BadType raises ValueError during type conversion
53
+ Given a param with "BadType:BAD_VALUE"
54
+
55
+ Scenario: Ensure other scenarios are executed
56
+ Then another step passes
57
+ """
58
+ When I run "behave -f plain features/example.type_conversion_fails.feature"
59
+ Then it should fail with:
60
+ """
61
+ 1 scenario passed, 1 failed, 0 skipped
62
+ 1 step passed, 1 failed, 0 skipped, 0 undefined
63
+ """
64
+ And the command output should contain:
65
+ """
66
+ Scenario: BadType raises ValueError during type conversion
67
+ Given a param with "BadType:BAD_VALUE" ... failed
68
+ Traceback (most recent call last):
69
+ """
70
+ And the command output should contain:
71
+ """
72
+ File "features/steps/bad_type_converter_steps.py", line 6, in parse_fails
73
+ raise ValueError(text)
74
+ """
75
+ And the command output should contain "ValueError: BAD_VALUE"
76
+ And the command output should contain "StepParseError: BAD_VALUE"
@@ -0,0 +1,103 @@
1
+ @issue
2
+ Feature: Issue #384 -- Active Tags fail with ScenarioOutline
3
+
4
+ . ScenarioOutline can currently not be used with active-tag(s).
5
+ . REASON: Template mechanism transforms active-tag into invalid active-tag per example row.
6
+ .
7
+ . RELATED: features/tag.active_tags.feature
8
+
9
+
10
+ Background:
11
+ Given a new working directory
12
+ And a file named "features/steps/pass_steps.py" with:
13
+ """
14
+ from behave import step
15
+
16
+ @step('{word:w} step passes')
17
+ def step_passes(context, word):
18
+ pass
19
+
20
+ # -- REUSE: Step definitions.
21
+ from behave4cmd0 import note_steps
22
+ """
23
+ And a file named "features/environment.py" with:
24
+ """
25
+ from behave.tag_matcher import ActiveTagMatcher, setup_active_tag_values
26
+ import sys
27
+
28
+ # -- ACTIVE TAG SUPPORT: @use.with_{category}={value}, ...
29
+ active_tag_value_provider = {
30
+ "browser": "chrome",
31
+ "webserver": "apache",
32
+ }
33
+ active_tag_matcher = ActiveTagMatcher(active_tag_value_provider)
34
+
35
+ def before_all(context):
36
+ setup_active_tag_values(active_tag_value_provider, context.config.userdata)
37
+
38
+ def before_scenario(context, scenario):
39
+ if active_tag_matcher.should_exclude_with(scenario.effective_tags):
40
+ sys.stdout.write("ACTIVE-TAG DISABLED: Scenario %s\n" % scenario.name)
41
+ scenario.skip(active_tag_matcher.exclude_reason)
42
+ """
43
+ And a file named "behave.ini" with:
44
+ """
45
+ [behave]
46
+ default_format = pretty
47
+ show_timings = no
48
+ show_skipped = no
49
+ color = no
50
+ """
51
+ And a file named "features/outline.active_tags.feature" with:
52
+ """
53
+ Feature:
54
+
55
+ @use.with_browser=chrome
56
+ Scenario Outline: Alice -- <name>, <language>
57
+ Given a step passes
58
+ But note that "<name> can speak <language>"
59
+
60
+ Examples:
61
+ | name | language |
62
+ | Anna | German |
63
+ | Arabella | English |
64
+ """
65
+
66
+
67
+ Scenario: ScenarioOutline with enabled active-tag is executed
68
+ When I run "behave -D browser=chrome features/outline.active_tags.feature"
69
+ Then it should pass with:
70
+ """
71
+ 2 scenarios passed, 0 failed, 0 skipped
72
+ 4 steps passed, 0 failed, 0 skipped, 0 undefined
73
+ """
74
+ And the command output should contain:
75
+ """
76
+ @use.with_browser=chrome
77
+ Scenario Outline: Alice -- Anna, German -- @1.1 # features/outline.active_tags.feature:10
78
+ Given a step passes # features/steps/pass_steps.py:3
79
+ But note that "Anna can speak German" # ../behave4cmd0/note_steps.py:15
80
+
81
+ @use.with_browser=chrome
82
+ Scenario Outline: Alice -- Arabella, English -- @1.2 # features/outline.active_tags.feature:11
83
+ Given a step passes # features/steps/pass_steps.py:3
84
+ But note that "Arabella can speak English" # ../behave4cmd0/note_steps.py:15
85
+ """
86
+ And the command output should not contain "ACTIVE-TAG DISABLED: Scenario Alice"
87
+ But note that "we check now for the specific syndrome"
88
+ And the command output should not contain "@use.with_browserchrome"
89
+ But the command output should contain "@use.with_browser=chrome"
90
+
91
+
92
+ Scenario: ScenarioOutline with disabled active-tag is skipped
93
+ When I run "behave -D browser=other features/outline.active_tags.feature"
94
+ Then it should pass with:
95
+ """
96
+ 0 scenarios passed, 0 failed, 2 skipped
97
+ 0 steps passed, 0 failed, 4 skipped, 0 undefined
98
+ """
99
+ And the command output should contain:
100
+ """
101
+ ACTIVE-TAG DISABLED: Scenario Alice -- Anna, German -- @1.1
102
+ ACTIVE-TAG DISABLED: Scenario Alice -- Arabella, English -- @1.2
103
+ """
@@ -0,0 +1,109 @@
1
+ @issue
2
+ @change_request
3
+ Feature: Issue #385 -- before_scenario called too late
4
+
5
+ . RATIONALE:
6
+ . Due to:
7
+ .
8
+ . * skip scenario/feature support in before_scenario (and before_feature) hooks
9
+ . * active-tags
10
+ .
11
+ . formatters are now called to early (for before feature/scenario functionality).
12
+ . Formatters should be called after the before-hooks are processed.
13
+ .
14
+ . NOTES:
15
+ . * Test uses show_skipped=false to ensure that at least the
16
+ . scenario/feature title is shown with plain formatter.
17
+
18
+ @setup
19
+ Scenario:
20
+ Given a new working directory
21
+ And a file named "features/steps/pass_steps.py" with:
22
+ """
23
+ from behave import step
24
+
25
+ @step('{word:w} step passes')
26
+ def step_passes(context, word):
27
+ pass
28
+ """
29
+ And a file named "features/environment.py" with:
30
+ """
31
+ from __future__ import print_function
32
+
33
+ def before_feature(context, feature):
34
+ if "skip" in feature.tags:
35
+ print("SKIP-FEATURE: %s" % feature.name)
36
+ feature.mark_skipped()
37
+
38
+ def before_scenario(context, scenario):
39
+ if "skip" in scenario.tags:
40
+ print("SKIP-SCENARIO: %s" % scenario.name)
41
+ scenario.mark_skipped()
42
+ """
43
+ And a file named "behave.ini" with:
44
+ """
45
+ [behave]
46
+ show_skipped = false
47
+ """
48
+
49
+ Scenario: Formatter is not called with skip in before_scenario hook
50
+ Given a file named "features/alice.feature" with:
51
+ """
52
+ Feature: Alice
53
+
54
+ @skip
55
+ Scenario: Alice and Bob
56
+ Given a step passes
57
+
58
+ Scenario: Alice in China
59
+ When another step passes
60
+ """
61
+ When I run "behave -f plain features/alice.feature"
62
+ Then it should pass with:
63
+ """
64
+ 1 scenario passed, 0 failed, 1 skipped
65
+ """
66
+ And the command output should contain:
67
+ """
68
+ SKIP-SCENARIO: Alice and Bob
69
+
70
+ Scenario: Alice in China
71
+ When another step passes ... passed
72
+ """
73
+ But the command output should not contain:
74
+ """
75
+ Scenario: Alice and Bob
76
+ SKIP-FEATURE: Alice and Bob
77
+ """
78
+ And the command output should not contain "Scenario: Alice and Bob"
79
+
80
+
81
+ Scenario: Formatter is not called with skip in before_feature hook
82
+ Given a file named "features/bob.feature" with:
83
+ """
84
+ @skip
85
+ Feature: Bob
86
+
87
+ Scenario: Bob and Alice
88
+ Given a step passes
89
+
90
+ Scenario: Bob in China
91
+ When another step passes
92
+ """
93
+ When I run "behave -f plain features/bob.feature"
94
+ Then it should pass with:
95
+ """
96
+ SKIP-FEATURE: Bob
97
+
98
+ 0 features passed, 0 failed, 1 skipped
99
+ 0 scenarios passed, 0 failed, 2 skipped
100
+ """
101
+ But the command output should not contain:
102
+ """
103
+ Feature: Bob
104
+ SKIP-FEATURE: Bob
105
+ """
106
+ And the command output should not contain "Feature: Bob"
107
+ And the command output should not contain "Scenario: Bob and Alice"
108
+ And the command output should not contain "Scenario: Bob in China"
109
+ And note that "all scenarios of the feature are also skipped"
@@ -0,0 +1,66 @@
1
+ @issue
2
+ @unicode
3
+ Feature: Issue #424 -- Unicode output problem when fails in nested steps
4
+
5
+ . HINTS:
6
+ . * Python step file should have encoding line (# -*- coding: ... -*-)
7
+ . * Assert failure message should use unicode-string instead of byte-string
8
+
9
+ Scenario:
10
+ Given a new working directory
11
+ And a file named "features/steps/pass_steps.py" with:
12
+ """
13
+ from behave import step
14
+
15
+ @step('{word:w} step passes')
16
+ def step_passes(context, word):
17
+ pass
18
+ """
19
+ And a file named "features/steps/steps.py" with:
20
+ """
21
+ # -*- coding: UTF-8 -*-
22
+ # NOTE: Python2 requires encoding to decode special chars correctly.
23
+ from behave import step
24
+
25
+ @step('I press the big red button')
26
+ def step_press_red_button(context):
27
+ assert False, u"Ungültiger Wert" # HINT: Special chars require Unicode.
28
+
29
+ @step('I call the nested step with the "red button"')
30
+ def step_press_red_button(context):
31
+ context.execute_steps(u'When I press the big red button')
32
+ """
33
+ And a file named "behave.ini" with:
34
+ """
35
+ [behave]
36
+ show_timings = false
37
+ """
38
+ And a file named "features/alice.feature" with:
39
+ """
40
+ Feature:
41
+
42
+ Scenario: Use step directly
43
+ When I press the big red button
44
+
45
+ Scenario: Use nested step
46
+ Given another step passes
47
+ When I call the nested step with the "red button"
48
+ """
49
+ When I run "behave -f plain features/alice.feature"
50
+ Then it should fail with:
51
+ """
52
+ 0 scenarios passed, 2 failed, 0 skipped
53
+ 1 step passed, 2 failed, 0 skipped, 0 undefined
54
+ """
55
+ And the command output should contain:
56
+ """
57
+ Scenario: Use step directly
58
+ When I press the big red button ... failed
59
+ Assertion Failed: Ungültiger Wert
60
+
61
+ Scenario: Use nested step
62
+ Given another step passes ... passed
63
+ When I call the nested step with the "red button" ... failed
64
+ Assertion Failed: FAILED SUB-STEP: When I press the big red button
65
+ Substep info: Assertion Failed: Ungültiger Wert
66
+ """
@@ -0,0 +1,116 @@
1
+ @issue
2
+ @junit
3
+ Feature: Issue #446 -- Support scenario hook-errors with JUnitReporter
4
+
5
+ . Currently, when a hook error occurs in:
6
+ .
7
+ . * before_scenario()
8
+ . * after_scenario()
9
+ .
10
+ . a sanity check in the JUnitReporter prevents sane JUnit XML output.
11
+
12
+
13
+ @setup
14
+ Scenario: Skip scenario without steps
15
+ Given a new working directory
16
+ And a file named "features/steps/pass_steps.py" with:
17
+ """
18
+ from behave import step
19
+
20
+ @step('{word:w} step passes')
21
+ def step_passes(context, word):
22
+ pass
23
+ """
24
+ And a file named "features/before_scenario_failure.feature" with:
25
+ """
26
+ Feature: Alice
27
+ @hook_failure.before_scenario
28
+ Scenario: A1
29
+ Given a step passes
30
+ """
31
+ And a file named "features/after_scenario_failure.feature" with:
32
+ """
33
+ Feature: Bob
34
+ @hook_failure.after_scenario
35
+ Scenario: B1
36
+ Given another step passes
37
+ """
38
+ And a file named "features/environment.py" with:
39
+ """
40
+ def cause_hook_failure():
41
+ raise RuntimeError("OOPS")
42
+
43
+ def before_scenario(context, scenario):
44
+ if "hook_failure.before_scenario" in scenario.tags:
45
+ cause_hook_failure()
46
+
47
+ def after_scenario(context, scenario):
48
+ if "hook_failure.after_scenario" in scenario.tags:
49
+ cause_hook_failure()
50
+ """
51
+ And a file named "behave.ini" with:
52
+ """
53
+ [behave]
54
+ show_timings = false
55
+
56
+ [behave.userdata]
57
+ behave.reporter.junit.show_timestamp = False
58
+ behave.reporter.junit.show_hostname = False
59
+ """
60
+
61
+ Scenario: Hook error in before_scenario()
62
+ When I run "behave -f plain --junit features/before_scenario_failure.feature"
63
+ Then it should fail with:
64
+ """
65
+ 0 scenarios passed, 1 failed, 0 skipped
66
+ """
67
+ And the command output should contain:
68
+ """
69
+ HOOK-ERROR in before_scenario: RuntimeError: OOPS
70
+ """
71
+ And the file "reports/TESTS-before_scenario_failure.xml" should contain:
72
+ """
73
+ <testsuite errors="1" failures="0" name="before_scenario_failure.Alice" skipped="0" tests="1"
74
+ """
75
+ And the file "reports/TESTS-before_scenario_failure.xml" should contain:
76
+ """
77
+ <error message="HOOK-ERROR in before_scenario: RuntimeError: OOPS" type="RuntimeError">
78
+ """
79
+ And the file "reports/TESTS-before_scenario_failure.xml" should contain:
80
+ """
81
+ File "features/environment.py", line 6, in before_scenario
82
+ cause_hook_failure()
83
+ File "features/environment.py", line 2, in cause_hook_failure
84
+ raise RuntimeError("OOPS")
85
+ """
86
+ And note that "the traceback is contained in the XML element <error/>"
87
+
88
+
89
+ Scenario: Hook error in after_scenario()
90
+ When I run "behave -f plain --junit features/after_scenario_failure.feature"
91
+ Then it should fail with:
92
+ """
93
+ 0 scenarios passed, 1 failed, 0 skipped
94
+ """
95
+ And the command output should contain:
96
+ """
97
+ Scenario: B1
98
+ Given another step passes ... passed
99
+ HOOK-ERROR in after_scenario: RuntimeError: OOPS
100
+ """
101
+ And the file "reports/TESTS-after_scenario_failure.xml" should contain:
102
+ """
103
+ <testsuite errors="1" failures="0" name="after_scenario_failure.Bob" skipped="0" tests="1"
104
+ """
105
+ And the file "reports/TESTS-after_scenario_failure.xml" should contain:
106
+ """
107
+ <error message="HOOK-ERROR in after_scenario: RuntimeError: OOPS" type="RuntimeError">
108
+ """
109
+ And the file "reports/TESTS-after_scenario_failure.xml" should contain:
110
+ """
111
+ File "features/environment.py", line 10, in after_scenario
112
+ cause_hook_failure()
113
+ File "features/environment.py", line 2, in cause_hook_failure
114
+ raise RuntimeError("OOPS")
115
+ """
116
+ And note that "the traceback is contained in the XML element <error/>"