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,118 @@
1
+ Feature: ScenarioOutline with tagged Examples
2
+
3
+ As a tester
4
+ I want to select (or exclude) a specific Examples table of a ScenarioOutline
5
+ To run only the scenarios from the Examples table of interest.
6
+
7
+ | SPECIFICATION:
8
+ | Scenarios from a Examples table inherit the tags from
9
+ | its ScenarioOutline tags and its Examples tags:
10
+ |
11
+ | scenario.tags = scenario_outline.tags + examples.tags
12
+ |
13
+ | Therefore, examples.tags can easily be used to select all scenarios
14
+ | of this Examples table.
15
+ |
16
+ | NOTE: This allows to provide multiple Examples sections,
17
+ | one for each stage of testing and/or one for each test team
18
+ | (development testing, integration testing, system tests, ...).
19
+
20
+ @setup
21
+ Scenario: Feature Setup
22
+ Given a new working directory
23
+ And a file named "behave.ini" with:
24
+ """
25
+ [behave]
26
+ show_timestamps = false
27
+ show_skipped = false
28
+ """
29
+ And a file named "features/steps/steps.py" with:
30
+ """
31
+ from behave import step
32
+
33
+ @step('{word:w} step passes')
34
+ def step_passes(context, word):
35
+ pass
36
+ """
37
+ And a file named "features/tagged_examples.feature" with:
38
+ """
39
+ Feature:
40
+
41
+ @zap
42
+ Scenario Outline:
43
+ Given <variant> step passes
44
+
45
+ @foo
46
+ Examples: Alice
47
+ | variant | Comment |
48
+ | a | First case |
49
+ | another | Second case |
50
+
51
+ @bar
52
+ Examples: Bob
53
+ | variant | Comment |
54
+ | weird | First case |
55
+ """
56
+ And a file named "behave.ini" with:
57
+ """
58
+ [behave]
59
+ show_skipped = false
60
+ show_timings = false
61
+ """
62
+
63
+ Scenario: Use all Examples (and Scenarios)
64
+ When I run "behave -f plain features/tagged_examples.feature"
65
+ Then it should pass with:
66
+ """
67
+ 1 feature passed, 0 failed, 0 skipped
68
+ 3 scenarios passed, 0 failed, 0 skipped
69
+ """
70
+
71
+ Scenario: Select all Examples (and Scenarios)
72
+ When I run "behave -f plain --tags=@zap features/tagged_examples.feature"
73
+ Then it should pass with:
74
+ """
75
+ 1 feature passed, 0 failed, 0 skipped
76
+ 3 scenarios passed, 0 failed, 0 skipped
77
+ """
78
+
79
+ Scenario: Select only first Examples table
80
+ When I run "behave -f plain --tags=@foo features/tagged_examples.feature"
81
+ Then it should pass with:
82
+ """
83
+ 1 feature passed, 0 failed, 0 skipped
84
+ 2 scenarios passed, 0 failed, 1 skipped
85
+ """
86
+ And the command output should contain:
87
+ """
88
+ Scenario Outline: -- @1.1 Alice
89
+ Given a step passes ... passed
90
+
91
+ Scenario Outline: -- @1.2 Alice
92
+ Given another step passes ... passed
93
+ """
94
+ But the command output should not contain:
95
+ """
96
+ Scenario Outline: -- @2.1 Bob
97
+ """
98
+
99
+ Scenario: Select only second Examples table
100
+ When I run "behave -f plain --tags=@bar features/tagged_examples.feature"
101
+ Then it should pass with:
102
+ """
103
+ 1 feature passed, 0 failed, 0 skipped
104
+ 1 scenario passed, 0 failed, 2 skipped
105
+ """
106
+ And the command output should contain:
107
+ """
108
+ Scenario Outline: -- @2.1 Bob
109
+ Given weird step passes ... passed
110
+ """
111
+ But the command output should not contain:
112
+ """
113
+ Scenario Outline: -- @1.1 Alice
114
+ Given a step passes ... passed
115
+
116
+ Scenario Outline: -- @1.2 Alice
117
+ Given another step passes ... passed
118
+ """
@@ -0,0 +1,225 @@
1
+ Feature: Async-Test Support (async-step, ...)
2
+
3
+ As a test writer and step provider
4
+ I want to test async frameworks or protocols (that use asyncio)
5
+
6
+ . USE CASES:
7
+ . * async-step with run-to-complete semantics (like synchronous step)
8
+ . * async-dispatch-and-collect-results-later:
9
+ . one or more steps dispatch async-calls (tasks)
10
+ . and final step(s) that waits until tasks have been completed
11
+ . (collects the results of the async-calls and verifies them)
12
+ .
13
+ . TERMINOLOGY: async-step
14
+ . An async-step is either
15
+ . * an async-function as coroutine using async/await keywords (Python 3.5)
16
+ . * an async-function tagged with @asyncio.coroutine and using "yield from"
17
+ .
18
+ . # -- EXAMPLE CASE 1 (since Python 3.5):
19
+ . async def coroutine1(duration):
20
+ . await asyncio.sleep(duration)
21
+ .
22
+ . # -- EXAMPLE CASE 2 (since Python 3.4):
23
+ . @asyncio.coroutine
24
+ . def coroutine2(duration):
25
+ . yield from asyncio.sleep(duration)
26
+ .
27
+ . RATIONALE:
28
+ . By using async-steps, an additional layer of indirection is avoided.
29
+ . The async-step can directly interact with other async-functions.
30
+
31
+
32
+ @use.with_python.version=3.5
33
+ @use.with_python.version=3.6
34
+ Scenario: Use async-step with @async_run_until_complete (async)
35
+ Given a new working directory
36
+ And a file named "features/steps/async_steps35.py" with:
37
+ """
38
+ from behave import step
39
+ from behave.api.async_step import async_run_until_complete
40
+ import asyncio
41
+
42
+ @step('an async-step waits {duration:f} seconds')
43
+ @async_run_until_complete
44
+ async def step_async_step_waits_seconds(context, duration):
45
+ await asyncio.sleep(duration)
46
+ """
47
+ And a file named "features/async_run.feature" with:
48
+ """
49
+ Feature:
50
+ Scenario:
51
+ Given an async-step waits 0.2 seconds
52
+ """
53
+ When I run "behave -f plain --show-timings features/async_run.feature"
54
+ Then it should pass with:
55
+ """
56
+ Feature:
57
+ Scenario:
58
+ Given an async-step waits 0.2 seconds ... passed in 0.2
59
+ """
60
+
61
+
62
+ @use.with_python.version=3.4
63
+ @use.with_python.version=3.5
64
+ @use.with_python.version=3.6
65
+ Scenario: Use async-step with @async_run_until_complete (@coroutine)
66
+ Given a new working directory
67
+ And a file named "features/steps/async_steps34.py" with:
68
+ """
69
+ from behave import step
70
+ from behave.api.async_step import async_run_until_complete
71
+ import asyncio
72
+
73
+ @step('an async-step waits {duration:f} seconds')
74
+ @async_run_until_complete
75
+ @asyncio.coroutine
76
+ def step_async_step_waits_seconds2(context, duration):
77
+ yield from asyncio.sleep(duration)
78
+ """
79
+ And a file named "features/async_run.feature" with:
80
+ """
81
+ Feature:
82
+ Scenario:
83
+ Given an async-step waits 0.3 seconds
84
+ """
85
+ When I run "behave -f plain --show-timings features/async_run.feature"
86
+ Then it should pass with:
87
+ """
88
+ Feature:
89
+ Scenario:
90
+ Given an async-step waits 0.3 seconds ... passed in 0.3
91
+ """
92
+
93
+ @use.with_python.version=3.5
94
+ @use.with_python.version=3.6
95
+ Scenario: Use @async_run_until_complete(timeout=...) and TIMEOUT occurs (async)
96
+ Given a new working directory
97
+ And a file named "features/steps/async_steps_timeout35.py" with:
98
+ """
99
+ from behave import step
100
+ from behave.api.async_step import async_run_until_complete
101
+ import asyncio
102
+
103
+ @step('an async-step waits {duration:f} seconds with timeout')
104
+ @async_run_until_complete(timeout=0.1) # BAD-TIMEOUT-BY-DESIGN
105
+ async def step_async_step_waits_seconds_with_timeout35(context, duration):
106
+ await asyncio.sleep(duration)
107
+ """
108
+ And a file named "features/async_timeout35.feature" with:
109
+ """
110
+ Feature:
111
+ Scenario:
112
+ Given an async-step waits 1.0 seconds with timeout
113
+ """
114
+ When I run "behave -f plain --show-timings features/async_timeout35.feature"
115
+ Then it should fail with:
116
+ """
117
+ 0 steps passed, 1 failed, 0 skipped, 0 undefined
118
+ """
119
+ And the command output should contain:
120
+ """
121
+ Given an async-step waits 1.0 seconds with timeout ... failed in 0.1
122
+ """
123
+ And the command output should contain:
124
+ """
125
+ Assertion Failed: TIMEOUT-OCCURED: timeout=0.1
126
+ """
127
+
128
+ @use.with_python.version=3.4
129
+ @use.with_python.version=3.5
130
+ @use.with_python.version=3.6
131
+ Scenario: Use @async_run_until_complete(timeout=...) and TIMEOUT occurs (@coroutine)
132
+ Given a new working directory
133
+ And a file named "features/steps/async_steps_timeout34.py" with:
134
+ """
135
+ from behave import step
136
+ from behave.api.async_step import async_run_until_complete
137
+ import asyncio
138
+
139
+ @step('an async-step waits {duration:f} seconds with timeout')
140
+ @async_run_until_complete(timeout=0.2) # BAD-TIMEOUT-BY-DESIGN
141
+ @asyncio.coroutine
142
+ def step_async_step_waits_seconds_with_timeout34(context, duration):
143
+ yield from asyncio.sleep(duration)
144
+ """
145
+ And a file named "features/async_timeout34.feature" with:
146
+ """
147
+ Feature:
148
+ Scenario:
149
+ Given an async-step waits 1.0 seconds with timeout
150
+ """
151
+ When I run "behave -f plain --show-timings features/async_timeout34.feature"
152
+ Then it should fail with:
153
+ """
154
+ 0 steps passed, 1 failed, 0 skipped, 0 undefined
155
+ """
156
+ And the command output should contain:
157
+ """
158
+ Given an async-step waits 1.0 seconds with timeout ... failed in 0.2
159
+ """
160
+ And the command output should contain:
161
+ """
162
+ Assertion Failed: TIMEOUT-OCCURED: timeout=0.2
163
+ """
164
+
165
+ @use.with_python.version=3.4
166
+ @use.with_python.version=3.5
167
+ @use.with_python.version=3.6
168
+ Scenario: Use async-dispatch and async-collect concepts
169
+ Given a new working directory
170
+ And a file named "features/steps/async_dispatch_steps.py" with:
171
+ """
172
+ from behave import given, then, step
173
+ from behave.api.async_step import use_or_create_async_context, AsyncContext
174
+ from hamcrest import assert_that, equal_to, empty
175
+ import asyncio
176
+
177
+ @asyncio.coroutine
178
+ def async_func(param):
179
+ yield from asyncio.sleep(0.2)
180
+ return str(param).upper()
181
+
182
+ @given('I dispatch an async-call with param "{param}"')
183
+ def step_dispatch_async_call(context, param):
184
+ async_context = use_or_create_async_context(context, "async_context1")
185
+ task = async_context.loop.create_task(async_func(param))
186
+ async_context.tasks.append(task)
187
+
188
+ @then('the collected result of the async-calls is "{expected}"')
189
+ def step_collected_async_call_result_is(context, expected):
190
+ async_context = context.async_context1
191
+ done, pending = async_context.loop.run_until_complete(
192
+ asyncio.wait(async_context.tasks, loop=async_context.loop))
193
+
194
+ parts = [task.result() for task in done]
195
+ joined_result = ", ".join(sorted(parts))
196
+ assert_that(joined_result, equal_to(expected))
197
+ assert_that(pending, empty())
198
+ """
199
+ And a file named "features/async_dispatch.feature" with:
200
+ """
201
+ Feature:
202
+ Scenario:
203
+ Given I dispatch an async-call with param "Alice"
204
+ And I dispatch an async-call with param "Bob"
205
+ Then the collected result of the async-calls is "ALICE, BOB"
206
+ """
207
+ When I run "behave -f plain --show-timings features/async_dispatch.feature"
208
+ Then it should pass with:
209
+ """
210
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
211
+ """
212
+ And the command output should contain:
213
+ """
214
+ Given I dispatch an async-call with param "Alice" ... passed in 0.00
215
+ """
216
+ And the command output should contain:
217
+ """
218
+ And I dispatch an async-call with param "Bob" ... passed in 0.00
219
+ """
220
+ And the command output should contain:
221
+ """
222
+ Then the collected result of the async-calls is "ALICE, BOB" ... passed in 0.2
223
+ """
224
+ But note that "the async-collect step waits 0.2 seconds for both async-tasks to finish"
225
+ And note that "the async-dispatch steps do not wait at all"
@@ -0,0 +1,106 @@
1
+ Feature: Duplicated Step Definitions
2
+
3
+ As I tester and test writer
4
+ I want to know when step definitions are duplicated
5
+ So that I can fix these problems.
6
+
7
+
8
+ Scenario: Duplicated Step in same File
9
+ Given a new working directory
10
+ And a file named "features/steps/alice_steps.py" with:
11
+ """
12
+ from behave import given, when, then
13
+
14
+ @given(u'I call Alice')
15
+ def step(context):
16
+ pass
17
+
18
+ @given(u'I call Alice')
19
+ def step(context):
20
+ pass
21
+ """
22
+ And a file named "features/duplicated_step_alice.feature" with:
23
+ """
24
+ Feature:
25
+ Scenario: Duplicated Step
26
+ Given I call Alice
27
+ """
28
+ When I run "behave -f plain features/duplicated_step_alice.feature"
29
+ Then it should fail
30
+ And the command output should contain:
31
+ """
32
+ AmbiguousStep: @given('I call Alice') has already been defined in
33
+ existing step @given('I call Alice') at features/steps/alice_steps.py:3
34
+ """
35
+ And the command output should contain:
36
+ """
37
+ File "features/steps/alice_steps.py", line 7, in <module>
38
+ @given(u'I call Alice')
39
+ """
40
+
41
+
42
+ Scenario: Duplicated Step Definition in another File
43
+ Given a new working directory
44
+ And a file named "features/steps/bob1_steps.py" with:
45
+ """
46
+ from behave import given
47
+
48
+ @given('I call Bob')
49
+ def step_call_bob1(context):
50
+ pass
51
+ """
52
+ And a file named "features/steps/bob2_steps.py" with:
53
+ """
54
+ from behave import given
55
+
56
+ @given('I call Bob')
57
+ def step_call_bob2(context):
58
+ pass
59
+ """
60
+ And a file named "features/duplicated_step_bob.feature" with:
61
+ """
62
+ Feature:
63
+ Scenario: Duplicated Step
64
+ Given I call Bob
65
+ """
66
+ When I run "behave -f plain features/duplicated_step_bob.feature"
67
+ Then it should fail
68
+ And the command output should contain:
69
+ """
70
+ AmbiguousStep: @given('I call Bob') has already been defined in
71
+ existing step @given('I call Bob') at features/steps/bob1_steps.py:3
72
+ """
73
+ And the command output should contain:
74
+ """
75
+ File "features/steps/bob2_steps.py", line 3, in <module>
76
+ @given('I call Bob')
77
+ """
78
+
79
+ @xfail
80
+ Scenario: Duplicated Same Step Definition via import from another File
81
+ Given a new working directory
82
+ And a file named "features/steps/charly1_steps.py" with:
83
+ """
84
+ from behave import given
85
+
86
+ @given('I call Charly')
87
+ def step_call_charly1(context):
88
+ pass
89
+ """
90
+ And a file named "features/steps/charly2_steps.py" with:
91
+ """
92
+ import charly1_steps
93
+ """
94
+ And a file named "features/duplicated_step_via_import.feature" with:
95
+ """
96
+ Feature:
97
+ Scenario: Duplicated same step via import
98
+ Given I call Charly
99
+ """
100
+ When I run "behave -f plain features/duplicated_step_via_import.feature"
101
+ Then it should pass
102
+ And the command output should not contain:
103
+ """
104
+ AmbiguousStep: @given('I call Charly') has already been defined in
105
+ existing step @given('I call Charly') at features/steps/charly1_steps.py:3
106
+ """