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,12 @@
1
+ @issue
2
+ Feature: Issue #186: ScenarioOutline uses wrong return value when if fails
3
+
4
+ ScenarioOutline returns encountered a failure only if the last scenario failed.
5
+ Failures in earlier examples return the wrong result.
6
+ Ensure that ScenarioOutline run-logic behaves as expected.
7
+
8
+ @reuse.colocated_test
9
+ Scenario: Reuse existing test
10
+ Given I use the current directory as working directory
11
+ When I run "behave -f plain features/scenario_outline.basics.feature"
12
+ Then it should pass
@@ -0,0 +1,60 @@
1
+ @issue
2
+ Feature: Issue #188: Better diagnostics if nested step is undefined
3
+
4
+ . Currently if nested step has no match, it's shown like this:
5
+ .
6
+ . Assertion Failed: Sub-step failed: When I do strange thign
7
+ . Substep info: None
8
+ .
9
+ . Took some time to find that typo.
10
+ . The suggestion is to fill substep error_message with at least "No match for step"
11
+ . so it would become:
12
+ .
13
+ . Assertion Failed: Sub-step failed: When I do strange thign
14
+ . Substep info: No match for step
15
+ .
16
+ . IMPLEMENTATION NOTE:
17
+ . A slightly different output is provided:
18
+ .
19
+ . Assertion Failed: UNDEFINED SUB-STEP: When I do strange thign
20
+
21
+
22
+ Scenario: Nested steps contain an undefined step
23
+ Given a new working directory
24
+ And a file named "features/steps/steps.py" with:
25
+ """
26
+ from behave import step
27
+
28
+ @step('{word:w} step passes')
29
+ def step_passes(context, word):
30
+ pass
31
+
32
+ @then('a good diagnostic message is shown')
33
+ def step_good_diagnostic_message_is_shown(context):
34
+ pass
35
+
36
+ @step('I execute nested steps with an undefined step')
37
+ def step_passes(context):
38
+ context.execute_steps(u'''
39
+ Given another step passes
40
+ When an undefined, nested step is executed
41
+ Then third step passes
42
+ ''')
43
+ """
44
+ And a file named "features/example.execute_nested_undefined_step.feature" with:
45
+ """
46
+ Feature:
47
+ Scenario:
48
+ Given a step passes
49
+ When I execute nested steps with an undefined step
50
+ Then a good diagnostic message is shown
51
+ """
52
+ When I run "behave -f plain -T features/example.execute_nested_undefined_step.feature"
53
+ Then it should fail with:
54
+ """
55
+ Scenario:
56
+ Given a step passes ... passed
57
+ When I execute nested steps with an undefined step ... failed
58
+ Assertion Failed: UNDEFINED SUB-STEP: When an undefined, nested step is executed
59
+ """
60
+
@@ -0,0 +1,178 @@
1
+ @issue
2
+ Feature: Issue #191 Using context.execute_steps() may change context.table/.text
3
+
4
+ . PROBLEM DESCRIPTION:
5
+ . When you execute nested steps via "context.execute_steps()" in a
6
+ . step implementation, the following context attributes of the current step
7
+ . may be modified and may be longer valid:
8
+ . * context.text (multi-line text)
9
+ . * context.table
10
+
11
+
12
+ @setup
13
+ Scenario: Feature Setup
14
+ Given a new working directory
15
+ And a file named "features/steps/common_steps.py" with:
16
+ """
17
+ from behave import given, step
18
+
19
+ @step('{word:w} step passes')
20
+ def step_passes(context, word):
21
+ pass
22
+
23
+ @given('I define the following nested steps')
24
+ def step_define_nested_steps(context):
25
+ assert context.text is not None, "REQUIRE: text"
26
+ context.nested_steps = context.text
27
+ """
28
+ And a file named "features/steps/table_steps.py" with:
29
+ """
30
+ from behave import when, then, step
31
+
32
+ @step('I use another table with')
33
+ def step_use_another_table_with(context):
34
+ assert context.table, "REQUIRE: table"
35
+ context.nested_table = context.table
36
+
37
+ @when('I execute the nested steps and use the table')
38
+ def step_execute_nested_steps_and_use_table(context):
39
+ assert context.table, "REQUIRE: table"
40
+ assert context.nested_steps, "REQUIRE: context.nested_steps"
41
+ context.my_table1 = context.table
42
+ context.execute_steps(context.nested_steps)
43
+ context.my_table2 = context.table
44
+
45
+ @then('the original table is restored after the nested steps are executed')
46
+ def step_table_is_restored(context):
47
+ assert context.my_table1 is not None
48
+ assert context.my_table2 is not None
49
+ assert context.my_table1 is context.my_table2
50
+ """
51
+ And a file named "features/steps/text_steps.py" with:
52
+ """
53
+ from behave import when, then, step
54
+
55
+ @step('I use another step with text "{text}"')
56
+ def step_use_another_text_with(context, text):
57
+ assert context.text is None
58
+ context.text = text # -- MODIFY: context.text (emulation)
59
+
60
+ @step('I use another text with')
61
+ def step_use_another_text_with(context):
62
+ assert context.text is not None, "REQUIRE: text"
63
+ context.nested_text = context.text
64
+
65
+ @when('I execute the nested steps and use the text')
66
+ def step_execute_nested_steps_and_use_text(context):
67
+ assert context.text is not None, "REQUIRE: text"
68
+ assert context.nested_steps, "REQUIRE: context.nested_steps"
69
+ context.my_text1 = context.text
70
+ context.execute_steps(context.nested_steps)
71
+ context.my_text2 = context.text
72
+
73
+ @then('the original text is restored after the nested steps are executed')
74
+ def step_text_is_restored(context):
75
+ assert context.my_text1 is not None
76
+ assert context.my_text2 is not None
77
+ assert context.my_text1 is context.my_text2
78
+ """
79
+
80
+ @nested_steps.with_table
81
+ Scenario: After executing simple nested steps the original table is restored
82
+ Given a file named "features/example.nested_simple_steps_and_table.feature" with:
83
+ """
84
+ Feature:
85
+ Scenario:
86
+ Given I define the following nested steps:
87
+ '''
88
+ Given a step passes
89
+ When another step passes
90
+ '''
91
+ When I execute the nested steps and use the table:
92
+ | Name | Age |
93
+ | Alice | 21 |
94
+ | Bob | 32 |
95
+ Then the original table is restored after the nested steps are executed
96
+ """
97
+ When I run "behave -f plain -T features/example.nested_simple_steps_and_table.feature"
98
+ Then it should pass with:
99
+ """
100
+ 1 scenario passed, 0 failed, 0 skipped
101
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
102
+ """
103
+
104
+ @nested_steps.with_table
105
+ Scenario: After executing nested steps with a table the original table is restored
106
+ Given a file named "features/example.nested_steps_and_table.feature" with:
107
+ """
108
+ Feature:
109
+ Scenario:
110
+ Given I define the following nested steps:
111
+ '''
112
+ Given I use another table with:
113
+ | Person | Registered |
114
+ | Anton | true |
115
+ | Barby | false |
116
+ '''
117
+ When I execute the nested steps and use the table:
118
+ | Name | Age |
119
+ | Charly | 41 |
120
+ | Doro | 52 |
121
+ Then the original table is restored after the nested steps are executed
122
+ """
123
+ When I run "behave -f plain -T features/example.nested_steps_and_table.feature"
124
+ Then it should pass with:
125
+ """
126
+ 1 scenario passed, 0 failed, 0 skipped
127
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
128
+ """
129
+
130
+
131
+ @nested_steps.with_text
132
+ Scenario: After executing simple nested steps the original text is restored
133
+ Given a file named "features/example.nested_simple_steps_and_text.feature" with:
134
+ """
135
+ Feature:
136
+ Scenario:
137
+ Given I define the following nested steps:
138
+ '''
139
+ Given a step passes
140
+ When another step passes
141
+ '''
142
+ When I execute the nested steps and use the text:
143
+ '''
144
+ Lorem ipsum
145
+ Ipsum lorem
146
+ '''
147
+ Then the original text is restored after the nested steps are executed
148
+ """
149
+ When I run "behave -f plain -T features/example.nested_simple_steps_and_text.feature"
150
+ Then it should pass with:
151
+ """
152
+ 1 scenario passed, 0 failed, 0 skipped
153
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
154
+ """
155
+
156
+ @nested_steps.with_text
157
+ Scenario: After executing nested steps with a text the original text is restored
158
+ Given a file named "features/example.nested_steps_and_text.feature" with:
159
+ """
160
+ Feature:
161
+ Scenario:
162
+ Given I define the following nested steps:
163
+ '''
164
+ Given I use another step with text "Hello Alice"
165
+ '''
166
+ When I execute the nested steps and use the text:
167
+ '''
168
+ Lorem ipsum
169
+ Ipsum lorem
170
+ '''
171
+ Then the original text is restored after the nested steps are executed
172
+ """
173
+ When I run "behave -f plain -T features/example.nested_steps_and_text.feature"
174
+ Then it should pass with:
175
+ """
176
+ 1 scenario passed, 0 failed, 0 skipped
177
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
178
+ """
@@ -0,0 +1,215 @@
1
+ @issue
2
+ Feature: Issue #194: Nested steps prevent that original stdout/stderr is restored
3
+
4
+ . When nested steps are used,
5
+ . the original stdout/stderr streams are not restored after the scenario.
6
+ . This is caused by starting/stopping capture again while executing nested steps.
7
+ .
8
+ . ENSURE THAT:
9
+ . * Original streams are restored in after_scenario() hook.
10
+ . * Nested steps should not replace existing capture objects.
11
+
12
+ @setup
13
+ Scenario: Feature Setup
14
+ Given a new working directory
15
+ And a file named "behave.ini" with:
16
+ """
17
+ [behave]
18
+ log_capture = false
19
+ logging_level = INFO
20
+ logging_format = LOG.%(levelname)-8s %(name)s: %(message)s
21
+ """
22
+ And a file named "features/steps/use_behave4cmd_steps.py" with:
23
+ """
24
+ import behave4cmd0.passing_steps
25
+ import behave4cmd0.failing_steps
26
+ import behave4cmd0.note_steps
27
+ """
28
+ And a file named "features/steps/stdout_steps.py" with:
29
+ """
30
+ from behave import given, when, then, step, matchers
31
+ import parse
32
+ import sys
33
+
34
+ # -- USER-DEFINED DATA TYPES:
35
+ @parse.with_pattern(r"stdout|stderr")
36
+ def parse_stream_name(text):
37
+ assert text in ("stdout", "stderr")
38
+ return text
39
+
40
+ matchers.register_type(StreamName=parse_stream_name)
41
+
42
+ # -- UTILITY FUNCTIONS:
43
+ def write_text_to(stream, text, enforce_newline=True):
44
+ if enforce_newline and not text.endswith("\n"):
45
+ text += "\n"
46
+ stream.write(text)
47
+
48
+ # -- STEP DEFINITIONS:
49
+ @step('I write "{text}" to {stream_name:StreamName}')
50
+ def step_write_text_to_stdxxx(context, text, stream_name):
51
+ stream = getattr(sys, stream_name)
52
+ write_text_to(stream, text)
53
+
54
+ @step('I execute the following steps')
55
+ def step_execute_steps(context):
56
+ assert context.text, "REQUIRE: context.text"
57
+ context.execute_steps(context.text)
58
+ sys.stdout.write("STDOUT:AFTER-EXECUTE-STEPS\n")
59
+ sys.stderr.write("STDERR:AFTER-EXECUTE-STEPS\n")
60
+ """
61
+ And a file named "features/environment.py" with:
62
+ """
63
+ import sys
64
+
65
+ stdout_id = 0
66
+ stderr_id = 0
67
+
68
+ def stdout_print(text):
69
+ sys.__stdout__.write(text + "\n")
70
+
71
+ def inspect_stdout(context, scope, statement):
72
+ global stdout_id
73
+ stream_id = id(sys.stdout)
74
+ stream_class = sys.stdout.__class__.__name__
75
+ expected_id = stdout_id
76
+ if stream_id != expected_id:
77
+ name = statement.name
78
+ stdout_print("CHANGED-STDOUT %s:%s: stream.id=%s:%d (was: %d)" % \
79
+ (scope, name, stream_class, stream_id, expected_id))
80
+ stdout_id = stream_id
81
+
82
+ def inspect_stderr(context, scope, statement):
83
+ global stderr_id
84
+ stream_id = id(sys.stderr)
85
+ stream_class = sys.stderr.__class__.__name__
86
+ expected_id = stderr_id
87
+ if stream_id != expected_id:
88
+ name = statement.name
89
+ stdout_print("CHANGED-STDERR %s:%s: stream.id=%s:%d (was: %d)" % \
90
+ (scope, name, stream_class, stream_id, expected_id))
91
+ stderr_id = stream_id
92
+
93
+ def inspect_stdxxx(context, scope, statement):
94
+ inspect_stdout(context, scope, statement)
95
+ inspect_stderr(context, scope, statement)
96
+
97
+ def before_all(context):
98
+ context.config.setup_logging(filename="behave.log")
99
+
100
+ def before_scenario(context, scenario):
101
+ inspect_stdxxx(context, "before_scenario", scenario)
102
+
103
+ def after_scenario(context, scenario):
104
+ inspect_stdxxx(context, "after_scenario", scenario)
105
+ # -- ENSURE: Original streams are restored.
106
+ assert sys.stdout is sys.__stdout__
107
+ assert sys.stderr is sys.__stderr__
108
+ stdout_print("AFTER-SCENARIO %s: Streams are restored." % scenario.name)
109
+
110
+ def before_step(context, step):
111
+ inspect_stdxxx(context, "before_step", step)
112
+
113
+ def after_step(context, step):
114
+ inspect_stdxxx(context, "after_step", step)
115
+ """
116
+
117
+ Scenario: Stdout capture works with nested steps
118
+ Given a file named "features/stdout.failing_with_nested.feature" with
119
+ """
120
+ Feature:
121
+ Scenario: Failing with nested steps
122
+ Given I write "STDOUT:Hello Alice" to stdout
123
+ When I write "STDOUT:Hello Bob" to stdout
124
+ Then I execute the following steps:
125
+ '''
126
+ * I write "STDOUT:Hello nested.Alice" to stdout
127
+ * I write "STDOUT:Hello nested.Bob" to stdout
128
+ '''
129
+ And I write "STDOUT:Hello Charly" to stdout
130
+ And another step fails
131
+
132
+ Scenario: Another failing
133
+ Given I write "STDOUT:Hello Dora" to stdout
134
+ And another step fails
135
+ """
136
+ When I run "behave -f plain features/stdout.failing_with_nested.feature"
137
+ Then it should fail with:
138
+ """
139
+ 0 scenarios passed, 2 failed, 0 skipped
140
+ 5 steps passed, 2 failed, 0 skipped, 0 undefined
141
+ """
142
+ And note that "the summary is only shown if hooks have no errors"
143
+ And the command output should contain:
144
+ """
145
+ Captured stdout:
146
+ STDOUT:Hello Alice
147
+ STDOUT:Hello Bob
148
+ STDOUT:Hello nested.Alice
149
+ STDOUT:Hello nested.Bob
150
+ STDOUT:AFTER-EXECUTE-STEPS
151
+ STDOUT:Hello Charly
152
+ """
153
+ And the command output should contain:
154
+ """
155
+ Captured stdout:
156
+ STDOUT:Hello Dora
157
+ """
158
+ And the command output should contain:
159
+ """
160
+ AFTER-SCENARIO Failing with nested steps: Streams are restored.
161
+ """
162
+ And the command output should contain:
163
+ """
164
+ AFTER-SCENARIO Another failing: Streams are restored.
165
+ """
166
+
167
+ Scenario: Stderr capture works with nested steps
168
+ Given a file named "features/stderr.failing_with_nested.feature" with
169
+ """
170
+ Feature:
171
+ Scenario: Failing with nested steps
172
+ Given I write "STDERR:Hello Alice" to stderr
173
+ When I write "STDERR:Hello Bob" to stderr
174
+ Then I execute the following steps:
175
+ '''
176
+ * I write "STDERR:Hello nested.Alice" to stderr
177
+ * I write "STDERR:Hello nested.Bob" to stderr
178
+ '''
179
+ And I write "STDERR:Hello Charly" to stderr
180
+ And another step fails
181
+
182
+ Scenario: Another failing
183
+ Given I write "STDERR:Hello Dora" to stderr
184
+ And another step fails
185
+ """
186
+ When I run "behave -f plain features/stderr.failing_with_nested.feature"
187
+ Then it should fail with:
188
+ """
189
+ 0 scenarios passed, 2 failed, 0 skipped
190
+ 5 steps passed, 2 failed, 0 skipped, 0 undefined
191
+ """
192
+ And note that "the summary is only shown if hooks have no errors"
193
+ And the command output should contain:
194
+ """
195
+ Captured stderr:
196
+ STDERR:Hello Alice
197
+ STDERR:Hello Bob
198
+ STDERR:Hello nested.Alice
199
+ STDERR:Hello nested.Bob
200
+ STDERR:AFTER-EXECUTE-STEPS
201
+ STDERR:Hello Charly
202
+ """
203
+ And the command output should contain:
204
+ """
205
+ Captured stderr:
206
+ STDERR:Hello Dora
207
+ """
208
+ And the command output should contain:
209
+ """
210
+ AFTER-SCENARIO Failing with nested steps: Streams are restored.
211
+ """
212
+ And the command output should contain:
213
+ """
214
+ AFTER-SCENARIO Another failing: Streams are restored.
215
+ """