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,217 @@
1
+ Feature: Exclude Scenario from Test Run
2
+
3
+ As a test writer
4
+ I want sometimes to decide at runtime
5
+ that a scenario is excluded from a test run
6
+ So that the command-line configuration becomes simpler
7
+ (and auto-configuration is supported).
8
+
9
+ . MECHANISM:
10
+ . The "before_scenario()" hook can decide just before a scenario should run
11
+ . that the scenario should be excluded from the test-run.
12
+ . NOTE: Hooks are not called in dry-run mode.
13
+ .
14
+ . RATIONALE:
15
+ . There are certain situations where it is better to skip a scenario
16
+ . than to run and fail the scenario.
17
+ .
18
+ . Reasons for these cases are of often test environment related:
19
+ . * test environment does not fulfill the desired criteria
20
+ . * used testbed does not fulfill test requirements
21
+ .
22
+ . Instead of providing the exclude-scenario selection on the command-line,
23
+ . the test (environment) and configuration logic should determine
24
+ . if a test should be excluded (as auto-configuration functionality).
25
+ .
26
+ . EXAMPLE:
27
+ . Certain scenarios should not run on Windows (or Linux, ...).
28
+ .
29
+ . EVALUATION ORDER:
30
+ . Before the user can exclude a scenario from a test-run,
31
+ . additional mechanisms decide, if the scenario is part of the selected run-set.
32
+ . These are:
33
+ . * tags
34
+ . * ...
35
+ .
36
+ . RELATED:
37
+ . * features/feature.exclude_from_run.feature
38
+
39
+
40
+ @setup
41
+ Scenario:
42
+ Given a new working directory
43
+ And a file named "features/example.feature" with:
44
+ """
45
+ Feature:
46
+
47
+ Scenario: Alice
48
+ Given a step passes
49
+ When another step passes
50
+ Then some step passes
51
+
52
+ Scenario: Bob and Alice
53
+ Given some step passes
54
+
55
+ Scenario: Bob
56
+ Given another step passes
57
+ """
58
+ And a file named "features/steps/steps.py" with:
59
+ """
60
+ from behave import step
61
+
62
+ @step('{word:w} step passes')
63
+ def step_passes(context, word):
64
+ pass
65
+
66
+ @step('{word:w} step fails')
67
+ def step_fails(context, word):
68
+ assert False, "XFAIL-STEP"
69
+ """
70
+
71
+ @use_hook.before_scenario
72
+ Scenario: Exclude a scenario from the test run (using: before_scenario() hook)
73
+ Given a file named "features/environment.py" with:
74
+ """
75
+ import sys
76
+
77
+ def should_exclude_scenario(context, scenario):
78
+ if scenario.name.startswith("Alice"):
79
+ return True
80
+ return False
81
+
82
+ def before_scenario(context, scenario):
83
+ if should_exclude_scenario(context, scenario):
84
+ sys.stdout.write("EXCLUDED-BY-USER: Scenario %s\n" % scenario.name)
85
+ scenario.skip()
86
+ """
87
+ When I run "behave -f plain -T features/example.feature"
88
+ Then it should pass with:
89
+ """
90
+ 2 scenarios passed, 0 failed, 1 skipped
91
+ 2 steps passed, 0 failed, 3 skipped, 0 undefined
92
+ """
93
+ And the command output should contain:
94
+ """
95
+ EXCLUDED-BY-USER: Scenario Alice
96
+ """
97
+
98
+
99
+ @use_hook.before_feature
100
+ Scenario: Exclude a scenario from the test run (using: before_feature() hook)
101
+ Given a file named "features/environment.py" with:
102
+ """
103
+ import sys
104
+
105
+ def should_exclude_scenario(scenario):
106
+ if "Alice" in scenario.name: # MATCHES: Alice, Bob and Alice
107
+ return True
108
+ return False
109
+
110
+ def before_feature(context, feature):
111
+ # -- NOTE: walk_scenarios() flattens ScenarioOutline.scenarios
112
+ for scenario in feature.walk_scenarios():
113
+ if should_exclude_scenario(scenario):
114
+ sys.stdout.write("EXCLUDED-BEFORE-FEATURE: Scenario %s\n" % scenario.name)
115
+ scenario.skip()
116
+ """
117
+ When I run "behave -f plain -T features/example.feature"
118
+ Then it should pass with:
119
+ """
120
+ 1 scenario passed, 0 failed, 2 skipped
121
+ 1 step passed, 0 failed, 4 skipped, 0 undefined
122
+ """
123
+ And the command output should contain:
124
+ """
125
+ EXCLUDED-BEFORE-FEATURE: Scenario Alice
126
+ EXCLUDED-BEFORE-FEATURE: Scenario Bob and Alice
127
+ """
128
+
129
+
130
+ Scenario: Skip scenario in a step
131
+
132
+ Expect that remaining steps of the scenario are skipped.
133
+ The skipping step is also marked as skipped
134
+ to better detect scenarios that are partly executed and then skipped
135
+ (otherwise a passed step would hide that the remaining steps are skipped).
136
+
137
+ Given a file named "features/skip_scenario.feature" with:
138
+ """
139
+ Feature:
140
+
141
+ Scenario: Alice2
142
+ Given a step passes
143
+ And the assumption "location:Wonderland" is not met
144
+ When another step passes
145
+ Then some step passes
146
+
147
+ Scenario: Bob and Alice2
148
+ Given some step passes
149
+ When I skip the remaining scenario
150
+ Then another step passes
151
+ """
152
+ And a file named "features/steps/skip_scenario_steps.py" with:
153
+ """
154
+ from behave import given, step
155
+
156
+ @given('the assumption "{name}" is not met')
157
+ def step_assumption_not_met(context, name):
158
+ context.scenario.skip("Assumption %s not met" % name)
159
+
160
+ @step('I skip the remaining scenario')
161
+ def step_skip_scenario(context):
162
+ context.scenario.skip()
163
+ """
164
+ And a file named "features/environment.py" with:
165
+ """
166
+ # -- OVERRIDE WITH EMPTY-ENVIRONMENT.
167
+ """
168
+ When I run "behave -f plain -T features/skip_scenario.feature"
169
+ Then it should pass with:
170
+ """
171
+ 0 scenarios passed, 0 failed, 2 skipped
172
+ 2 steps passed, 0 failed, 5 skipped, 0 undefined
173
+ """
174
+ And the command output should contain:
175
+ """
176
+ Scenario: Alice2
177
+ Given a step passes ... passed
178
+ And the assumption "location:Wonderland" is not met ... skipped
179
+
180
+ Scenario: Bob and Alice2
181
+ Given some step passes ... passed
182
+ When I skip the remaining scenario ... skipped
183
+ """
184
+ But note that "the step that skipped the scenario is also marked as skipped"
185
+
186
+
187
+ Scenario: Skip scenario in after_scenario hook
188
+
189
+ Expect that scenario is not marked as skipped
190
+ because it was already executed (with status: passed, failed, ...).
191
+
192
+ Given a file named "features/pass_and_fail.feature" with:
193
+ """
194
+ Feature:
195
+
196
+ Scenario: Passing
197
+ Given a step passes
198
+
199
+ Scenario: Failing
200
+ Given some step passes
201
+ When a step fails
202
+ """
203
+ And a file named "features/environment.py" with:
204
+ """
205
+ def before_all(context):
206
+ context.config.setup_logging()
207
+
208
+ def after_scenario(context, scenario):
209
+ scenario.skip("AFTER-SCENARIO")
210
+ """
211
+ When I run "behave -f plain -T features/pass_and_fail.feature"
212
+ Then it should fail with:
213
+ """
214
+ 1 scenario passed, 1 failed, 0 skipped
215
+ 2 steps passed, 1 failed, 0 skipped, 0 undefined
216
+ """
217
+ But note that "the scenarios are not marked as skipped (SKIP-TOO-LATE)"
@@ -0,0 +1,100 @@
1
+ @issue
2
+ Feature: Issue #187 ScenarioOutline uses wrong return value when if fails
3
+
4
+ Ensure that ScenarioOutline run-logic behaves as expected.
5
+
6
+ @setup
7
+ Scenario: Feature Setup
8
+ Given a new working directory
9
+ And a file named "features/steps/steps.py" with:
10
+ """
11
+ from behave import step
12
+
13
+ @step('a step passes')
14
+ def step_passes(context):
15
+ pass
16
+
17
+ @step('a step fails')
18
+ def step_fails(context):
19
+ assert False, "XFAIL-STEP"
20
+ """
21
+
22
+ Scenario: All examples pass
23
+ Given a file named "features/example.scenario_outline_pass.feature" with:
24
+ """
25
+ Feature: All Examples pass
26
+ Scenario Outline:
27
+ Given a step <outcome>
28
+
29
+ Examples:
30
+ | outcome | Comment |
31
+ | passes | First example passes |
32
+ | passes | Last example passes |
33
+ """
34
+ When I run "behave -f plain features/example.scenario_outline_pass.feature"
35
+ Then it should pass with:
36
+ """
37
+ 1 feature passed, 0 failed, 0 skipped
38
+ 2 scenarios passed, 0 failed, 0 skipped
39
+ """
40
+
41
+ @scenario_outline.fails
42
+ Scenario: First example fails
43
+ Given a file named "features/example.scenario_outline_fail_first.feature" with:
44
+ """
45
+ Feature: First Example in Scenario Outline fails
46
+ Scenario Outline:
47
+ Given a step <outcome>
48
+
49
+ Examples:
50
+ | outcome | Comment |
51
+ | fails | First example fails |
52
+ | passes | Last example passes |
53
+ """
54
+ When I run "behave -f plain features/example.scenario_outline_fail_first.feature"
55
+ Then it should fail with:
56
+ """
57
+ 0 features passed, 1 failed, 0 skipped
58
+ 1 scenario passed, 1 failed, 0 skipped
59
+ """
60
+
61
+ @scenario_outline.fails
62
+ Scenario: Last example fails
63
+ Given a file named "features/example.scenario_outline_fail_last.feature" with:
64
+ """
65
+ Feature: Last Example in Scenario Outline fails
66
+ Scenario Outline:
67
+ Given a step <outcome>
68
+
69
+ Examples:
70
+ | outcome | Comment |
71
+ | passes | First example passes |
72
+ | fails | Last example fails |
73
+ """
74
+ When I run "behave -f plain features/example.scenario_outline_fail_last.feature"
75
+ Then it should fail with:
76
+ """
77
+ 0 features passed, 1 failed, 0 skipped
78
+ 1 scenario passed, 1 failed, 0 skipped
79
+ """
80
+
81
+ @scenario_outline.fails
82
+ Scenario: Middle example fails
83
+ Given a file named "features/example.scenario_outline_fail_middle.feature" with:
84
+ """
85
+ Feature: Middle Example in Scenario Outline fails
86
+ Scenario Outline:
87
+ Given a step <outcome>
88
+
89
+ Examples:
90
+ | outcome | Comment |
91
+ | passes | First example passes |
92
+ | fails | Middle example fails |
93
+ | passes | Last example passes |
94
+ """
95
+ When I run "behave -f plain features/example.scenario_outline_fail_middle.feature"
96
+ Then it should fail with:
97
+ """
98
+ 0 features passed, 1 failed, 0 skipped
99
+ 2 scenarios passed, 1 failed, 0 skipped
100
+ """
@@ -0,0 +1,177 @@
1
+ Feature: Scenario Outline -- Improvements
2
+
3
+ As a behave user / test writer
4
+ I want that Scenario Outline (as paramtrized Scenario) is improved
5
+ So that I know better which example/row combination is run.
6
+
7
+ . REQUIREMENTS:
8
+ . * Generated scenario name should better indicate row/example combination.
9
+ . * Naming schema for generated scenario names should be configurable.
10
+ . * File location of generated scenario should represent row/example.
11
+ . * It should be possible select all scenarios of an examples group.
12
+ .
13
+ . IMPROVEMENTS:
14
+ . * annotate Scenario Outline name (with row.id, examples.name, ...)
15
+ . * use placeholders (from row/example) in Scenario Outline tags.
16
+ . * use placeholders (from row/example) in Scenario Outline name.
17
+ . * use placeholders (from row/example) in Examples (group) name.
18
+ . * file location for generated scenario is unique (selectable in rerun)
19
+ .
20
+ . SPECIFICATION: Special placeholders
21
+ .
22
+ . | Placeholder | Description |
23
+ . | name | Name of the Scenario Outline. |
24
+ . | examples.name | Name of the examples group (or empty string). |
25
+ . | examples.index | Index of examples group (range: 1..N). |
26
+ . | row.index | Index of row in examples group (range: 1..R). |
27
+ . | row.id | Same as: "{example.index}.{row.index}" |
28
+ .
29
+ . RELATED:
30
+ . * scenario_outline.name_annotation.feature
31
+ . * scenario_outline.parametrized.feature
32
+
33
+ @setup
34
+ Scenario: Test Setup
35
+ Given a new working directory
36
+ And a file named "behave.ini" with:
37
+ """
38
+ [behave]
39
+ scenario_outline_annotation_schema = {name} -- @{row.id} {examples.name}
40
+ show_timings = false
41
+ show_skipped = false
42
+ """
43
+ And a file named "features/named_examples.feature" with:
44
+ """
45
+ Feature:
46
+ Scenario Outline: Named Examples
47
+ Given a param <param1>
48
+
49
+ Examples: Alice
50
+ | param1 |
51
+ | 10 |
52
+ | 42 |
53
+
54
+ Examples: Bob
55
+ | param1 |
56
+ | 43 |
57
+ """
58
+ And a file named "features/unnamed_examples.feature" with:
59
+ """
60
+ Feature:
61
+ Scenario Outline: Unnamed Examples
62
+ Given a param <param1>
63
+
64
+ Examples:
65
+ | param1 |
66
+ | 100 |
67
+ | 101 |
68
+ """
69
+ And a file named "features/steps/param_steps.py" with:
70
+ """
71
+ from behave import step
72
+
73
+ @step('a param {value:w}')
74
+ def step_impl_with_param(context, value):
75
+ context.param = value
76
+
77
+ @step('a param {name}={value}')
78
+ def step_impl_with_param_value(context, name, value):
79
+ context.param_name = name
80
+ context.param_value = value
81
+ """
82
+
83
+ Scenario: Unique File Locations in generated scenarios
84
+ When I run "behave -f pretty -c features/named_examples.feature"
85
+ Then it should pass with:
86
+ """
87
+ Scenario Outline: Named Examples -- @1.1 Alice # features/named_examples.feature:7
88
+ Given a param 10 # features/steps/param_steps.py:3
89
+
90
+ Scenario Outline: Named Examples -- @1.2 Alice # features/named_examples.feature:8
91
+ Given a param 42 # features/steps/param_steps.py:3
92
+
93
+ Scenario Outline: Named Examples -- @2.1 Bob # features/named_examples.feature:12
94
+ Given a param 43 # features/steps/param_steps.py:3
95
+ """
96
+ But note that "each generated scenario has unique file location (related to row.line)"
97
+
98
+
99
+ Scenario: Select generated scenario by unique File Location
100
+ When I run "behave -f plain features/named_examples.feature:8"
101
+ Then it should pass with:
102
+ """
103
+ 1 scenario passed, 0 failed, 2 skipped
104
+ 1 step passed, 0 failed, 2 skipped, 0 undefined
105
+ """
106
+ And the command output should contain:
107
+ """
108
+ Scenario Outline: Named Examples -- @1.2 Alice
109
+ Given a param 42 ... passed
110
+ """
111
+
112
+ @xfail
113
+ Scenario: Select all generated scenarios of a Scenario Outline by File Location
114
+ Given a file named "behave.ini" with:
115
+ """
116
+ [behave]
117
+ scenario_outline_annotation_schema = {name} -- @{row.id} {examples.name}
118
+ """
119
+ When I run "behave -f plain features/named_examples.feature:2"
120
+ Then it should pass with:
121
+ """
122
+ 3 scenarios passed, 0 failed, 0 skipped
123
+ 3 step passed, 0 failed, 0 skipped, 0 undefined
124
+ """
125
+ And the command output should contain:
126
+ """
127
+ Scenario Outline: Named Examples -- @1.2 Alice
128
+ Given a param 42 ... passed
129
+ """
130
+
131
+ @select.examples.by_name
132
+ Scenario: Select Examples (Group) by Name (Case: name part)
133
+ When I run "behave --name=Alice -f plain features/named_examples.feature"
134
+ Then it should pass with:
135
+ """
136
+ 2 scenarios passed, 0 failed, 1 skipped
137
+ 2 steps passed, 0 failed, 1 skipped, 0 undefined
138
+ """
139
+ And the command output should contain:
140
+ """
141
+ Scenario Outline: Named Examples -- @1.1 Alice
142
+ Given a param 10 ... passed
143
+
144
+ Scenario Outline: Named Examples -- @1.2 Alice
145
+ Given a param 42 ... passed
146
+ """
147
+
148
+ @select.examples.by_name
149
+ Scenario: Select Examples (Group) by Name (Case: regular expression)
150
+ When I run "behave --name='-- @.* Alice' -f plain features/named_examples.feature"
151
+ Then it should pass with:
152
+ """
153
+ 2 scenarios passed, 0 failed, 1 skipped
154
+ 2 steps passed, 0 failed, 1 skipped, 0 undefined
155
+ """
156
+ And the command output should contain:
157
+ """
158
+ Scenario Outline: Named Examples -- @1.1 Alice
159
+ Given a param 10 ... passed
160
+
161
+ Scenario Outline: Named Examples -- @1.2 Alice
162
+ Given a param 42 ... passed
163
+ """
164
+
165
+ @select.examples.by_name
166
+ Scenario: Select one Example by Name
167
+ When I run "behave --name='-- @1.2 Alice' -f plain features/named_examples.feature"
168
+ Then it should pass with:
169
+ """
170
+ 1 scenario passed, 0 failed, 2 skipped
171
+ 1 step passed, 0 failed, 2 skipped, 0 undefined
172
+ """
173
+ And the command output should contain:
174
+ """
175
+ Scenario Outline: Named Examples -- @1.2 Alice
176
+ Given a param 42 ... passed
177
+ """