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,102 @@
1
+ @issue
2
+ Feature: Issue #63: 'ScenarioOutline' object has no attribute 'stdout'
3
+
4
+ The problem occurs when "behave --junit ..." is used
5
+ And a feature contains one or more ScenarioOutline(s).
6
+
7
+ Background: Test Setup
8
+ Given a new working directory
9
+ And a file named "features/steps/steps.py" with:
10
+ """
11
+ # -- OMIT: from __future__ import print_function
12
+ from behave import given
13
+ import sys
14
+
15
+ def generate_output(step, outcome, name):
16
+ # -- OMIT: print("{0}0 {1}: {2};".format(step, outcome, name))
17
+ sys.stdout.write("{0}1 {1}: {2};\n".format(step, outcome, name))
18
+ sys.stderr.write("{0}2 {1}: {2};\n".format(step, outcome, name))
19
+
20
+ @given(u'a {outcome} step with "{name}"')
21
+ def step(context, outcome, name):
22
+ context.name = name
23
+ generate_output("Given", outcome, name)
24
+ assert outcome == "passing"
25
+
26
+ @when(u'a {outcome} step with "{name}" occurs')
27
+ def step(context, outcome, name):
28
+ generate_output("When", outcome, name)
29
+ assert outcome == "passing"
30
+
31
+ @then(u'a {outcome} step with "{name}" is reached')
32
+ def step(context, outcome, name):
33
+ generate_output("Then", outcome, name)
34
+ assert outcome == "passing"
35
+ assert context.name == name
36
+ """
37
+
38
+ Scenario: ScenarioOutline with Passing Steps
39
+ Given a file named "features/issue63_case1.feature" with:
40
+ """
41
+ Feature: ScenarioOutline with Passing Steps
42
+ Scenario Outline:
43
+ Given a passing step with "<name>"
44
+ When a passing step with "<name>" occurs
45
+ Then a passing step with "<name>" is reached
46
+
47
+ Examples:
48
+ |name |
49
+ |Alice|
50
+ |Bob |
51
+ """
52
+ When I run "behave -c --junit features/issue63_case1.feature"
53
+ Then it should pass with:
54
+ """
55
+ 2 scenarios passed, 0 failed, 0 skipped
56
+ 6 steps passed, 0 failed, 0 skipped, 0 undefined
57
+ """
58
+ But the command output should not contain:
59
+ """
60
+ AttributeError: 'ScenarioOutline' object has no attribute 'stdout'
61
+ """
62
+
63
+ Scenario: ScenarioOutline with Passing and Failing Steps
64
+ Given a file named "features/issue63_case2.feature" with:
65
+ """
66
+ Feature: ScenarioOutline with Passing and Failing Steps
67
+ Scenario Outline:
68
+ Given a passing step with "<name>"
69
+ When a failing step with "<name>" occurs
70
+ Then a passing step with "<name>" is reached
71
+
72
+ Examples:
73
+ |name |
74
+ |Alice|
75
+ |Bob |
76
+ """
77
+ When I run "behave -c --junit features/issue63_case2.feature"
78
+ Then it should fail with:
79
+ """
80
+ 0 scenarios passed, 2 failed, 0 skipped
81
+ 2 steps passed, 2 failed, 2 skipped, 0 undefined
82
+ """
83
+ But the command output should not contain:
84
+ """
85
+ AttributeError: 'ScenarioOutline' object has no attribute 'stdout'
86
+ """
87
+ And the command output should not contain:
88
+ """
89
+ AttributeError: 'Scenario' object has no attribute 'exception'
90
+ """
91
+ And the command output should contain:
92
+ """
93
+ Captured stdout:
94
+ Given1 passing: Alice;
95
+ When1 failing: Alice;
96
+ """
97
+ And the command output should contain:
98
+ """
99
+ Captured stderr:
100
+ Given2 passing: Alice;
101
+ When2 failing: Alice;
102
+ """
@@ -0,0 +1,97 @@
1
+ @issue
2
+ Feature: Issue #64 Exit status not set to 1 even there are failures in certain cases
3
+
4
+ The behave exit status not always returns 1 when failure(s) occur.
5
+ The problem was associated with the Feature.run() logic implementation.
6
+
7
+ This problem was first discovered while verifying issue #52 (see comments).
8
+ See also similar test when tags select a subset of scenarios.
9
+
10
+ RELATED ISSUES:
11
+ * issue #52
12
+
13
+ Background: Test Setup
14
+ Given a new working directory
15
+ Given a file named "features/steps/steps.py" with:
16
+ """
17
+ from behave import given
18
+
19
+ @given(u'passing')
20
+ def step(context):
21
+ pass
22
+
23
+ @given(u'failing')
24
+ def step(context):
25
+ assert False, "failing"
26
+ """
27
+
28
+ Scenario: Failing in First Scenario
29
+ Given a file named "features/issue64_case1.feature" with:
30
+ """
31
+ Feature: Failing in First Scenario
32
+ Scenario:
33
+ Given failing
34
+
35
+ Scenario:
36
+ Given passing
37
+ """
38
+ When I run "behave --format=plain features/issue64_case1.feature"
39
+ Then it should fail with:
40
+ """
41
+ 0 features passed, 1 failed, 0 skipped
42
+ 1 scenario passed, 1 failed, 0 skipped
43
+ """
44
+
45
+ Scenario: Failing in Middle Scenario
46
+ Given a file named "features/issue64_case2.feature" with:
47
+ """
48
+ Feature: Failing in Middle Scenario
49
+ Scenario:
50
+ Given passing
51
+ Scenario:
52
+ Given failing
53
+ Scenario:
54
+ Given passing
55
+ """
56
+ When I run "behave --format=plain features/issue64_case2.feature"
57
+ Then it should fail with:
58
+ """
59
+ 0 features passed, 1 failed, 0 skipped
60
+ 2 scenarios passed, 1 failed, 0 skipped
61
+ """
62
+
63
+ Scenario: Failing in Last Scenario
64
+ Given a file named "features/issue64_case3.feature" with:
65
+ """
66
+ Feature: Failing in Last Scenario
67
+ Scenario:
68
+ Given passing
69
+ Scenario:
70
+ Given passing
71
+ Scenario:
72
+ Given failing
73
+ """
74
+ When I run "behave --format=plain features/issue64_case3.feature"
75
+ Then it should fail with:
76
+ """
77
+ 0 features passed, 1 failed, 0 skipped
78
+ 2 scenarios passed, 1 failed, 0 skipped
79
+ """
80
+
81
+ Scenario: Failing in First and Last Scenario
82
+ Given a file named "features/issue64_case4.feature" with:
83
+ """
84
+ Feature: Failing in First and Last Scenario
85
+ Scenario:
86
+ Given failing
87
+ Scenario:
88
+ Given passing
89
+ Scenario:
90
+ Given failing
91
+ """
92
+ When I run "behave --format=plain features/issue64_case4.feature"
93
+ Then it should fail with:
94
+ """
95
+ 0 features passed, 1 failed, 0 skipped
96
+ 1 scenario passed, 2 failed, 0 skipped
97
+ """
@@ -0,0 +1,18 @@
1
+ @issue
2
+ Feature: Issue #65 Unrecognized --tag-help argument
3
+
4
+ The "behave --help" output refers to the option "--tag-help"
5
+ in the description of the "--tags" option.
6
+ The correct option for more help on tags is "--tags-help".
7
+
8
+ Scenario: Ensure environment assumptions are correct (Sanity Check)
9
+ Given a new working directory
10
+ When I run "behave --help"
11
+ Then the command output should contain:
12
+ """
13
+ --tags-help
14
+ """
15
+ But the command output should not contain:
16
+ """
17
+ --tag-help
18
+ """
@@ -0,0 +1,80 @@
1
+ @issue
2
+ Feature: Issue #66: context.text and context.table are not cleared
3
+
4
+ I noticed that context.table and context.text survive after the step is finished.
5
+
6
+
7
+ Background: Test Setup
8
+ Given a new working directory
9
+ And a file named "features/steps/steps.py" with:
10
+ """
11
+ from behave import given, when, then
12
+ from hamcrest import assert_that, equal_to, is_not, is_, none
13
+ import six
14
+
15
+ @given(u'a step with multiline text')
16
+ def step(context):
17
+ assert context.text is not None
18
+ assert context.text, "Ensure non-empty"
19
+ assert isinstance(context.text, six.string_types)
20
+
21
+ @given(u'a step with a table')
22
+ def step(context):
23
+ assert context.table is not None
24
+
25
+ @when(u'I check the "context.{name}" attribute')
26
+ def step(context, name):
27
+ context.name = name
28
+ context.value = getattr(context, name, None)
29
+
30
+ @then(u'its value is None')
31
+ def step(context):
32
+ assert_that(context.value, is_(none()))
33
+
34
+ @then(u'its value is "{value}"')
35
+ def step(context, value):
36
+ assert_that(context.value, equal_to(value))
37
+
38
+ @then(u'its value is not "{value}"')
39
+ def step(context, value):
40
+ assert_that(value, is_not(equal_to(context.value)))
41
+ """
42
+
43
+ Scenario: Ensure multiline text data is cleared for next step
44
+ Given a file named "features/issue66_case1.feature" with:
45
+ """
46
+ Feature:
47
+ Scenario:
48
+ Given a step with multiline text:
49
+ '''
50
+ Alice, Bob and Charly
51
+ '''
52
+ When I check the "context.text" attribute
53
+ Then its value is not "Alice, Bob and Charly"
54
+ But its value is None
55
+ """
56
+ When I run "behave -f plain features/issue66_case1.feature"
57
+ Then it should pass with:
58
+ """
59
+ 1 scenario passed, 0 failed, 0 skipped
60
+ 4 steps passed, 0 failed, 0 skipped, 0 undefined
61
+ """
62
+
63
+ Scenario: Ensure table data is cleared for next step
64
+ Given a file named "features/issue66_case2.feature" with:
65
+ """
66
+ Feature:
67
+ Scenario:
68
+ Given a step with a table:
69
+ | name | gender |
70
+ | Alice | female |
71
+ | Bob | male |
72
+ When I check the "context.table" attribute
73
+ Then its value is None
74
+ """
75
+ When I run "behave -f plain features/issue66_case2.feature"
76
+ Then it should pass with:
77
+ """
78
+ 1 scenario passed, 0 failed, 0 skipped
79
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
80
+ """
@@ -0,0 +1,90 @@
1
+ @issue
2
+ Feature: Issue #67: JSON formatter cannot serialize tables.
3
+
4
+ The JSON formatter cannot handle tables (currently):
5
+
6
+ * Table as setup/intermediate/result table in steps of scenario
7
+ * Examples tables in a ScenarioOutline
8
+
9
+ A JSON exception occurs when such a feature file should be processed.
10
+
11
+
12
+ Scenario: Scenario with Tables
13
+ Given a new working directory
14
+ And a file named "features/steps/steps1.py" with:
15
+ """
16
+ from behave import given, when, then
17
+
18
+ @given(u'I add the following employees')
19
+ def step(context):
20
+ pass # -- SKIP: Table processing here.
21
+
22
+ @when(u'I select department "{department}"')
23
+ def step(context, department):
24
+ context.department = department
25
+
26
+ @then(u'I get the following employees')
27
+ def step(context):
28
+ pass # -- SKIP: Table processing here.
29
+ """
30
+ And a file named "features/issue67_case1.feature" with:
31
+ """
32
+ Feature: Scenario with Tables
33
+ Scenario:
34
+ Given I add the following employees:
35
+ | name | department |
36
+ | Alice | Wonderland |
37
+ | Bob | Moonwalk |
38
+ When I select department "Wonderland"
39
+ Then I get the following employees:
40
+ | name | department |
41
+ | Alice | Wonderland |
42
+ """
43
+ When I run "behave -f json features/issue67_case1.feature"
44
+ Then it should pass with:
45
+ """
46
+ 1 scenario passed, 0 failed, 0 skipped
47
+ 3 steps passed, 0 failed, 0 skipped, 0 undefined
48
+ """
49
+ But the command output should not contain:
50
+ """
51
+ TypeError: <Row [u'Alice', u'Wonderland']> is not JSON serializable
52
+ """
53
+
54
+ Scenario: ScenarioOutline with Examples Table
55
+ Given a file named "features/steps/steps2.py" with:
56
+ """
57
+ from behave import given, when, then
58
+
59
+ @given(u'a step with "{name}"')
60
+ def step(context, name):
61
+ context.name = name
62
+
63
+ @when(u'a step with "{name}" occurs')
64
+ def step(context, name):
65
+ assert context.name == name
66
+
67
+ @then(u'a step with "{name}" is reached')
68
+ def step(context, name):
69
+ assert context.name == name
70
+ """
71
+ And a file named "features/issue67_case2.feature" with:
72
+ """
73
+ Feature: ScenarioOutline with Examples Table
74
+ Scenario Outline:
75
+ Given a step with "<name>"
76
+ When a step with "<name>" occurs
77
+ Then a step with "<name>" is reached
78
+
79
+ Examples:
80
+ |name |
81
+ |Alice|
82
+ |Bob |
83
+ """
84
+ When I run "behave -f json features/issue67_case2.feature"
85
+ Then it should pass with:
86
+ """
87
+ 2 scenarios passed, 0 failed, 0 skipped
88
+ 6 steps passed, 0 failed, 0 skipped, 0 undefined
89
+ """
90
+
@@ -0,0 +1,64 @@
1
+ @issue
2
+ Feature: Issue #69: JUnitReporter: Fault when processing ScenarioOutlines with failing steps
3
+
4
+ The problem occurs when "behave --junit ..." is used
5
+ And a feature contains one or more ScenarioOutline(s) with failing steps.
6
+
7
+ The JUnitReport does not process ScenarioOutline correctly (logic-error).
8
+ Therefore, Scenarios of a ScenarioOutline are processes as Scenario steps.
9
+ This causes problems when the step.status is "failed".
10
+
11
+ RELATED:
12
+ * issue #63
13
+
14
+ Background: Test Setup
15
+ Given a new working directory
16
+ And a file named "features/steps/steps.py" with:
17
+ """
18
+ from behave import given
19
+
20
+ @given(u'a {outcome} step with "{name}"')
21
+ def step(context, outcome, name):
22
+ context.name = name
23
+ assert outcome == "passing"
24
+
25
+ @when(u'a {outcome} step with "{name}" occurs')
26
+ def step(context, outcome, name):
27
+ assert outcome == "passing"
28
+ assert context.name == name
29
+
30
+ @then(u'a {outcome} step with "{name}" is reached')
31
+ def step(context, outcome, name):
32
+ assert outcome == "passing"
33
+ assert context.name == name
34
+ """
35
+
36
+ Scenario: ScenarioOutline with Failing Steps
37
+ Given a file named "features/issue63_case2.feature" with:
38
+ """
39
+ Feature: ScenarioOutline with Passing and Failing Steps
40
+ Scenario Outline:
41
+ Given a passing step with "<name>"
42
+ When a failing step with "<name>" occurs
43
+ Then a passing step with "<name>" is reached
44
+
45
+ Examples:
46
+ |name |
47
+ |Alice|
48
+ |Bob |
49
+ """
50
+ When I run "behave -c --junit features/issue63_case2.feature"
51
+ Then it should fail with:
52
+ """
53
+ 0 scenarios passed, 2 failed, 0 skipped
54
+ 2 steps passed, 2 failed, 2 skipped, 0 undefined
55
+ """
56
+ But the command output should not contain:
57
+ """
58
+ AttributeError: 'Scenario' object has no attribute 'exception'
59
+ """
60
+ And the command output should not contain:
61
+ """
62
+ behave/reporter/junit.py
63
+ """
64
+