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,69 @@
1
+ @issue
2
+ Feature: Issue #83: behave.__main__:main() Various sys.exit issues
3
+
4
+ . Currently, the main function has several issues related
5
+ . to sys.exit() returncode usage:
6
+ .
7
+ . 1. sys.exit("string") is invalid, a number must be used:
8
+ . => Used in exception cases after run (ParseError, ConfigError)
9
+ .
10
+ . 2. On success, the main() function returns implicitly None
11
+ . instead of using sys.exit(0)
12
+ . => No statement at end of function after failed case.
13
+
14
+ @setup
15
+ Scenario: Feature Setup
16
+ Given a new working directory
17
+ And a file named "features/steps/steps.py" with:
18
+ """
19
+ from behave import step
20
+
21
+ @step(u'a step passes')
22
+ def step_passes(context):
23
+ pass
24
+ """
25
+
26
+ Scenario: Successful test run
27
+ Given a file named "features/passing.feature" with:
28
+ """
29
+ Feature:
30
+ Scenario:
31
+ Given a step passes
32
+ When a step passes
33
+ Then a step passes
34
+ """
35
+ When I run "behave -c features/passing.feature"
36
+ Then it should pass
37
+ And the command returncode is "0"
38
+
39
+ Scenario: ParseError occurs
40
+ Given a file named "features/invalid_with_ParseError.feature" with:
41
+ """
42
+ Feature:
43
+ Scenario: Invalid scenario which raises ParseError
44
+ Given a step passes
45
+ When2 a step passes
46
+ """
47
+ When I run "behave -c features/invalid_with_ParseError.feature"
48
+ Then it should fail
49
+ And the command returncode is non-zero
50
+ And the command output should contain:
51
+ """
52
+ Failed to parse "{__WORKDIR__}/features/invalid_with_ParseError.feature"
53
+ """
54
+
55
+ Scenario: ConfigError occurs
56
+ Given a new working directory
57
+ And a file named "features/passing2.feature" with:
58
+ """
59
+ Feature:
60
+ Scenario:
61
+ Given a step passes
62
+ """
63
+ When I run "behave -c features/passing2.feature"
64
+ Then it should fail
65
+ And the command returncode is non-zero
66
+ And the command output should contain:
67
+ """
68
+ No steps directory in '{__WORKDIR__}/features'
69
+ """
@@ -0,0 +1,69 @@
1
+ @issue
2
+ Feature: Issue #84: behave.runner behave does not reliably detected failed test runs
3
+
4
+ . Behave does currently not reliably detected failed test runs and
5
+ . therefore returns not sys.exit(1) at end of main().
6
+ .
7
+ . 1. behave.runner:Runner.run_with_paths() returns failed==True
8
+ . if last feature was successful and test runner does not stop
9
+ . after first failing feature.
10
+ .
11
+ . 2. Issue #64: Same problem in behave.model.Feature.run() with scenarios
12
+
13
+ Scenario: Test Setup
14
+ Given a new working directory
15
+ And a file named "features/passing.feature" with:
16
+ """
17
+ Feature: Passing
18
+ Scenario:
19
+ Given a step passes
20
+ When a step passes
21
+ Then a step passes
22
+ """
23
+ And a file named "features/failing.feature" with:
24
+ """
25
+ Feature: Failing
26
+ Scenario:
27
+ Given a step fails
28
+ When a step fails
29
+ Then a step fails
30
+ """
31
+ And a file named "features/steps/steps.py" with:
32
+ """
33
+ from behave import step
34
+
35
+ @step(u'a step passes')
36
+ def step_passes(context):
37
+ pass
38
+
39
+ @step(u'a step fails')
40
+ def step_fails(context):
41
+ assert False, "step: a step fails"
42
+ """
43
+
44
+ Scenario: First feature fails, second feature passes
45
+ When I run "behave -f plain features/failing.feature features/passing.feature"
46
+ Then it should fail with:
47
+ """
48
+ 1 feature passed, 1 failed, 0 skipped
49
+ 1 scenario passed, 1 failed, 0 skipped
50
+ 3 steps passed, 1 failed, 2 skipped, 0 undefined
51
+ """
52
+
53
+ Scenario: First feature passes, second feature fails
54
+ When I run "behave -f plain features/passing.feature features/failing.feature"
55
+ Then it should fail with:
56
+ """
57
+ 1 feature passed, 1 failed, 0 skipped
58
+ 1 scenario passed, 1 failed, 0 skipped
59
+ 3 steps passed, 1 failed, 2 skipped, 0 undefined
60
+ """
61
+
62
+ Scenario: First feature passes, second fails, last passes
63
+ When I run "behave -f plain features/passing.feature features/failing.feature features/passing.feature"
64
+ Then it should fail with:
65
+ """
66
+ 2 features passed, 1 failed, 0 skipped
67
+ 2 scenarios passed, 1 failed, 0 skipped
68
+ 6 steps passed, 1 failed, 2 skipped, 0 undefined
69
+ """
@@ -0,0 +1,119 @@
1
+ @issue
2
+ Feature: Issue #85: AssertionError with nested regex and pretty formatter
3
+
4
+ | When --format=pretty is used
5
+ | an AssertationError occurs for missing optional/nested-groups.
6
+ | When --format=plain is used, everything is fine
7
+
8
+ Scenario: Test Setup
9
+ Given a new working directory
10
+ And a file named "features/steps/regexp_steps.py" with:
11
+ """
12
+ from __future__ import print_function
13
+ from behave import given, when, then, use_step_matcher
14
+ @given(u'a {re_category} regular expression "{pattern}"')
15
+ def impl(context, re_category, pattern):
16
+ pass
17
+
18
+ @then(u'the parameter "{name}" is "{expected_value}"')
19
+ def impl(context, name, expected_value):
20
+ actual_value = getattr(context, name, None)
21
+ if actual_value is None:
22
+ actual_value = ""
23
+ assert hasattr(context, name)
24
+ assert actual_value == expected_value, "MISMATCH: actual({0}) == expected({1})".format(actual_value, expected_value)
25
+
26
+ @then(u'the parameter "{name}" is none')
27
+ def impl(context, name):
28
+ actual_value = getattr(context, name, None)
29
+ assert hasattr(context, name)
30
+ assert actual_value is None, "MISMATCH: actual({0}) == None)".format(actual_value)
31
+
32
+ def store_in_context(context, data):
33
+ for name, value in data.items():
34
+ setattr(context, name, value)
35
+
36
+ use_step_matcher('re')
37
+
38
+ @when(u'I try to match "(?P<foo>foo and more)"')
39
+ def impl(context, **kwargs):
40
+ kwargs["regexp_case"] = "simple"
41
+ print("CASE UNNESTED: {0}".format(kwargs))
42
+ store_in_context(context, kwargs)
43
+
44
+ @when(u'I try to match "(?P<foo>foo(?P<bar>bar)?)"')
45
+ def impl(context, **kwargs):
46
+ kwargs["regexp_case"] = "nested"
47
+ print("CASE NESTED: {0}".format(kwargs))
48
+ store_in_context(context, kwargs)
49
+
50
+ @when(u'I try to match "(?P<foo>foo) (?P<bar>bar)?"')
51
+ def impl(context, **kwargs):
52
+ kwargs["regexp_case"] = "optional"
53
+ print("CASE OPTIONAL: {0}".format(kwargs))
54
+ store_in_context(context, kwargs)
55
+ """
56
+ And a file named "features/matching.feature" with:
57
+ """
58
+ Feature: Using regexp matcher with nested and optional parameters
59
+
60
+ Scenario: regex, no nested groups, matching
61
+ Given a simple regular expression "(?P<foo>foo and more)"
62
+ When I try to match "foo and more"
63
+ Then the parameter "regexp_case" is "simple"
64
+ And the parameter "foo" is "foo and more"
65
+
66
+ Scenario: Nested groups without nested match
67
+ Given a nested-group regular expression "(?P<foo>foo(?P<bar>bar)?)"
68
+ When I try to match "foo"
69
+ Then the parameter "regexp_case" is "nested"
70
+ And the parameter "foo" is "foo"
71
+ And the parameter "bar" is none
72
+
73
+ Scenario: Nested groups with nested match
74
+ Given a nested-group regular expression "(?P<foo>foo(?P<bar>bar)?)"
75
+ When I try to match "foobar"
76
+ Then the parameter "regexp_case" is "nested"
77
+ And the parameter "foo" is "foobar"
78
+ And the parameter "bar" is "bar"
79
+
80
+ Scenario: Optional group without match
81
+ Given a optional-group regular expression "(?P<foo>foo) (?P<bar>bar)?"
82
+ When I try to match "foo "
83
+ Then the parameter "regexp_case" is "optional"
84
+ And the parameter "foo" is "foo"
85
+ And the parameter "bar" is none
86
+
87
+ Scenario: Optional group with match
88
+ Given a optional-group regular expression "(?P<foo>foo) (?P<bar>bar)?"
89
+ When I try to match "foo bar"
90
+ Then the parameter "regexp_case" is "optional"
91
+ And the parameter "foo" is "foo"
92
+ And the parameter "bar" is "bar"
93
+ """
94
+
95
+ Scenario: Run regexp steps with --format=plain
96
+ When I run "behave --format=plain features/matching.feature"
97
+ Then it should pass with:
98
+ """
99
+ 1 feature passed, 0 failed, 0 skipped
100
+ 5 scenarios passed, 0 failed, 0 skipped
101
+ 24 steps passed, 0 failed, 0 skipped, 0 undefined
102
+ """
103
+
104
+ Scenario: Run regexp steps with --format=pretty
105
+ When I run "behave -c --format=pretty features/matching.feature"
106
+ Then it should pass with:
107
+ """
108
+ 1 feature passed, 0 failed, 0 skipped
109
+ 5 scenarios passed, 0 failed, 0 skipped
110
+ 24 steps passed, 0 failed, 0 skipped, 0 undefined
111
+ """
112
+ And the command output should not contain
113
+ """
114
+ assert isinstance(text, unicode)
115
+ """
116
+ And the command output should not contain
117
+ """
118
+ AssertationError
119
+ """
@@ -0,0 +1,66 @@
1
+ @issue
2
+ Feature: Issue #92: Output from --format=plain shows skipped steps in next scenario
3
+
4
+ . DUPLICATED, FIXED-BY: issue #35 solution.
5
+ .
6
+ . Given a feature has more than one scenario
7
+ . When the --format=plain option is used
8
+ . and a middle step of a scenario fails
9
+ . Then the skipped steps appear under the next scenario
10
+
11
+
12
+ Scenario:
13
+ Given a new working directory
14
+ And a file named "features/issue92_syndrome.feature" with:
15
+ """
16
+ Feature: Testing Plain Output
17
+ Reproduces bug where output from previous scenario appears before current.
18
+
19
+ Scenario: First example
20
+ Given this step works
21
+ When this step fails
22
+ Then this step appears in the wrong place
23
+
24
+ Scenario: Second example
25
+ Given this step works
26
+ When this step fails
27
+ Then this step appears in the wrong place
28
+ """
29
+ And a file named "features/steps/steps.py" with:
30
+ """
31
+ from behave import step
32
+
33
+ @step(u'this step works')
34
+ def working(context):
35
+ pass
36
+
37
+
38
+ @step(u'this step fails')
39
+ def failing(context):
40
+ assert False, 'step failed'
41
+
42
+
43
+ @step(u'this step appears in the wrong place')
44
+ def missing(context):
45
+ pass
46
+ """
47
+ When I run "behave --no-timings --format=plain features/issue92_syndrome.feature"
48
+ Then it should fail with:
49
+ """
50
+ 0 features passed, 1 failed, 0 skipped
51
+ 0 scenarios passed, 2 failed, 0 skipped
52
+ 2 steps passed, 2 failed, 2 skipped, 0 undefined
53
+ """
54
+ And the command output should contain:
55
+ """
56
+ Feature: Testing Plain Output
57
+ Scenario: First example
58
+ Given this step works ... passed
59
+ When this step fails ... failed
60
+ Assertion Failed: step failed
61
+
62
+ Scenario: Second example
63
+ Given this step works ... passed
64
+ When this step fails ... failed
65
+ Assertion Failed: step failed
66
+ """
@@ -0,0 +1,173 @@
1
+ @issue
2
+ Feature: Issue #96: Sub-steps failed without any error info to help debug issue
3
+
4
+ . I am trying to run execute_steps. One of them fails, but the error output
5
+ . from behave has no details whatsoever. It is virtually impossible
6
+ . to figure out why it failed. as no error output is present except the
7
+ . final error message
8
+ .
9
+ . def before_scenario(context,scenario):
10
+ . context.execute_steps(u'''
11
+ . When "admin:admin" sends POST "/tasks/testStart"
12
+ . Then I expect HTTP code 200
13
+ . ''')
14
+ .
15
+ . File ".../behave/runner.py", line 262, in execute_steps
16
+ . assert False, "FAILED SUB-STEP: %s" % step
17
+ . AssertionError: FAILED SUB-STEP: When "admin:admin" sends POST "/tasks/testStart"
18
+ .
19
+ . All we get is the "sub-step failed" but no info whatsoever
20
+ . as to why it failed...
21
+
22
+
23
+
24
+ Background:
25
+ Given a new working directory
26
+ And a file named "features/steps/steps.py" with:
27
+ """
28
+ from behave import step
29
+ import sys
30
+
31
+ @step(u'a step passes')
32
+ def step_passes(context):
33
+ pass
34
+
35
+ @step(u'a step fails')
36
+ def step_fails(context):
37
+ assert False, 'EXPECT: Step fails.'
38
+
39
+ @step(u'a step fails with stdout "{message}"')
40
+ def step_fails_with_stdout(context, message):
41
+ sys.stdout.write("%s\n" % message)
42
+ assert False, 'EXPECT: Step fails with stdout.'
43
+
44
+ @step(u'a step fails with stderr "{message}"')
45
+ def step_fails_with_stderr(context, message):
46
+ sys.stderr.write("%s\n" % message)
47
+ assert False, 'EXPECT: Step fails with stderr.'
48
+
49
+ @step(u'a step raises an error "{message}"')
50
+ def step_raises_exception(context, message):
51
+ raise RuntimeError(message)
52
+
53
+ @step(u'the following steps should pass')
54
+ def step_following_steps_should_pass(context):
55
+ context.execute_steps(context.text.strip())
56
+ """
57
+
58
+ Scenario: Execute steps and one fails (EXPECTATION-MISMATCH: Assert fails)
59
+ Given a file named "features/issue96_case1.feature" with:
60
+ '''
61
+ Feature:
62
+ Scenario:
63
+ When the following steps should pass:
64
+ """
65
+ Given a step passes
66
+ When a step fails
67
+ Then a step passes
68
+ """
69
+ '''
70
+ When I run "behave -c features/issue96_case1.feature"
71
+ Then it should fail with:
72
+ """
73
+ Assertion Failed: FAILED SUB-STEP: When a step fails
74
+ Substep info: Assertion Failed: EXPECT: Step fails.
75
+ """
76
+
77
+ Scenario: Execute steps and error occurs (UNEXPECTED: exception is raised)
78
+ Given a file named "features/issue96_case2.feature" with:
79
+ '''
80
+ Feature:
81
+ Scenario:
82
+ When the following steps should pass:
83
+ """
84
+ Given a step passes
85
+ When a step raises an error "Alice is alive"
86
+ Then a step passes
87
+ """
88
+ '''
89
+ When I run "behave -c features/issue96_case2.feature"
90
+ Then it should fail with:
91
+ """
92
+ RuntimeError: Alice is alive
93
+ """
94
+ And the command output should contain:
95
+ """
96
+ Assertion Failed: FAILED SUB-STEP: When a step raises an error "Alice is alive"
97
+ Substep info: Traceback (most recent call last):
98
+ """
99
+
100
+ Scenario: Execute steps and one fails with stdout capture
101
+ Given a file named "features/issue96_case3.feature" with:
102
+ '''
103
+ Feature:
104
+ Scenario:
105
+ When the following steps should pass:
106
+ """
107
+ Given a step passes
108
+ When a step fails with stdout "STDOUT: Alice is alive"
109
+ Then a step passes
110
+ """
111
+ '''
112
+ When I run "behave -c features/issue96_case3.feature"
113
+ Then it should fail with:
114
+ """
115
+ Assertion Failed: FAILED SUB-STEP: When a step fails with stdout "STDOUT: Alice is alive"
116
+ Substep info: Assertion Failed: EXPECT: Step fails with stdout.
117
+ """
118
+ And the command output should contain:
119
+ """
120
+ Captured stdout:
121
+ STDOUT: Alice is alive
122
+ """
123
+
124
+
125
+ Scenario: Execute steps and one fails with stderr capture
126
+ Given a file named "features/issue96_case4.feature" with:
127
+ '''
128
+ Feature:
129
+ Scenario:
130
+ When the following steps should pass:
131
+ """
132
+ Given a step passes
133
+ When a step fails with stderr "STDERR: Alice is alive"
134
+ Then a step passes
135
+ """
136
+ '''
137
+ When I run "behave -c features/issue96_case4.feature"
138
+ Then it should fail with:
139
+ """
140
+ Assertion Failed: FAILED SUB-STEP: When a step fails with stderr "STDERR: Alice is alive"
141
+ Substep info: Assertion Failed: EXPECT: Step fails with stderr.
142
+ """
143
+ And the command output should contain:
144
+ """
145
+ Captured stderr:
146
+ STDERR: Alice is alive
147
+ """
148
+
149
+ Scenario: Execute steps and fail in before_scenario hook
150
+ Given a file named "features/issue96_case5.feature" with:
151
+ """
152
+ Feature:
153
+ Scenario:
154
+ Given a step passes
155
+ When a step passes
156
+ Then a step passes
157
+ """
158
+ And a file named "features/environment.py" with:
159
+ """
160
+ def before_scenario(context, scenario):
161
+ context.execute_steps(u'''
162
+ Given a step passes
163
+ When a step passes
164
+ Then a step fails
165
+ ''')
166
+ """
167
+ When I run "behave -c features/issue96_case5.feature"
168
+ Then it should fail with:
169
+ """
170
+ HOOK-ERROR in before_scenario: AssertionError: FAILED SUB-STEP: Then a step fails
171
+ Substep info: Assertion Failed: EXPECT: Step fails.
172
+ """
173
+