behavex 4.1.2__py3-none-any.whl

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 (373) hide show
  1. behavex/.DS_Store +0 -0
  2. behavex/__init__.py +14 -0
  3. behavex/__main__.py +4 -0
  4. behavex/__pycache__/__init__.cpython-39.pyc +0 -0
  5. behavex/__pycache__/conf_mgr.cpython-39.pyc +0 -0
  6. behavex/__pycache__/execution_singleton.cpython-39.pyc +0 -0
  7. behavex/__pycache__/global_vars.cpython-39.pyc +0 -0
  8. behavex/__pycache__/utils.cpython-39.pyc +0 -0
  9. behavex/arguments.py +332 -0
  10. behavex/conf_behavex.cfg +5 -0
  11. behavex/conf_logging.cfg +26 -0
  12. behavex/conf_mgr.py +135 -0
  13. behavex/environment.py +247 -0
  14. behavex/execution_singleton.py +10 -0
  15. behavex/global_vars.py +98 -0
  16. behavex/outputs/__init__.py +2 -0
  17. behavex/outputs/__pycache__/__init__.cpython-39.pyc +0 -0
  18. behavex/outputs/__pycache__/jinja_mgr.cpython-39.pyc +0 -0
  19. behavex/outputs/__pycache__/output_strings.cpython-39.pyc +0 -0
  20. behavex/outputs/__pycache__/report_html.cpython-39.pyc +0 -0
  21. behavex/outputs/__pycache__/report_utils.cpython-39.pyc +0 -0
  22. behavex/outputs/bootstrap/css/behavex.css +386 -0
  23. behavex/outputs/bootstrap/css/bootstrap-theme.css +587 -0
  24. behavex/outputs/bootstrap/css/bootstrap-theme.min.css +6 -0
  25. behavex/outputs/bootstrap/css/bootstrap-theme.min.css.map +1 -0
  26. behavex/outputs/bootstrap/css/bootstrap.css +6757 -0
  27. behavex/outputs/bootstrap/css/bootstrap.min.css +6 -0
  28. behavex/outputs/bootstrap/css/bootstrap.min.css.map +1 -0
  29. behavex/outputs/bootstrap/css/pace-theme-loading-bar.min.css +1 -0
  30. behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  31. behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  32. behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  33. behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  34. behavex/outputs/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  35. behavex/outputs/bootstrap/js/bootstrap.js +2377 -0
  36. behavex/outputs/bootstrap/js/bootstrap.min.js +7 -0
  37. behavex/outputs/bootstrap/js/chart.js +12818 -0
  38. behavex/outputs/bootstrap/js/jquery-1.11.0.min.js +4 -0
  39. behavex/outputs/bootstrap/js/jquery-ui.min.js +7 -0
  40. behavex/outputs/bootstrap/js/jquery.tablesorter.min.js +2 -0
  41. behavex/outputs/bootstrap/js/jquery.tooltipster.min.js +1 -0
  42. behavex/outputs/bootstrap/js/pace.min.js +2 -0
  43. behavex/outputs/jinja/base.jinja2 +167 -0
  44. behavex/outputs/jinja/main.jinja2 +1047 -0
  45. behavex/outputs/jinja/manifest.jinja2 +18 -0
  46. behavex/outputs/jinja/xml.jinja2 +79 -0
  47. behavex/outputs/jinja/xml_json.jinja2 +67 -0
  48. behavex/outputs/jinja_mgr.py +352 -0
  49. behavex/outputs/output_strings.py +71 -0
  50. behavex/outputs/report_html.py +249 -0
  51. behavex/outputs/report_json.py +278 -0
  52. behavex/outputs/report_utils.py +471 -0
  53. behavex/outputs/report_xml.py +110 -0
  54. behavex/progress_bar.py +62 -0
  55. behavex/runner.py +1239 -0
  56. behavex/steps/__init__.py +4 -0
  57. behavex/utils.py +655 -0
  58. behavex-4.1.2.dist-info/METADATA +357 -0
  59. behavex-4.1.2.dist-info/RECORD +373 -0
  60. behavex-4.1.2.dist-info/WHEEL +5 -0
  61. behavex-4.1.2.dist-info/entry_points.txt +2 -0
  62. behavex-4.1.2.dist-info/licenses/LICENSE +21 -0
  63. behavex-4.1.2.dist-info/top_level.txt +8 -0
  64. build/lib/behavex/__init__.py +14 -0
  65. build/lib/behavex/__main__.py +4 -0
  66. build/lib/behavex/arguments.py +332 -0
  67. build/lib/behavex/conf_mgr.py +135 -0
  68. build/lib/behavex/environment.py +247 -0
  69. build/lib/behavex/execution_singleton.py +10 -0
  70. build/lib/behavex/global_vars.py +98 -0
  71. build/lib/behavex/outputs/__init__.py +2 -0
  72. build/lib/behavex/outputs/jinja_mgr.py +352 -0
  73. build/lib/behavex/outputs/output_strings.py +71 -0
  74. build/lib/behavex/outputs/report_html.py +249 -0
  75. build/lib/behavex/outputs/report_json.py +278 -0
  76. build/lib/behavex/outputs/report_utils.py +471 -0
  77. build/lib/behavex/outputs/report_xml.py +110 -0
  78. build/lib/behavex/progress_bar.py +62 -0
  79. build/lib/behavex/runner.py +1239 -0
  80. build/lib/behavex/steps/__init__.py +4 -0
  81. build/lib/behavex/utils.py +655 -0
  82. build/lib/build/lib/behavex/__init__.py +14 -0
  83. build/lib/build/lib/behavex/__main__.py +4 -0
  84. build/lib/build/lib/behavex/arguments.py +332 -0
  85. build/lib/build/lib/behavex/conf_mgr.py +135 -0
  86. build/lib/build/lib/behavex/environment.py +247 -0
  87. build/lib/build/lib/behavex/execution_singleton.py +10 -0
  88. build/lib/build/lib/behavex/global_vars.py +98 -0
  89. build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  90. build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  91. build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  92. build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  93. build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  94. build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  95. build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  96. build/lib/build/lib/behavex/progress_bar.py +62 -0
  97. build/lib/build/lib/behavex/runner.py +1239 -0
  98. build/lib/build/lib/behavex/steps/__init__.py +4 -0
  99. build/lib/build/lib/behavex/utils.py +655 -0
  100. build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
  101. build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
  102. build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
  103. build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
  104. build/lib/build/lib/build/lib/behavex/environment.py +247 -0
  105. build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
  106. build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
  107. build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  108. build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  109. build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  110. build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  111. build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  112. build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  113. build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  114. build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
  115. build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
  116. build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
  117. build/lib/build/lib/build/lib/behavex/utils.py +655 -0
  118. build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
  119. build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
  120. build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
  121. build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
  122. build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
  123. build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
  124. build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
  125. build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  126. build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  127. build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  128. build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  129. build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  130. build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  131. build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  132. build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
  133. build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
  134. build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
  135. build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
  136. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
  137. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
  138. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
  139. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
  140. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
  141. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
  142. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
  143. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  144. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  145. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  146. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  147. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  148. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  149. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  150. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
  151. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
  152. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
  153. build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
  154. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
  155. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
  156. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
  157. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
  158. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
  159. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
  160. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
  161. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  162. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  163. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  164. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  165. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  166. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  167. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  168. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
  169. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
  170. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
  171. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
  172. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
  173. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
  174. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
  175. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
  176. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
  177. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
  178. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
  179. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  180. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  181. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  182. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  183. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  184. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  185. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  186. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
  187. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
  188. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
  189. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
  190. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
  191. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
  192. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
  193. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
  194. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
  195. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
  196. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
  197. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  198. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  199. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  200. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  201. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  202. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  203. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  204. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
  205. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
  206. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
  207. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
  208. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
  209. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
  210. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
  211. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
  212. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
  213. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
  214. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
  215. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  216. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  217. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  218. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  219. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  220. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  221. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  222. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
  223. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
  224. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
  225. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
  226. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__init__.py +14 -0
  227. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/__main__.py +4 -0
  228. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/arguments.py +332 -0
  229. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/conf_mgr.py +135 -0
  230. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/environment.py +247 -0
  231. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/execution_singleton.py +10 -0
  232. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/global_vars.py +98 -0
  233. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/__init__.py +2 -0
  234. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/jinja_mgr.py +352 -0
  235. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/output_strings.py +71 -0
  236. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_html.py +249 -0
  237. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_json.py +278 -0
  238. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_utils.py +471 -0
  239. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/outputs/report_xml.py +110 -0
  240. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/progress_bar.py +62 -0
  241. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/runner.py +1239 -0
  242. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/steps/__init__.py +4 -0
  243. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/behavex/utils.py +655 -0
  244. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
  245. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
  246. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  247. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  248. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
  249. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
  250. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
  251. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  252. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  253. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
  254. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
  255. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
  256. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
  257. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
  258. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
  259. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  260. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  261. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
  262. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
  263. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
  264. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  265. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  266. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
  267. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
  268. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
  269. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
  270. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
  271. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
  272. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  273. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  274. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
  275. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
  276. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
  277. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  278. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  279. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
  280. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
  281. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
  282. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
  283. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
  284. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
  285. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  286. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  287. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
  288. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
  289. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
  290. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  291. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  292. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
  293. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
  294. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
  295. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
  296. build/lib/build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
  297. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
  298. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  299. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  300. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
  301. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
  302. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
  303. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  304. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  305. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
  306. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
  307. build/lib/build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
  308. build/lib/build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
  309. build/lib/build/lib/build/lib/build/lib/docs/conf.py +57 -0
  310. build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
  311. build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  312. build/lib/build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  313. build/lib/build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
  314. build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
  315. build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
  316. build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  317. build/lib/build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  318. build/lib/build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
  319. build/lib/build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
  320. build/lib/build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
  321. build/lib/build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
  322. build/lib/build/lib/build/lib/docs/conf.py +57 -0
  323. build/lib/build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
  324. build/lib/build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  325. build/lib/build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  326. build/lib/build/lib/build/lib/tests/features/environment.py +3 -0
  327. build/lib/build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
  328. build/lib/build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
  329. build/lib/build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  330. build/lib/build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  331. build/lib/build/lib/build/lib/tests/features/steps/__init__.py +0 -0
  332. build/lib/build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
  333. build/lib/build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
  334. build/lib/build/lib/build/lib/venv/bin/activate_this.py +32 -0
  335. build/lib/build/lib/docs/conf.py +57 -0
  336. build/lib/build/lib/tests/features/crashing_features/environment.py +44 -0
  337. build/lib/build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  338. build/lib/build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  339. build/lib/build/lib/tests/features/environment.py +3 -0
  340. build/lib/build/lib/tests/features/secondary_features/__init__.py +0 -0
  341. build/lib/build/lib/tests/features/secondary_features/environment.py +6 -0
  342. build/lib/build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  343. build/lib/build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  344. build/lib/build/lib/tests/features/steps/__init__.py +0 -0
  345. build/lib/build/lib/tests/features/steps/execution_steps.py +307 -0
  346. build/lib/build/lib/tests/features/steps/install_steps.py +22 -0
  347. build/lib/build/lib/venv/bin/activate_this.py +32 -0
  348. build/lib/docs/conf.py +57 -0
  349. build/lib/tests/features/crashing_features/environment.py +44 -0
  350. build/lib/tests/features/crashing_features/steps/__init__.py +0 -0
  351. build/lib/tests/features/crashing_features/steps/crashing_steps.py +41 -0
  352. build/lib/tests/features/environment.py +3 -0
  353. build/lib/tests/features/secondary_features/__init__.py +0 -0
  354. build/lib/tests/features/secondary_features/environment.py +6 -0
  355. build/lib/tests/features/secondary_features/steps/__init__.py +0 -0
  356. build/lib/tests/features/secondary_features/steps/secondary_steps.py +58 -0
  357. build/lib/tests/features/steps/__init__.py +0 -0
  358. build/lib/tests/features/steps/execution_steps.py +307 -0
  359. build/lib/tests/features/steps/install_steps.py +22 -0
  360. build/lib/venv/bin/activate_this.py +32 -0
  361. docs/conf.py +57 -0
  362. tests/features/crashing_features/environment.py +44 -0
  363. tests/features/crashing_features/steps/__init__.py +0 -0
  364. tests/features/crashing_features/steps/crashing_steps.py +41 -0
  365. tests/features/environment.py +3 -0
  366. tests/features/secondary_features/__init__.py +0 -0
  367. tests/features/secondary_features/environment.py +6 -0
  368. tests/features/secondary_features/steps/__init__.py +0 -0
  369. tests/features/secondary_features/steps/secondary_steps.py +58 -0
  370. tests/features/steps/__init__.py +0 -0
  371. tests/features/steps/execution_steps.py +307 -0
  372. tests/features/steps/install_steps.py +22 -0
  373. venv/bin/activate_this.py +32 -0
behavex/.DS_Store ADDED
Binary file
behavex/__init__.py ADDED
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+ """ Create environment variables related to the framework path and config,
3
+ that are needed in framework modules.
4
+ """
5
+ # __future__ import absolute_import added for compatibility
6
+ from __future__ import absolute_import
7
+
8
+ import os
9
+
10
+ # Set the framework path
11
+ os.environ['BEHAVEX_PATH'] = os.path.dirname(os.path.realpath(__file__))
12
+ # Set the features path
13
+ os.environ['FEATURES_PATH'] = os.environ.get('FEATURES_PATH', 'features')
14
+
behavex/__main__.py ADDED
@@ -0,0 +1,4 @@
1
+ from behavex.runner import main
2
+
3
+ if __name__ == "__main__":
4
+ main()
Binary file
behavex/arguments.py ADDED
@@ -0,0 +1,332 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+
4
+ /*
5
+ * BehaveX - Agile test wrapper on top of Behave (BDD)
6
+ */
7
+
8
+ Parse all framework arguments, the ones from BehaveX and
9
+ the ones from Behave supported by the wrapper
10
+ """
11
+ # __future__ has been added to maintain compatibility
12
+ from __future__ import absolute_import
13
+
14
+ import argparse
15
+
16
+ BEHAVE_ARGS = [
17
+ 'no_color',
18
+ 'color',
19
+ 'define',
20
+ 'exclude',
21
+ 'include',
22
+ 'no_junit',
23
+ 'junit',
24
+ 'junit_directory',
25
+ 'steps_catalog',
26
+ 'no_skipped',
27
+ 'show_skipped',
28
+ 'lang',
29
+ 'no_snippets',
30
+ 'snippets',
31
+ 'no_multiline',
32
+ 'multiline',
33
+ 'no_capture',
34
+ 'name',
35
+ 'capture',
36
+ 'no_capture_stderr',
37
+ 'capture_stderr',
38
+ 'no_logcapture',
39
+ 'logcapture',
40
+ 'logging_level',
41
+ 'logging_format',
42
+ 'logging_datefmt',
43
+ 'logging_filter',
44
+ 'logging_clear_handlers',
45
+ 'no_summary',
46
+ 'summary',
47
+ 'outfile',
48
+ 'quiet',
49
+ 'no_source',
50
+ 'show_source',
51
+ 'stage',
52
+ 'stop',
53
+ 'tags',
54
+ 'no_timings',
55
+ 'show_timings',
56
+ 'verbose',
57
+ 'wip',
58
+ 'expand',
59
+ 'lang_list',
60
+ 'lang_help',
61
+ 'tags_help',
62
+ ]
63
+
64
+ BEHAVEX_ARGS = [
65
+ 'output_folder',
66
+ 'config',
67
+ 'dry_run',
68
+ 'tags',
69
+ 'parallel_scheme',
70
+ 'parallel_processes',
71
+ 'show_progress_bar',
72
+ ]
73
+
74
+
75
+ def parse_arguments(args):
76
+ """Process all command line arguments"""
77
+ parser = argparse.ArgumentParser(
78
+ description='BehaveX - test automation wrapper on top of Behave'
79
+ )
80
+ parser.add_argument("paths", nargs="*",
81
+ help="Features path")
82
+ parser.add_argument(
83
+ '-c',
84
+ '--config',
85
+ help='BehaveX configuration file to use by default.',
86
+ required=False,
87
+ )
88
+ parser.add_argument(
89
+ '-t',
90
+ '--tags',
91
+ action='append',
92
+ help='Tags used to properly filter the tests to run. \
93
+ When multiple --tags (-t) arguments are \
94
+ provided it means a logical AND \
95
+ (e.g. -t @TAG_1 -t @TAG_2 means \
96
+ @TAG_1 AND @TAG_2). \
97
+ When multiple comma separated tags are \
98
+ provided as part of the same --tags (-t) \
99
+ argument it means a logical OR \
100
+ (e.g. -t @TAG_1,@TAG_2 means \
101
+ @TAG_1 OR @TAG_2)',
102
+ required=False,
103
+ )
104
+ parser.add_argument(
105
+ '-o',
106
+ '--output-folder',
107
+ default='',
108
+ help='Specifies the output folder path where the test report will be stored. '
109
+ 'The path can be specified as a relative path. The value of this argument '
110
+ 'can be accessed in testing implementations using the "OUTPUT" environment variable',
111
+ required=False,
112
+ )
113
+ parser.add_argument(
114
+ '-d',
115
+ '--dry-run',
116
+ default='',
117
+ action='store_true',
118
+ help='Invokes formatters without executing the steps.',
119
+ required=False,
120
+ )
121
+
122
+ # ------------------- Behave arguments -------------------#
123
+ parser.add_argument(
124
+ '--no-color',
125
+ '--no_color',
126
+ help='Disable the use of ANSI color escapes.',
127
+ action='store_true',
128
+ required=False,
129
+ )
130
+ parser.add_argument(
131
+ '--color',
132
+ help='Use ANSI color escapes. This is the default '
133
+ 'behaviour. This switch is used to override a '
134
+ 'configuration file setting.',
135
+ action='store_true',
136
+ required=False,
137
+ )
138
+ parser.add_argument(
139
+ '-D',
140
+ '--define',
141
+ help='Define user-specific data in config.userdata '
142
+ 'dictionary. Example: -D foo=bar to store it in '
143
+ "config.userdata['foo'].",
144
+ action='append',
145
+ required=False,
146
+ )
147
+ parser.add_argument(
148
+ '--exclude',
149
+ help="Don't run feature files matching regular expression PATTERN.",
150
+ required=False,
151
+ )
152
+ parser.add_argument(
153
+ '-i',
154
+ '--include',
155
+ help='Only run feature files matching regular expression PATTERN.',
156
+ required=False,
157
+ )
158
+ parser.add_argument(
159
+ '--name',
160
+ help='Execute feature elements matching a part of the given name. '
161
+ 'If this option is specified more than once, '
162
+ 'it will match against all given names.',
163
+ required=False,
164
+ )
165
+ parser.add_argument(
166
+ '--no-capture',
167
+ '--no_capture',
168
+ help="Don't capture stdout (any stdout output will be printed immediately.)",
169
+ default=False,
170
+ action='store_true',
171
+ required=False,
172
+ )
173
+ parser.add_argument(
174
+ '--capture',
175
+ help='Capture stdout (any stdout output will be '
176
+ 'printed if there is a failure.) This is the '
177
+ 'default behaviour. This switch is used to '
178
+ 'override a configuration file setting.',
179
+ action='store_true',
180
+ required=False,
181
+ )
182
+ parser.add_argument(
183
+ '--no-capture-stderr',
184
+ '--no_capture_stderr',
185
+ help="Don't capture stderr (any stderr output will be printed immediately.)",
186
+ default=False,
187
+ action='store_true',
188
+ required=False,
189
+ )
190
+ parser.add_argument(
191
+ '--capture-stderr',
192
+ '--capture_stderr',
193
+ help='Capture stderr (any stderr output will be pri'
194
+ 'nted if there is a failure) This is the default'
195
+ ' behaviour. This switch is used to override a '
196
+ 'configuration file setting.',
197
+ default=False,
198
+ action='store_true',
199
+ required=False,
200
+ )
201
+ parser.add_argument(
202
+ '--no-logcapture',
203
+ '--no_logcapture',
204
+ help="Don't capture logging. Logging configuration will be left intact.",
205
+ action='store_true',
206
+ default=False,
207
+ required=False,
208
+ )
209
+ parser.add_argument(
210
+ '--log-capture',
211
+ '--log_capture',
212
+ help='Capture logging. All logging during a step will'
213
+ ' be captured and displayed in the event of a '
214
+ 'failure. This is the default behaviour. This '
215
+ 'switch is used to override a configuration file'
216
+ ' setting.',
217
+ action='store_true',
218
+ required=False,
219
+ )
220
+ # parser.add_argument('--summary',
221
+ # help="Display the summary at the end of the run.",
222
+ # action="store_true",
223
+ # required=False)
224
+ # parser.add_argument('-q',
225
+ # '--quiet',
226
+ # help="Alias for --no-snippets --no-source.",
227
+ # action="store_true",
228
+ # required=False)
229
+ # parser.add_argument('-s',
230
+ # '--no-source',
231
+ # help="Don't print the file and line of the step d"
232
+ # "efinition with the steps.",
233
+ # action="store_true",
234
+ # required=False)
235
+ # parser.add_argument('--show-source',
236
+ # help="Print the file and line of the step definition "
237
+ # "with the steps. This is the default behaviour."
238
+ # "This switch is used to override a configuration"
239
+ # " file setting.",
240
+ # action='store_true',
241
+ # required=False)
242
+ parser.add_argument(
243
+ '-ns',
244
+ '--no-snippets',
245
+ '--no_snippets',
246
+ help="Don't print snippets for unimplemented steps.",
247
+ default=False,
248
+ action='store_true',
249
+ required=False,
250
+ )
251
+ parser.add_argument(
252
+ '--stop',
253
+ help='Specifies that the test execution should stop at the first failure. '
254
+ 'Note that this argument is not supported for parallel test executions',
255
+ action='store_true',
256
+ required=False,
257
+ )
258
+ parser.add_argument(
259
+ '--tags-help',
260
+ '--tags_help',
261
+ help='Show help for tag expressions.',
262
+ action='store_true',
263
+ required=False,
264
+ )
265
+ # -------------------- adding lastly ---------------------------------------
266
+ parser.add_argument(
267
+ '--logging-level',
268
+ '--logging_level',
269
+ default='INFO',
270
+ choices=['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG', 'NOTSET'],
271
+ help='Specifies the logging level to capture.',
272
+ required=False,
273
+ )
274
+ parser.add_argument(
275
+ '--parallel-processes',
276
+ default=1,
277
+ type=int,
278
+ help='Specifies the number of parallel processes that can be executed simultaneously.',
279
+ required=False,
280
+ )
281
+ parser.add_argument(
282
+ '--parallel-scheme',
283
+ choices=['feature', 'scenario'],
284
+ default='scenario',
285
+ help="Specifies whether parallel execution should be performed at the scenario or feature level.",
286
+ required=False,
287
+ )
288
+ parser.add_argument(
289
+ '--parallel-delay',
290
+ type=int,
291
+ default=0,
292
+ help='Delay in milliseconds before starting each parallel process')
293
+ parser.add_argument(
294
+ '-ip',
295
+ '--include-paths',
296
+ default=[],
297
+ nargs='*',
298
+ help='Filters the test set to the specified list of features.'
299
+ 'or feature file locations (FEATURE_FILE:LINE).',
300
+ )
301
+ parser.add_argument(
302
+ '-rf',
303
+ '--rerun-failures',
304
+ help='Enables re-execution of the failing scenarios. '
305
+ 'After each execution, the failing scenarios are saved '
306
+ 'in a "failing_scenarios.txt" file in the output folder. '
307
+ 'This argument specifies the location of the "failing_scenarios.txt" file. '
308
+ 'For example: --rf ./output/failing_scenarios.txt',
309
+ required=False
310
+ )
311
+ parser.add_argument(
312
+ '-spb',
313
+ '--show-progress-bar',
314
+ help="Shows the execution progress bar in console.",
315
+ default=False,
316
+ action='store_true',
317
+ required=False,
318
+ )
319
+
320
+ # parser.add_argument('--logging-format',
321
+ # help="Specify custom format to print statements. Uses "
322
+ # " the same format as used by standard logging "
323
+ # "handlers. The default is (%levelname)s:w%(name)s:"
324
+ # "%(message)s%.",
325
+ # required=False)
326
+ # parser.add_argument('--logging-datefmt',
327
+ # help="Specify custom date/time format to print "
328
+ # "statements. Uses the same format as used by "
329
+ # "standard logging handlers.",
330
+ # required=False)
331
+ #
332
+ return parser.parse_args(args)
@@ -0,0 +1,5 @@
1
+ [output]
2
+ path=output
3
+
4
+ [test_run]
5
+ tags_to_skip=
@@ -0,0 +1,26 @@
1
+ [loggers]
2
+ keys=root
3
+
4
+ [handlers]
5
+ keys=consoleHandler
6
+
7
+ [formatters]
8
+ keys=simpleFormatter
9
+
10
+ [file_handler]
11
+ encoding=utf-8-sig
12
+
13
+ [logger_root]
14
+ level=DEBUG
15
+ handlers=consoleHandler
16
+
17
+ [handler_consoleHandler]
18
+ class=StreamHandler
19
+ level=DEBUG
20
+ encoding=utf-8-sig
21
+ formatter=simpleFormatter
22
+ args=(sys.stdout, )
23
+
24
+ [formatter_simpleFormatter]
25
+ format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
26
+ datefmt=%H:%M:%S
behavex/conf_mgr.py ADDED
@@ -0,0 +1,135 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ /*
4
+ * BehaveX - Agile test wrapper on top of Behave (BDD)
5
+ */
6
+
7
+ This module process the configuration required by the framework. Default values
8
+ are used if no config file is provided.
9
+ """
10
+ # pylint: disable=W0703
11
+ # pylint: disable=W0603
12
+
13
+ from __future__ import absolute_import
14
+
15
+ import os
16
+
17
+ from configobj import ConfigObj
18
+ from validate import Validator
19
+
20
+ from behavex.execution_singleton import ExecutionSingleton
21
+
22
+ CONFIG = None
23
+ CONFIG_PATH = None
24
+
25
+
26
+ def get_config():
27
+ """Returns a dictionary containing
28
+ the framework configuration values"""
29
+ config_spec = """
30
+ [output]
31
+ path=string(default="output")
32
+
33
+ [progress_bar]
34
+ print_updates_in_new_lines=boolean(default=False)
35
+
36
+ [test_run]
37
+ tags_to_skip=string(default="")
38
+
39
+ [params]
40
+ requirements_config=string(default="")
41
+ tags=list(default=list())
42
+ dry_run=boolean(default=False)
43
+ no_color=boolean(default=False)
44
+ define=string(default="")
45
+ exclude=string(default="")
46
+ include=string(default="")
47
+ name=string(default="")
48
+ no_capture=boolean(default=False)
49
+ capture=boolean(default=True)
50
+ capture_stderr=boolean(default=False)
51
+ no_logcapture=boolean(default=False)
52
+ logcapture=boolean(default=True)
53
+ no_snippets=boolean(default=False)
54
+ stop=boolean(default=False)
55
+ tags_help=boolean(default=False)
56
+ logging_level=option('CRITICAL', \
57
+ 'ERROR', \
58
+ 'WARNING', \
59
+ 'INFO', \
60
+ 'DEBUG', \
61
+ 'NOTSET', \
62
+ default='INFO')
63
+ parallel_processes=integer(default=1)
64
+ parallel_scheme=option('feature', 'scenario', default='scenario')
65
+ include_paths=list(default=list())
66
+ rerun_failures=string(default="")
67
+ """
68
+ global CONFIG
69
+ global CONFIG_PATH
70
+ if CONFIG is None or CONFIG_PATH != os.environ.get('CONFIG'):
71
+ CONFIG_PATH = os.environ.get('CONFIG')
72
+ spec = config_spec.split('\n')
73
+ validator = Validator()
74
+ CONFIG = ConfigObj(CONFIG_PATH, configspec=spec)
75
+ CONFIG.validate(validator, copy=True)
76
+
77
+ return CONFIG
78
+
79
+
80
+ class ConfigRun(metaclass=ExecutionSingleton):
81
+ def __init__(self):
82
+ self.config = get_config()
83
+ self.args = None
84
+ self.environ = {}
85
+
86
+ def prepare_environment(self):
87
+ output = self.get_param('output.path', 'output_folder')
88
+ self.environ['output'] = output
89
+ self.environ['temp'] = os.path.join(output, 'temp')
90
+ self.environ['logs'] = os.path.join(output, 'outputs', 'logs')
91
+
92
+ def set_args(self, args):
93
+ self.args = args
94
+ self.prepare_environment()
95
+
96
+ def set_env(self, key, value):
97
+ self.environ[key] = value
98
+
99
+ def get_param_config(self, key_chain):
100
+ keys = key_chain.split('.')
101
+ if len(keys) == 1:
102
+ keys = ['params'] + keys
103
+ dictionary = self.config
104
+ for key in keys:
105
+ result = dictionary.get(key, '')
106
+ if isinstance(result, str):
107
+ return result
108
+ if isinstance(result, dict):
109
+ dictionary = result
110
+ else:
111
+ return result
112
+ return ''
113
+
114
+ def get_param(self, key_chain, arg=None):
115
+ if not arg:
116
+ arg = key_chain.split('.')[-1]
117
+ if getattr(self.args, arg):
118
+ return getattr(self.args, arg)
119
+ else:
120
+ return self.get_param_config(key_chain)
121
+
122
+ def get_env(self, key, optional=None):
123
+ return self.environ.get(key.lower(), optional)
124
+
125
+
126
+ def get_param(key_chain, arg=None):
127
+ return ConfigRun().get_param(key_chain, arg)
128
+
129
+
130
+ def get_env(key, optional=None):
131
+ return ConfigRun().get_env(key, optional)
132
+
133
+
134
+ def set_env(key, value):
135
+ ConfigRun().set_env(key, value)