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,96 @@
1
+ Feature: Exclude Feature from Test Run
2
+
3
+ As a test writer
4
+ I want sometimes to decide at runtime
5
+ that a feature is excluded from a test run
6
+ So that the command-line configuration becomes simpler
7
+ (and auto-configuration is supported).
8
+
9
+ . MECHANISM:
10
+ . The "before_feature()" hook can decide just before a feature should run
11
+ . that the feature should be excluded from the test-run.
12
+ . NOTE: Hooks are not called in dry-run mode.
13
+ .
14
+ . RATIONALE:
15
+ . There are certain situations where it is better to skip a feature
16
+ . than to run and fail the feature.
17
+ .
18
+ . Reasons for these cases are of often test environment related:
19
+ . * test environment does not fulfill the desired criteria
20
+ . * used testbed does not fulfill test requirements
21
+ .
22
+ . Instead of providing the exclude-feature selection on the command-line,
23
+ . the test (environment) and configuration logic should determine
24
+ . if a test should be excluded (as auto-configuration functionality).
25
+ .
26
+ . EXAMPLE:
27
+ . Certain features should not run on Windows (or Linux, ...).
28
+ .
29
+ . EVALUATION ORDER:
30
+ . Before the user can exclude a feature from a test-run,
31
+ . additional mechanisms decide, if the feature is part of the selected run-set.
32
+ . These are:
33
+ . * tags
34
+ . * ...
35
+ .
36
+ . RELATED:
37
+ . * features/scenario.exclude_from_run.feature
38
+
39
+
40
+ @setup
41
+ Scenario:
42
+ Given a new working directory
43
+ And a file named "features/alice.feature" with:
44
+ """
45
+ Feature: Alice
46
+ Scenario: Alice in Wonderland
47
+ Given a step passes
48
+ When another step passes
49
+ Then some step passes
50
+
51
+ Scenario: Alice and Bob
52
+ Given another step passes
53
+ """
54
+ And a file named "features/bob.feature" with:
55
+ """
56
+ Feature: Bob
57
+ Scenario: Bob in Berlin
58
+ Given some step passes
59
+ When another step passes
60
+ """
61
+ And a file named "features/steps/steps.py" with:
62
+ """
63
+ from behave import step
64
+
65
+ @step('{word:w} step passes')
66
+ def step_passes(context, word):
67
+ pass
68
+ """
69
+
70
+
71
+ Scenario: Exclude a feature from the test run (using: before_feature() hook)
72
+ Given a file named "features/environment.py" with:
73
+ """
74
+ import sys
75
+
76
+ def should_exclude_feature(feature):
77
+ if "Alice" in feature.name:
78
+ return True
79
+ return False
80
+
81
+ def before_feature(context, feature):
82
+ if should_exclude_feature(feature):
83
+ sys.stdout.write("EXCLUDED-BY-USER: Feature %s\n" % feature.name)
84
+ feature.skip()
85
+ """
86
+ When I run "behave -f plain -T features/"
87
+ Then it should pass with:
88
+ """
89
+ 1 feature passed, 0 failed, 1 skipped
90
+ 1 scenario passed, 0 failed, 2 skipped
91
+ 2 steps passed, 0 failed, 4 skipped, 0 undefined
92
+ """
93
+ And the command output should contain:
94
+ """
95
+ EXCLUDED-BY-USER: Feature Alice
96
+ """
@@ -0,0 +1,30 @@
1
+ Feature: Help Formatter
2
+
3
+ As a tester
4
+ I want to know which formatter are supported
5
+ To be able to select one.
6
+
7
+ Scenario:
8
+ Given a new working directory
9
+ When I run "behave --format=help"
10
+ Then it should pass
11
+ And the command output should contain:
12
+ """
13
+ Available formatters:
14
+ json JSON dump of test run
15
+ json.pretty JSON dump of test run (human readable)
16
+ null Provides formatter that does not output anything.
17
+ plain Very basic formatter with maximum compatibility
18
+ pretty Standard colourised pretty formatter
19
+ progress Shows dotted progress for each executed scenario.
20
+ progress2 Shows dotted progress for each executed step.
21
+ progress3 Shows detailed progress for each step of a scenario.
22
+ rerun Emits scenario file locations of failing scenarios
23
+ sphinx.steps Generate sphinx-based documentation for step definitions.
24
+ steps Shows step definitions (step implementations).
25
+ steps.catalog Shows non-technical documentation for step definitions.
26
+ steps.doc Shows documentation for step definitions.
27
+ steps.usage Shows how step definitions are used by steps.
28
+ tags Shows tags (and how often they are used).
29
+ tags.location Shows tags and the location where they are used.
30
+ """
@@ -0,0 +1,420 @@
1
+ @sequential
2
+ Feature: JSON Formatter
3
+
4
+ In order to process data with other tools
5
+ As a tester
6
+ I want that behave generates test run data in JSON format.
7
+
8
+
9
+ @setup
10
+ Scenario: Feature Setup
11
+ Given a new working directory
12
+ And a file named "features/steps/steps.py" with:
13
+ """
14
+ from behave import step
15
+
16
+ @step('a step passes')
17
+ def step_passes(context):
18
+ pass
19
+
20
+ @step('a step fails')
21
+ def step_fails(context):
22
+ assert False, "XFAIL-STEP"
23
+ """
24
+
25
+ Scenario: Use JSON formatter on simple feature
26
+ Given a file named "features/simple_feature_with_name.feature" with:
27
+ """
28
+ Feature: Simple, empty Feature
29
+ """
30
+ When I run "behave -f json.pretty features/simple_feature_with_name.feature"
31
+ Then it should pass with:
32
+ """
33
+ 0 features passed, 0 failed, 1 skipped
34
+ 0 scenarios passed, 0 failed, 0 skipped
35
+ """
36
+ And the command output should contain:
37
+ """
38
+ [
39
+ {
40
+ "keyword": "Feature",
41
+ "location": "features/simple_feature_with_name.feature:1",
42
+ "name": "Simple, empty Feature",
43
+ "status": "skipped",
44
+ "tags": []
45
+ }
46
+ ]
47
+ """
48
+
49
+ Scenario: Use JSON formatter on simple feature with description
50
+ Given a file named "features/simple_feature_with_description.feature" with:
51
+ """
52
+ Feature: Simple feature with description
53
+
54
+ First feature description line.
55
+ Second feature description line.
56
+
57
+ Third feature description line (following an empty line).
58
+ """
59
+ When I run "behave -f json.pretty features/simple_feature_with_description.feature"
60
+ Then it should pass with:
61
+ """
62
+ 0 features passed, 0 failed, 1 skipped
63
+ 0 scenarios passed, 0 failed, 0 skipped
64
+ """
65
+ And the command output should contain:
66
+ """
67
+ [
68
+ {
69
+ "description": [
70
+ "First feature description line.",
71
+ "Second feature description line.",
72
+ "Third feature description line (following an empty line)."
73
+ ],
74
+ "keyword": "Feature",
75
+ "location": "features/simple_feature_with_description.feature:1",
76
+ "name": "Simple feature with description",
77
+ "status": "skipped",
78
+ "tags": []
79
+ }
80
+ ]
81
+ """
82
+
83
+ Scenario: Use JSON formatter on simple feature with tags
84
+ Given a file named "features/simple_feature_with_tags.feature" with:
85
+ """
86
+ @foo @bar
87
+ Feature: Simple feature with tags
88
+ """
89
+ When I run "behave -f json.pretty features/simple_feature_with_tags.feature"
90
+ Then it should pass with:
91
+ """
92
+ 0 features passed, 0 failed, 1 skipped
93
+ 0 scenarios passed, 0 failed, 0 skipped
94
+ """
95
+ And the command output should contain:
96
+ """
97
+ [
98
+ {
99
+ "keyword": "Feature",
100
+ "location": "features/simple_feature_with_tags.feature:2",
101
+ "name": "Simple feature with tags",
102
+ "status": "skipped",
103
+ "tags": [
104
+ "foo",
105
+ "bar"
106
+ ]
107
+ }
108
+ ]
109
+ """
110
+
111
+ Scenario: Use JSON formatter with feature and one scenario without steps
112
+ Given a file named "features/simple_scenario.feature" with:
113
+ """
114
+ Feature:
115
+ Scenario: Simple scenario without steps
116
+ """
117
+ When I run "behave -f json.pretty features/simple_scenario.feature"
118
+ Then it should pass with:
119
+ """
120
+ 1 feature passed, 0 failed, 0 skipped
121
+ 1 scenario passed, 0 failed, 0 skipped
122
+ """
123
+ And the command output should contain:
124
+ """
125
+ [
126
+ {
127
+ "elements": [
128
+ {
129
+ "keyword": "Scenario",
130
+ "location": "features/simple_scenario.feature:2",
131
+ "name": "Simple scenario without steps",
132
+ "status": "passed",
133
+ "steps": [],
134
+ "tags": [],
135
+ "type": "scenario"
136
+ }
137
+ ],
138
+ "keyword": "Feature",
139
+ "location": "features/simple_scenario.feature:1",
140
+ "name": "",
141
+ "status": "passed",
142
+ "tags": []
143
+ }
144
+ ]
145
+ """
146
+
147
+ Scenario: Use JSON formatter with feature and one scenario with description
148
+ Given a file named "features/simple_scenario_with_description.feature" with:
149
+ """
150
+ Feature:
151
+ Scenario: Simple scenario with description but without steps
152
+
153
+ First scenario description line.
154
+ Second scenario description line.
155
+
156
+ Third scenario description line (after an empty line).
157
+ """
158
+ When I run "behave -f json.pretty features/simple_scenario_with_description.feature"
159
+ Then it should pass with:
160
+ """
161
+ 1 feature passed, 0 failed, 0 skipped
162
+ 1 scenario passed, 0 failed, 0 skipped
163
+ """
164
+ And the command output should contain:
165
+ """
166
+ [
167
+ {
168
+ "elements": [
169
+ {
170
+ "description": [
171
+ "First scenario description line.",
172
+ "Second scenario description line.",
173
+ "Third scenario description line (after an empty line)."
174
+ ],
175
+ "keyword": "Scenario",
176
+ "location": "features/simple_scenario_with_description.feature:2",
177
+ "name": "Simple scenario with description but without steps",
178
+ "status": "passed",
179
+ "steps": [],
180
+ "tags": [],
181
+ "type": "scenario"
182
+ }
183
+ ],
184
+ "keyword": "Feature",
185
+ "location": "features/simple_scenario_with_description.feature:1",
186
+ "name": "",
187
+ "status": "passed",
188
+ "tags": []
189
+ }
190
+ ]
191
+ """
192
+
193
+ Scenario: Use JSON formatter with feature and one scenario with tags
194
+ Given a file named "features/simple_scenario_with_tags.feature" with:
195
+ """
196
+ Feature:
197
+
198
+ @foo
199
+ @bar
200
+ Scenario: Simple scenario with tags but without steps
201
+ """
202
+ When I run "behave -f json.pretty features/simple_scenario_with_tags.feature"
203
+ Then it should pass with:
204
+ """
205
+ 1 feature passed, 0 failed, 0 skipped
206
+ 1 scenario passed, 0 failed, 0 skipped
207
+ """
208
+ And the command output should contain:
209
+ """
210
+ [
211
+ {
212
+ "elements": [
213
+ {
214
+ "keyword": "Scenario",
215
+ "location": "features/simple_scenario_with_tags.feature:5",
216
+ "name": "Simple scenario with tags but without steps",
217
+ "status": "passed",
218
+ "steps": [],
219
+ "tags": [
220
+ "foo",
221
+ "bar"
222
+ ],
223
+ "type": "scenario"
224
+ }
225
+ ],
226
+ "keyword": "Feature",
227
+ "location": "features/simple_scenario_with_tags.feature:1",
228
+ "name": "",
229
+ "status": "passed",
230
+ "tags": []
231
+ }
232
+ ]
233
+ """
234
+
235
+
236
+ Scenario: Use JSON formatter with type-converted step parameters
237
+
238
+ Ensure that step parameters (match arguments) leads to valid JSON
239
+ even when type converters are used which create non-simple types.
240
+
241
+ Given a file named "features/step_params_with_type_converter.feature" with:
242
+ """
243
+ Feature:
244
+ Scenario: Use type converter
245
+ Given "1+2j" as complex number
246
+ And "red" as color
247
+ """
248
+ And a file named "features/steps/type_converter_steps.py" with:
249
+ """
250
+ from behave import step, register_type
251
+ import parse
252
+
253
+ # -- TYPES AND TYPE CONVERTERS:
254
+ class Color(object):
255
+ def __init__(self, color_name):
256
+ self.name = color_name
257
+
258
+ @parse.with_pattern("\w+")
259
+ def parse_color(text):
260
+ return Color(text.strip())
261
+
262
+ @parse.with_pattern(".+")
263
+ def parse_complex(text):
264
+ return complex(text)
265
+
266
+ register_type(Color=parse_color)
267
+ register_type(Complex=parse_complex)
268
+
269
+ # -- STEPS:
270
+ @step('"{number:Complex}" as complex number')
271
+ def step_complex_number(context, number):
272
+ context.number = number
273
+
274
+ @step('"{color:Color}" as color')
275
+ def step_color(context, color):
276
+ context.color = color
277
+ """
278
+ When I run "behave -f json.pretty features/step_params_with_type_converter.feature"
279
+ Then it should pass with:
280
+ """
281
+ 1 scenario passed, 0 failed, 0 skipped
282
+ """
283
+ And the command output should contain:
284
+ """
285
+ "match": {
286
+ "arguments": [
287
+ {
288
+ "name": "number",
289
+ "value": "1+2j"
290
+ }
291
+ ],
292
+ "location": "features/steps/type_converter_steps.py:21"
293
+ },
294
+ "name": "\"1+2j\" as complex number",
295
+ """
296
+ And the command output should contain:
297
+ """
298
+ "match": {
299
+ "arguments": [
300
+ {
301
+ "name": "color",
302
+ "value": "red"
303
+ }
304
+ ],
305
+ "location": "features/steps/type_converter_steps.py:25"
306
+ },
307
+ "name": "\"red\" as color",
308
+ """
309
+ But note that "both matched arguments.values are provided as string"
310
+
311
+
312
+ @xfail
313
+ @regression_problem.with_duration
314
+ Scenario: Use JSON formatter with feature and one scenario with steps
315
+ Given a file named "features/scenario_with_steps.feature" with:
316
+ """
317
+ Feature:
318
+ Scenario: Simple scenario with with steps
319
+ Given a step passes
320
+ When a step passes
321
+ Then a step passes
322
+ And a step passes
323
+ But a step passes
324
+ """
325
+ When I run "behave -f json.pretty features/scenario_with_steps.feature"
326
+ Then it should pass with:
327
+ """
328
+ 1 feature passed, 0 failed, 0 skipped
329
+ 1 scenario passed, 0 failed, 0 skipped
330
+ """
331
+ And the command output should contain:
332
+ """
333
+ "steps": [
334
+ {
335
+ "keyword": "Given",
336
+ "location": "features/scenario_with_steps.feature:2",
337
+ "match": {
338
+ "arguments": [],
339
+ "location": "features/steps/steps.py:3"
340
+ },
341
+ "name": "a step passes",
342
+ "result": {
343
+ "duration": XXX,
344
+ "status": "passed",
345
+ }
346
+ "step_type": "given",
347
+ },
348
+ {
349
+ "keyword": "When",
350
+ "location": "features/scenario_with_steps.feature:3",
351
+ "match": {
352
+ "arguments": [],
353
+ "location": "features/steps/steps.py:3"
354
+ },
355
+ "name": "a step passes",
356
+ "result": {
357
+ "duration": XXX,
358
+ "status": "passed",
359
+ }
360
+ "step_type": "when",
361
+ },
362
+ {
363
+ "keyword": "Then",
364
+ "location": "features/scenario_with_steps.feature:4",
365
+ "match": {
366
+ "arguments": [],
367
+ "location": "features/steps/steps.py:3"
368
+ },
369
+ "name": "a step passes",
370
+ "result": {
371
+ "duration": XXX,
372
+ "status": "passed",
373
+ }
374
+ "step_type": "then",
375
+ },
376
+ {
377
+ "keyword": "And",
378
+ "location": "features/scenario_with_steps.feature:5",
379
+ "match": {
380
+ "arguments": [],
381
+ "location": "features/steps/steps.py:3"
382
+ },
383
+ "name": "a step passes",
384
+ "result": {
385
+ "duration": XXX,
386
+ "status": "passed",
387
+ }
388
+ "step_type": "then",
389
+ },
390
+ {
391
+ "keyword": "But",
392
+ "location": "features/scenario_with_steps.feature:6",
393
+ "match": {
394
+ "arguments": [],
395
+ "location": "features/steps/steps.py:3"
396
+ },
397
+ "name": "a step passes",
398
+ "result": {
399
+ "duration": XXX,
400
+ "status": "passed",
401
+ }
402
+ "step_type": "then",
403
+ }
404
+ ],
405
+ """
406
+
407
+ @wip
408
+ Scenario: Use JSON formatter with feature and two scenarios
409
+
410
+ @wip
411
+ Scenario: Use JSON formatter with feature and background
412
+
413
+ @wip
414
+ Scenario: Use JSON formatter with feature and scenario outline without steps
415
+ Scenario: Use JSON formatter with feature and scenario outline with description
416
+ Scenario: Use JSON formatter with feature and scenario outline with tags
417
+ Scenario: Use JSON formatter with feature and scenario outline with steps
418
+ Scenario: Use JSON formatter with feature and scenario outline with steps and examples
419
+
420
+