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,134 @@
1
+ @sequential
2
+ Feature: Tags Formatter (Tag Counts)
3
+
4
+ As a tester
5
+ I want to obtain a quick overview which tags are used (and how often)
6
+ So that I can better use tags on command-line
7
+
8
+ NOTE: Primarily intended for dry-run mode.
9
+
10
+ @setup
11
+ Scenario: Feature Setup
12
+ Given a new working directory
13
+ And a file named "features/steps/steps.py" with:
14
+ """
15
+ from behave import step
16
+
17
+ @step('a step passes')
18
+ def step_passes(context):
19
+ pass
20
+ """
21
+ And a file named "features/alice.feature" with:
22
+ """
23
+ @one
24
+ Feature: Alice
25
+
26
+ @setup
27
+ Scenario: Setup Feature
28
+ Given a step passes
29
+
30
+ @wip
31
+ Scenario: A1 with tags: @wip (inherited: @one)
32
+ Given a step passes
33
+
34
+ @foo
35
+ @wip
36
+ Scenario: A2 with tags: @foo, @wip (inherited: @one)
37
+ When a step passes
38
+
39
+ @foo @bar
40
+ Scenario: A3 with tags: @foo, @bar (inherited: @one)
41
+ Then a step passes
42
+ """
43
+ And a file named "features/bob.feature" with:
44
+ """
45
+ @two
46
+ Feature: Bob
47
+
48
+ Scenario: B1 without tags (inherited: @two)
49
+ Given a step passes
50
+
51
+ @foo @one
52
+ Scenario: B2 with tags: @foo, @one (inherited: @two)
53
+ When a step passes
54
+ """
55
+
56
+
57
+ Scenario: Use Tags formatter to get an overview of used tags
58
+ When I run "behave -f tags --dry-run features/"
59
+ Then it should pass with:
60
+ """
61
+ 0 features passed, 0 failed, 0 skipped, 2 untested
62
+ 0 scenarios passed, 0 failed, 0 skipped, 6 untested
63
+ """
64
+ And the command output should contain:
65
+ """
66
+ TAG COUNTS (alphabetically sorted):
67
+ @bar 1 (used for scenario)
68
+ @foo 3 (used for scenario)
69
+ @one 2 (used for feature: 1, scenario: 1)
70
+ @setup 1 (used for scenario)
71
+ @two 1 (used for feature)
72
+ @wip 2 (used for scenario)
73
+ """
74
+ But note that "tags inherited from its feature are (normally) not counted."
75
+
76
+
77
+ Scenario: Use Tags formatter together with another formatter
78
+ When I run "behave -f tags -f plain -T features/"
79
+ Then it should pass with:
80
+ """
81
+ 2 features passed, 0 failed, 0 skipped
82
+ 6 scenarios passed, 0 failed, 0 skipped
83
+ """
84
+ And the command output should contain:
85
+ """
86
+ Feature: Alice
87
+
88
+ Scenario: Setup Feature
89
+ Given a step passes ... passed
90
+
91
+ Scenario: A1 with tags: @wip (inherited: @one)
92
+ Given a step passes ... passed
93
+
94
+ Scenario: A2 with tags: @foo, @wip (inherited: @one)
95
+ When a step passes ... passed
96
+
97
+ Scenario: A3 with tags: @foo, @bar (inherited: @one)
98
+ Then a step passes ... passed
99
+
100
+ Feature: Bob
101
+
102
+ Scenario: B1 without tags (inherited: @two)
103
+ Given a step passes ... passed
104
+
105
+ Scenario: B2 with tags: @foo, @one (inherited: @two)
106
+ When a step passes ... passed
107
+
108
+ TAG COUNTS (alphabetically sorted):
109
+ @bar 1 (used for scenario)
110
+ @foo 3 (used for scenario)
111
+ @one 2 (used for feature: 1, scenario: 1)
112
+ @setup 1 (used for scenario)
113
+ @two 1 (used for feature)
114
+ @wip 2 (used for scenario)
115
+ """
116
+
117
+ Scenario: Use Tags formatter when tags are selected
118
+ When I run "behave -f tags --tags=@setup,@wip features/"
119
+ Then it should pass with:
120
+ """
121
+ 1 feature passed, 0 failed, 1 skipped
122
+ 3 scenarios passed, 0 failed, 3 skipped
123
+ """
124
+ And the command output should contain:
125
+ """
126
+ TAG COUNTS (alphabetically sorted):
127
+ @bar 1 (used for scenario)
128
+ @foo 3 (used for scenario)
129
+ @one 2 (used for feature: 1, scenario: 1)
130
+ @setup 1 (used for scenario)
131
+ @two 1 (used for feature)
132
+ @wip 2 (used for scenario)
133
+ """
134
+ And note that "all tags are detected even from skipped features and scenarios"
@@ -0,0 +1,183 @@
1
+ @sequential
2
+ Feature: TagsLocation Formatter
3
+
4
+ As a tester
5
+ I want to know where and in which context tags are used
6
+ So that I better understand how to use tags in feature files and on command-line
7
+
8
+ NOTE: Primarily intended for dry-run mode.
9
+
10
+
11
+ @setup
12
+ Scenario: Feature Setup
13
+ Given a new working directory
14
+ And a file named "features/steps/steps.py" with:
15
+ """
16
+ from behave import step
17
+
18
+ @step('a step passes')
19
+ def step_passes(context):
20
+ pass
21
+ """
22
+ And a file named "features/alice.feature" with:
23
+ """
24
+ @one
25
+ Feature: Alice
26
+
27
+ @setup
28
+ Scenario: Setup Feature
29
+ Given a step passes
30
+
31
+ @wip
32
+ Scenario: A1 with tags: @wip (inherited: @one)
33
+ Given a step passes
34
+
35
+ @foo
36
+ @wip
37
+ Scenario: A2 with tags: @foo, @wip (inherited: @one)
38
+ When a step passes
39
+
40
+ @foo @bar
41
+ Scenario: A3 with tags: @foo, @bar (inherited: @one)
42
+ Then a step passes
43
+ """
44
+ And a file named "features/bob.feature" with:
45
+ """
46
+ @two
47
+ Feature: Bob
48
+
49
+ Scenario: B1 without tags (inherited: @two)
50
+ Given a step passes
51
+
52
+ @foo @one
53
+ Scenario: B2 with tags: @foo, @one (inherited: @two)
54
+ When a step passes
55
+ """
56
+
57
+
58
+ Scenario: Use TagsLocation formatter to get an overview where tags are used
59
+ When I run "behave -f tags.location --dry-run features/"
60
+ Then it should pass with:
61
+ """
62
+ 0 features passed, 0 failed, 0 skipped, 2 untested
63
+ 0 scenarios passed, 0 failed, 0 skipped, 6 untested
64
+ """
65
+ And the command output should contain:
66
+ """
67
+ TAG LOCATIONS (alphabetically ordered):
68
+ @bar:
69
+ features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
70
+
71
+ @foo:
72
+ features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
73
+ features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
74
+ features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
75
+
76
+ @one:
77
+ features/alice.feature:2 Feature: Alice
78
+ features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
79
+
80
+ @setup:
81
+ features/alice.feature:5 Scenario: Setup Feature
82
+
83
+ @two:
84
+ features/bob.feature:2 Feature: Bob
85
+
86
+ @wip:
87
+ features/alice.feature:9 Scenario: A1 with tags: @wip (inherited: @one)
88
+ features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
89
+ """
90
+ But note that "tags inherited from its feature are (normally) not counted."
91
+
92
+
93
+ Scenario: Use TagsLocation formatter together with another formatter
94
+ When I run "behave -f tags.location -f plain -T features/"
95
+ Then it should pass with:
96
+ """
97
+ 2 features passed, 0 failed, 0 skipped
98
+ 6 scenarios passed, 0 failed, 0 skipped
99
+ """
100
+ And the command output should contain:
101
+ """
102
+ Feature: Alice
103
+
104
+ Scenario: Setup Feature
105
+ Given a step passes ... passed
106
+
107
+ Scenario: A1 with tags: @wip (inherited: @one)
108
+ Given a step passes ... passed
109
+
110
+ Scenario: A2 with tags: @foo, @wip (inherited: @one)
111
+ When a step passes ... passed
112
+
113
+ Scenario: A3 with tags: @foo, @bar (inherited: @one)
114
+ Then a step passes ... passed
115
+
116
+ Feature: Bob
117
+
118
+ Scenario: B1 without tags (inherited: @two)
119
+ Given a step passes ... passed
120
+
121
+ Scenario: B2 with tags: @foo, @one (inherited: @two)
122
+ When a step passes ... passed
123
+ """
124
+ And the command output should contain:
125
+ """
126
+ TAG LOCATIONS (alphabetically ordered):
127
+ @bar:
128
+ features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
129
+
130
+ @foo:
131
+ features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
132
+ features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
133
+ features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
134
+
135
+ @one:
136
+ features/alice.feature:2 Feature: Alice
137
+ features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
138
+
139
+ @setup:
140
+ features/alice.feature:5 Scenario: Setup Feature
141
+
142
+ @two:
143
+ features/bob.feature:2 Feature: Bob
144
+
145
+ @wip:
146
+ features/alice.feature:9 Scenario: A1 with tags: @wip (inherited: @one)
147
+ features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
148
+ """
149
+
150
+
151
+ Scenario: Use TagsLocation formatter when tags are selected
152
+ When I run "behave -f tags.location --tags=@setup,@wip features/"
153
+ Then it should pass with:
154
+ """
155
+ 1 feature passed, 0 failed, 1 skipped
156
+ 3 scenarios passed, 0 failed, 3 skipped
157
+ """
158
+ And the command output should contain:
159
+ """
160
+ TAG LOCATIONS (alphabetically ordered):
161
+ @bar:
162
+ features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
163
+
164
+ @foo:
165
+ features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
166
+ features/alice.feature:18 Scenario: A3 with tags: @foo, @bar (inherited: @one)
167
+ features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
168
+
169
+ @one:
170
+ features/alice.feature:2 Feature: Alice
171
+ features/bob.feature:8 Scenario: B2 with tags: @foo, @one (inherited: @two)
172
+
173
+ @setup:
174
+ features/alice.feature:5 Scenario: Setup Feature
175
+
176
+ @two:
177
+ features/bob.feature:2 Feature: Bob
178
+
179
+ @wip:
180
+ features/alice.feature:9 Scenario: A1 with tags: @wip (inherited: @one)
181
+ features/alice.feature:14 Scenario: A2 with tags: @foo, @wip (inherited: @one)
182
+ """
183
+ And note that "all tags are detected even from skipped features and scenarios"
@@ -0,0 +1,196 @@
1
+ Feature: Use a user-defined Formatter
2
+
3
+ As a behave user
4
+ I want to be able to provide own, user-defined formatters
5
+ So that I am able to add a new, user-defined formatters
6
+ when I need other output formats (or override existing ones).
7
+
8
+ . SPECIFICATION:
9
+ . * A user-defined formatter must inherit from the "Formatter" class.
10
+ . * A user-defined formatter can be specified on command-line
11
+ . by using a scoped class name as value for the '--format' option.
12
+ . * A user-defined formatter can be registered by name
13
+ . by using the "behave.formatters" section in the behave config file.
14
+ .
15
+ . SCOPED CLASS NAME (for formatter.class):
16
+ . * my.module_name:ClassName (preferred: single colon separator)
17
+ . * my.module_name::ClassName (alternative: double colon separator)
18
+
19
+
20
+ @setup
21
+ Scenario: Feature Setup
22
+ Given a new working directory
23
+ And a file named "features/steps/passing_steps.py" with:
24
+ """
25
+ from behave import step
26
+
27
+ @step('{word:w} step passes')
28
+ def step_passes(context, word):
29
+ pass
30
+
31
+ @step('{word:w} step fails')
32
+ def step_fails(context, word):
33
+ assert False, "XFAIL-STEP"
34
+ """
35
+ And a file named "features/passing.feature" with:
36
+ """
37
+ Feature:
38
+ Scenario: Alice
39
+ Given a step passes
40
+ When another step passes
41
+
42
+ Scenario: Bob
43
+ Then some step passes
44
+ """
45
+ And an empty file named "behave_ext/__init__.py"
46
+ And a file named "behave_ext/formatter_one.py" with:
47
+ """
48
+ from behave.formatter.base import Formatter
49
+
50
+ class NotAFormatter(object): pass
51
+ class SuperFormatter(Formatter):
52
+ name = "super"
53
+ description = "Super-duper formatter."
54
+ """
55
+ And a file named "behave_ext/formatter_foo.py" with:
56
+ """
57
+ from behave.formatter.base import Formatter
58
+
59
+ class FooFormatter(Formatter):
60
+ name = "foo"
61
+ description = "User-specific FOO formatter."
62
+
63
+ class FooFormatter2(Formatter):
64
+ description = "User-specific FOO2 formatter."
65
+ """
66
+ And a file named "behave_ext/formatter_bar.py" with:
67
+ """
68
+ from behave.formatter.base import Formatter
69
+
70
+ class BarFormatter(Formatter):
71
+ description = "User-specific BAR formatter."
72
+ """
73
+
74
+ @use_formatter.class
75
+ Scenario: Use a known, valid user-defined formatter with scoped class name
76
+ When I run "behave -f behave_ext.formatter_one:SuperFormatter features/passing.feature"
77
+ Then it should pass with:
78
+ """
79
+ 2 scenarios passed, 0 failed, 0 skipped
80
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
81
+ """
82
+
83
+ @use_formatter.class
84
+ Scenario: Use a known, valid user-defined formatter (with double colon)
85
+
86
+ ALTERNATIVE: Can currently use a double colon as separator, too.
87
+
88
+ When I run "behave -f behave_ext.formatter_one::SuperFormatter features/passing.feature"
89
+ Then it should pass with:
90
+ """
91
+ 2 scenarios passed, 0 failed, 0 skipped
92
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
93
+ """
94
+
95
+
96
+ @use_formatter.class
97
+ Scenario Outline: Use built-in formatter "<formatter.name>" like a user-defined formatter
98
+ When I run "behave -f <formatter.class> features/passing.feature"
99
+ Then it should pass with:
100
+ """
101
+ 2 scenarios passed, 0 failed, 0 skipped
102
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
103
+ """
104
+
105
+ Examples:
106
+ | formatter.name | formatter.class |
107
+ | plain | behave.formatter.plain:PlainFormatter |
108
+ | pretty | behave.formatter.pretty:PrettyFormatter |
109
+
110
+
111
+ @problematic
112
+ @use_formatter.class
113
+ Scenario Outline: Use a problematic user-defined formatter (<case>)
114
+ When I run "behave -f <formatter.class> features/passing.feature"
115
+ Then it should fail with:
116
+ """
117
+ error: format=<formatter.class> is unknown
118
+ """
119
+
120
+ Examples:
121
+ | formatter.class | case |
122
+ | my.unknown_module:SomeFormatter | Unknown module |
123
+ | behave_ext.formatter_one:UnknownClass | Unknown class |
124
+ | behave_ext.formatter_one:NotAFormatter | Invalid Formatter class |
125
+
126
+
127
+ @formatter.registered_by_name
128
+ Scenario Outline: Register user-defined formatter by name: <formatter.name>
129
+ Given a file named "behave.ini" with:
130
+ """
131
+ [behave.formatters]
132
+ foo = behave_ext.formatter_foo:FooFormatter
133
+ foo2 = behave_ext.formatter_foo:FooFormatter2
134
+ bar = behave_ext.formatter_bar:BarFormatter
135
+ """
136
+ And note that "the schema: 'formatter.name = formatter.class' is used"
137
+ When I run "behave -f <formatter.name> features/passing.feature"
138
+ Then it should pass with:
139
+ """
140
+ 2 scenarios passed, 0 failed, 0 skipped
141
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
142
+ """
143
+ But the command output should not contain:
144
+ """
145
+ error: format=<formatter.name> is unknown
146
+ """
147
+
148
+ Examples:
149
+ | formatter.name | Comment |
150
+ | foo | First user-defined, registered formatter. |
151
+ | bar | Last user-defined, registered formatter. |
152
+
153
+
154
+ @formatter.registered_by_name
155
+ Scenario: Help-Format shows description of registered-by-name formatters
156
+ Given a file named "behave.ini" with:
157
+ """
158
+ [behave.formatters]
159
+ foo = behave_ext.formatter_foo:FooFormatter
160
+ bar = behave_ext.formatter_bar:BarFormatter
161
+ """
162
+ When I run "behave -f help"
163
+ Then it should pass with:
164
+ """
165
+ Available formatters:
166
+ """
167
+ And the command output should contain:
168
+ """
169
+ bar User-specific BAR formatter.
170
+ """
171
+ And the command output should contain:
172
+ """
173
+ foo User-specific FOO formatter.
174
+ """
175
+
176
+
177
+ @problematic
178
+ @formatter.registered_by_name
179
+ Scenario Outline: Use problematic, registered-by-name formatter: <case>
180
+ Given a file named "behave.ini" with:
181
+ """
182
+ [behave.formatters]
183
+ <formatter.name> = <formatter.class>
184
+ """
185
+ When I run "behave -f <formatter.name> features/passing.feature"
186
+ Then it should fail with:
187
+ """
188
+ error: format=<formatter.name> is unknown
189
+ """
190
+
191
+ Examples:
192
+ | formatter.name | formatter.class | case |
193
+ | unknown1 | my.unknown_module:SomeFormatter | Unknown module |
194
+ | unknown2 | behave_ext.formatter_one:UnknownClass | Unknown class |
195
+ | invalid1 | behave_ext.formatter_one:NotAFormatter | Invalid Formatter class |
196
+