cucu 1.0.12__tar.gz → 1.1.1__tar.gz

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.

Potentially problematic release.


This version of cucu might be problematic. Click here for more details.

Files changed (256) hide show
  1. {cucu-1.0.12 → cucu-1.1.1}/.circleci/config.yml +5 -8
  2. {cucu-1.0.12 → cucu-1.1.1}/.github/workflows/build.yml +7 -7
  3. {cucu-1.0.12 → cucu-1.1.1}/.github/workflows/publish-production.yml +1 -1
  4. {cucu-1.0.12 → cucu-1.1.1}/.github/workflows/publish-test.yml +1 -1
  5. cucu-1.1.1/.python-version +1 -0
  6. {cucu-1.0.12 → cucu-1.1.1}/CHANGELOG.md +11 -1
  7. {cucu-1.0.12 → cucu-1.1.1}/PKG-INFO +6 -6
  8. cucu-1.1.1/features/cli/debug.feature +16 -0
  9. {cucu-1.0.12 → cucu-1.1.1}/pyproject.toml +6 -6
  10. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/cli/core.py +6 -6
  11. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/cli/run.py +3 -3
  12. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/environment.py +3 -3
  13. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/logger.py +0 -14
  14. {cucu-1.0.12 → cucu-1.1.1}/uv.lock +154 -318
  15. cucu-1.0.12/.python-version +0 -1
  16. cucu-1.0.12/features/cli/ipdb.feature +0 -16
  17. {cucu-1.0.12 → cucu-1.1.1}/.env +0 -0
  18. {cucu-1.0.12 → cucu-1.1.1}/.github/CODEOWNERS +0 -0
  19. {cucu-1.0.12 → cucu-1.1.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  20. {cucu-1.0.12 → cucu-1.1.1}/.github/workflows/create_a_new_release.yml +0 -0
  21. {cucu-1.0.12 → cucu-1.1.1}/.gitignore +0 -0
  22. {cucu-1.0.12 → cucu-1.1.1}/.pre-commit-config.yaml +0 -0
  23. {cucu-1.0.12 → cucu-1.1.1}/CODE_OF_CONDUCT.md +0 -0
  24. {cucu-1.0.12 → cucu-1.1.1}/CONTRIBUTING.md +0 -0
  25. {cucu-1.0.12 → cucu-1.1.1}/CONTRIBUTORS.md +0 -0
  26. {cucu-1.0.12 → cucu-1.1.1}/LICENSE +0 -0
  27. {cucu-1.0.12 → cucu-1.1.1}/Makefile +0 -0
  28. {cucu-1.0.12 → cucu-1.1.1}/README.md +0 -0
  29. {cucu-1.0.12 → cucu-1.1.1}/bin/cucu +0 -0
  30. {cucu-1.0.12 → cucu-1.1.1}/bin/start_seleniarm_hub.sh +0 -0
  31. {cucu-1.0.12 → cucu-1.1.1}/bin/start_selenium_hub.sh +0 -0
  32. {cucu-1.0.12 → cucu-1.1.1}/cortex.yaml +0 -0
  33. {cucu-1.0.12 → cucu-1.1.1}/data/features/custom_step_test/custom_step.feature +0 -0
  34. {cucu-1.0.12 → cucu-1.1.1}/data/features/custom_step_test/steps/__init__.py +0 -0
  35. {cucu-1.0.12 → cucu-1.1.1}/data/features/custom_step_test/steps/cucu_steps.py +0 -0
  36. {cucu-1.0.12 → cucu-1.1.1}/data/features/echo.feature +0 -0
  37. {cucu-1.0.12 → cucu-1.1.1}/data/features/environment.py +0 -0
  38. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_skipping_scenarios_by_file_presence.feature +0 -0
  39. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_background.feature +0 -0
  40. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_background_using_substeps.feature +0 -0
  41. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_failing_scenario.feature +0 -0
  42. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_failing_scenario_with_table.feature +0 -0
  43. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_failing_scenario_with_web.feature +0 -0
  44. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_logging.feature +0 -0
  45. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_long_names.feature +0 -0
  46. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_mixed_results.feature +0 -0
  47. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_multilines_and_tables.feature +0 -0
  48. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_passing_scenario.feature +0 -0
  49. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_passing_scenario_with_web.feature +0 -0
  50. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_platform_specific_scenarios.feature +0 -0
  51. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_scenario_outline.feature +0 -0
  52. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_scenario_using_nth_type.feature +0 -0
  53. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_tagging.feature +0 -0
  54. {cucu-1.0.12 → cucu-1.1.1}/data/features/feature_with_xml_tags.feature +0 -0
  55. {cucu-1.0.12 → cucu-1.1.1}/data/features/multiple_scenarios_with_browser_steps.feature +0 -0
  56. {cucu-1.0.12 → cucu-1.1.1}/data/features/scenario_stop_retry_early.feature +0 -0
  57. {cucu-1.0.12 → cucu-1.1.1}/data/features/scenario_that_fails_with_after_scenario_steps.feature +0 -0
  58. {cucu-1.0.12 → cucu-1.1.1}/data/features/scenario_that_passes_with_after_scenario_steps.feature +0 -0
  59. {cucu-1.0.12 → cucu-1.1.1}/data/features/scenario_with_console_logs.feature +0 -0
  60. {cucu-1.0.12 → cucu-1.1.1}/data/features/scenario_with_substeps.feature +0 -0
  61. {cucu-1.0.12 → cucu-1.1.1}/data/features/scenario_with_substeps_and_logging.feature +0 -0
  62. {cucu-1.0.12 → cucu-1.1.1}/data/features/slow_features/slow_feature1.feature +0 -0
  63. {cucu-1.0.12 → cucu-1.1.1}/data/features/slow_features/slow_feature2.feature +0 -0
  64. {cucu-1.0.12 → cucu-1.1.1}/data/features/slow_features/slow_feature3.feature +0 -0
  65. {cucu-1.0.12 → cucu-1.1.1}/data/features/slow_features/slow_feature4.feature +0 -0
  66. {cucu-1.0.12 → cucu-1.1.1}/data/features/slow_features/slow_feature5.feature +0 -0
  67. {cucu-1.0.12 → cucu-1.1.1}/data/features/steps/__init__.py +0 -0
  68. {cucu-1.0.12 → cucu-1.1.1}/data/features/steps/cucu_steps.py +0 -0
  69. {cucu-1.0.12 → cucu-1.1.1}/data/features/tagged_features/tagged_feature1.feature +0 -0
  70. {cucu-1.0.12 → cucu-1.1.1}/data/features/tagged_features/tagged_feature2.feature +0 -0
  71. {cucu-1.0.12 → cucu-1.1.1}/data/features/tagged_features/tagged_feature3.feature +0 -0
  72. {cucu-1.0.12 → cucu-1.1.1}/data/features/with_secret/cucurc.yml +0 -0
  73. {cucu-1.0.12 → cucu-1.1.1}/data/features/with_secret/scenario_with_comments.feature +0 -0
  74. {cucu-1.0.12 → cucu-1.1.1}/data/unit/ansi.log +0 -0
  75. {cucu-1.0.12 → cucu-1.1.1}/data/unit/ansi.log.html +0 -0
  76. {cucu-1.0.12 → cucu-1.1.1}/data/www/broken_images.html +0 -0
  77. {cucu-1.0.12 → cucu-1.1.1}/data/www/buttons.html +0 -0
  78. {cucu-1.0.12 → cucu-1.1.1}/data/www/checkboxes.html +0 -0
  79. {cucu-1.0.12 → cucu-1.1.1}/data/www/clipboard.html +0 -0
  80. {cucu-1.0.12 → cucu-1.1.1}/data/www/comboboxes.html +0 -0
  81. {cucu-1.0.12 → cucu-1.1.1}/data/www/console_logging.html +0 -0
  82. {cucu-1.0.12 → cucu-1.1.1}/data/www/cookies.html +0 -0
  83. {cucu-1.0.12 → cucu-1.1.1}/data/www/counter.html +0 -0
  84. {cucu-1.0.12 → cucu-1.1.1}/data/www/drag_drop.html +0 -0
  85. {cucu-1.0.12 → cucu-1.1.1}/data/www/draggables.html +0 -0
  86. {cucu-1.0.12 → cucu-1.1.1}/data/www/dropdowns.html +0 -0
  87. {cucu-1.0.12 → cucu-1.1.1}/data/www/duplicate_buttons.html +0 -0
  88. {cucu-1.0.12 → cucu-1.1.1}/data/www/duplicate_inputs.html +0 -0
  89. {cucu-1.0.12 → cucu-1.1.1}/data/www/dynamic_dropdown.html +0 -0
  90. {cucu-1.0.12 → cucu-1.1.1}/data/www/file.txt +0 -0
  91. {cucu-1.0.12 → cucu-1.1.1}/data/www/files.html +0 -0
  92. {cucu-1.0.12 → cucu-1.1.1}/data/www/frames.html +0 -0
  93. {cucu-1.0.12 → cucu-1.1.1}/data/www/fuzzy_rules.html +0 -0
  94. {cucu-1.0.12 → cucu-1.1.1}/data/www/images.html +0 -0
  95. {cucu-1.0.12 → cucu-1.1.1}/data/www/inputs.html +0 -0
  96. {cucu-1.0.12 → cucu-1.1.1}/data/www/js/util.js +0 -0
  97. {cucu-1.0.12 → cucu-1.1.1}/data/www/links.html +0 -0
  98. {cucu-1.0.12 → cucu-1.1.1}/data/www/nothing_to_see_here.html +0 -0
  99. {cucu-1.0.12 → cucu-1.1.1}/data/www/page_that_loads_forever.html +0 -0
  100. {cucu-1.0.12 → cucu-1.1.1}/data/www/radio_buttons.html +0 -0
  101. {cucu-1.0.12 → cucu-1.1.1}/data/www/stars.png +0 -0
  102. {cucu-1.0.12 → cucu-1.1.1}/data/www/tables.html +0 -0
  103. {cucu-1.0.12 → cucu-1.1.1}/data/www/tabs.html +0 -0
  104. {cucu-1.0.12 → cucu-1.1.1}/data/www/text.html +0 -0
  105. {cucu-1.0.12 → cucu-1.1.1}/features/browser/browser_tab_managemenet.feature +0 -0
  106. {cucu-1.0.12 → cucu-1.1.1}/features/browser/browser_window_managemenet.feature +0 -0
  107. {cucu-1.0.12 → cucu-1.1.1}/features/browser/buttons.feature +0 -0
  108. {cucu-1.0.12 → cucu-1.1.1}/features/browser/checkboxes.feature +0 -0
  109. {cucu-1.0.12 → cucu-1.1.1}/features/browser/clipboard.feature +0 -0
  110. {cucu-1.0.12 → cucu-1.1.1}/features/browser/comboboxes.feature +0 -0
  111. {cucu-1.0.12 → cucu-1.1.1}/features/browser/console_logs.feature +0 -0
  112. {cucu-1.0.12 → cucu-1.1.1}/features/browser/cookies.feature +0 -0
  113. {cucu-1.0.12 → cucu-1.1.1}/features/browser/draggables.feature +0 -0
  114. {cucu-1.0.12 → cucu-1.1.1}/features/browser/dropdowns.feature +0 -0
  115. {cucu-1.0.12 → cucu-1.1.1}/features/browser/duplicate_buttons.feature +0 -0
  116. {cucu-1.0.12 → cucu-1.1.1}/features/browser/duplicate_draggables.feature +0 -0
  117. {cucu-1.0.12 → cucu-1.1.1}/features/browser/duplicate_inputs.feature +0 -0
  118. {cucu-1.0.12 → cucu-1.1.1}/features/browser/file_downloads.feature +0 -0
  119. {cucu-1.0.12 → cucu-1.1.1}/features/browser/file_upload.feature +0 -0
  120. {cucu-1.0.12 → cucu-1.1.1}/features/browser/frames.feature +0 -0
  121. {cucu-1.0.12 → cucu-1.1.1}/features/browser/fuzzy_rules.feature +0 -0
  122. {cucu-1.0.12 → cucu-1.1.1}/features/browser/helpers.feature +0 -0
  123. {cucu-1.0.12 → cucu-1.1.1}/features/browser/images.feature +0 -0
  124. {cucu-1.0.12 → cucu-1.1.1}/features/browser/inputs.feature +0 -0
  125. {cucu-1.0.12 → cucu-1.1.1}/features/browser/inputs_limits.feature +0 -0
  126. {cucu-1.0.12 → cucu-1.1.1}/features/browser/links.feature +0 -0
  127. {cucu-1.0.12 → cucu-1.1.1}/features/browser/mht.feature +0 -0
  128. {cucu-1.0.12 → cucu-1.1.1}/features/browser/page_checks.feature +0 -0
  129. {cucu-1.0.12 → cucu-1.1.1}/features/browser/radio_buttons.feature +0 -0
  130. {cucu-1.0.12 → cucu-1.1.1}/features/browser/tables.feature +0 -0
  131. {cucu-1.0.12 → cucu-1.1.1}/features/browser/tabs.feature +0 -0
  132. {cucu-1.0.12 → cucu-1.1.1}/features/browser/text.feature +0 -0
  133. {cucu-1.0.12 → cucu-1.1.1}/features/cli/config.feature +0 -0
  134. {cucu-1.0.12 → cucu-1.1.1}/features/cli/help.feature +0 -0
  135. {cucu-1.0.12 → cucu-1.1.1}/features/cli/internals.feature +0 -0
  136. {cucu-1.0.12 → cucu-1.1.1}/features/cli/lint.feature +0 -0
  137. {cucu-1.0.12 → cucu-1.1.1}/features/cli/lsp.feature +0 -0
  138. {cucu-1.0.12 → cucu-1.1.1}/features/cli/report_basics.feature +0 -0
  139. {cucu-1.0.12 → cucu-1.1.1}/features/cli/report_search_and_sorting.feature +0 -0
  140. {cucu-1.0.12 → cucu-1.1.1}/features/cli/report_with_custom_failure_handler.feature +0 -0
  141. {cucu-1.0.12 → cucu-1.1.1}/features/cli/report_with_custom_subheader.feature +0 -0
  142. {cucu-1.0.12 → cucu-1.1.1}/features/cli/report_with_custom_tags.feature +0 -0
  143. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run.feature +0 -0
  144. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run_outputs.feature +0 -0
  145. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run_with_hooks.feature +0 -0
  146. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run_with_junit.feature +0 -0
  147. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run_with_logging.feature +0 -0
  148. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run_with_report.feature +0 -0
  149. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run_with_tags.feature +0 -0
  150. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run_with_thread_dumper.feature +0 -0
  151. {cucu-1.0.12 → cucu-1.1.1}/features/cli/run_with_workers.feature +0 -0
  152. {cucu-1.0.12 → cucu-1.1.1}/features/cli/secrets.feature +0 -0
  153. {cucu-1.0.12 → cucu-1.1.1}/features/cli/steps.feature +0 -0
  154. {cucu-1.0.12 → cucu-1.1.1}/features/cli/vars.feature +0 -0
  155. {cucu-1.0.12 → cucu-1.1.1}/features/environment.py +0 -0
  156. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/before_retry_handlers.feature +0 -0
  157. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/repeating_steps.feature +0 -0
  158. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/run_after_scenario_steps.feature +0 -0
  159. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/run_and_measure.feature +0 -0
  160. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/run_other_features.feature +0 -0
  161. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/run_scenarios_conditionally.feature +0 -0
  162. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/run_steps_conditionally.feature +0 -0
  163. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/run_steps_on_element_visibilty.feature +0 -0
  164. {cucu-1.0.12 → cucu-1.1.1}/features/flow_control/wait_for_steps.feature +0 -0
  165. {cucu-1.0.12 → cucu-1.1.1}/features/os/command_steps.feature +0 -0
  166. {cucu-1.0.12 → cucu-1.1.1}/features/os/file_steps.feature +0 -0
  167. {cucu-1.0.12 → cucu-1.1.1}/features/os/platform_steps.feature +0 -0
  168. {cucu-1.0.12 → cucu-1.1.1}/features/os/screenshot.feature +0 -0
  169. {cucu-1.0.12 → cucu-1.1.1}/features/os/variables.feature +0 -0
  170. {cucu-1.0.12 → cucu-1.1.1}/features/steps/__init__.py +0 -0
  171. {cucu-1.0.12 → cucu-1.1.1}/features/steps/cucu_steps.py +0 -0
  172. {cucu-1.0.12 → cucu-1.1.1}/logo.png +0 -0
  173. {cucu-1.0.12 → cucu-1.1.1}/renovate.json +0 -0
  174. {cucu-1.0.12 → cucu-1.1.1}/sonar-project.properties +0 -0
  175. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/__init__.py +0 -0
  176. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/ansi_parser.py +0 -0
  177. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/behave_tweaks.py +0 -0
  178. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/browser/__init__.py +0 -0
  179. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/browser/core.py +0 -0
  180. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/browser/frames.py +0 -0
  181. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/browser/selenium.py +0 -0
  182. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/browser/selenium_tweaks.py +0 -0
  183. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/cli/__init__.py +0 -0
  184. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/cli/steps.py +0 -0
  185. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/cli/thread_dumper.py +0 -0
  186. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/config.py +0 -0
  187. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/edgedriver_autoinstaller/README.md +0 -0
  188. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/edgedriver_autoinstaller/__init__.py +0 -0
  189. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/edgedriver_autoinstaller/utils.py +0 -0
  190. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/external/jquery/jquery-3.5.1.min.js +0 -0
  191. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/formatter/__init__.py +0 -0
  192. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/formatter/cucu.py +0 -0
  193. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/formatter/json.py +0 -0
  194. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/formatter/junit.py +0 -0
  195. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/fuzzy/__init__.py +0 -0
  196. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/fuzzy/core.py +0 -0
  197. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/fuzzy/fuzzy.js +0 -0
  198. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/helpers.py +0 -0
  199. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/hooks.py +0 -0
  200. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/language_server/__init__.py +0 -0
  201. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/language_server/core.py +0 -0
  202. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/lint/__init__.py +0 -0
  203. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/lint/linter.py +0 -0
  204. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/lint/rules/format.yaml +0 -0
  205. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/matcher/__init__.py +0 -0
  206. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/matcher/core.py +0 -0
  207. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/page_checks.py +0 -0
  208. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/__init__.py +0 -0
  209. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/external/bootstrap.min.css +0 -0
  210. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/external/bootstrap.min.js +0 -0
  211. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/external/dataTables.bootstrap.min.css +0 -0
  212. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/external/dataTables.bootstrap.min.js +0 -0
  213. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/external/jquery-3.5.1.min.js +0 -0
  214. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/external/jquery.dataTables.min.js +0 -0
  215. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/external/popper.min.js +0 -0
  216. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/favicon.png +0 -0
  217. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/html.py +0 -0
  218. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/templates/feature.html +0 -0
  219. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/templates/flat.html +0 -0
  220. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/templates/index.html +0 -0
  221. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/templates/layout.html +0 -0
  222. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/reporter/templates/scenario.html +0 -0
  223. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/__init__.py +0 -0
  224. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/base_steps.py +0 -0
  225. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/browser_steps.py +0 -0
  226. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/button_steps.py +0 -0
  227. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/checkbox_steps.py +0 -0
  228. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/command_steps.py +0 -0
  229. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/comment_steps.py +0 -0
  230. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/draggable_steps.py +0 -0
  231. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/dropdown_steps.py +0 -0
  232. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/file_input_steps.py +0 -0
  233. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/filesystem_steps.py +0 -0
  234. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/flow_control_steps.py +0 -0
  235. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/image_steps.py +0 -0
  236. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/input_steps.py +0 -0
  237. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/link_steps.py +0 -0
  238. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/menuitem_steps.py +0 -0
  239. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/platform_steps.py +0 -0
  240. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/radio_steps.py +0 -0
  241. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/step_utils.py +0 -0
  242. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/tab_steps.py +0 -0
  243. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/table_steps.py +0 -0
  244. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/tables.js +0 -0
  245. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/text_steps.py +0 -0
  246. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/variable_steps.py +0 -0
  247. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/steps/webserver_steps.py +0 -0
  248. {cucu-1.0.12 → cucu-1.1.1}/src/cucu/utils.py +0 -0
  249. {cucu-1.0.12 → cucu-1.1.1}/tests/__init__.py +0 -0
  250. {cucu-1.0.12 → cucu-1.1.1}/tests/test_behave_tweaks.py +0 -0
  251. {cucu-1.0.12 → cucu-1.1.1}/tests/test_browser.py +0 -0
  252. {cucu-1.0.12 → cucu-1.1.1}/tests/test_config.py +0 -0
  253. {cucu-1.0.12 → cucu-1.1.1}/tests/test_core.py +0 -0
  254. {cucu-1.0.12 → cucu-1.1.1}/tests/test_language_server.py +0 -0
  255. {cucu-1.0.12 → cucu-1.1.1}/tests/test_reporter_parser.py +0 -0
  256. {cucu-1.0.12 → cucu-1.1.1}/tests/test_table_steps.py +0 -0
@@ -31,14 +31,14 @@ workflows:
31
31
  jobs:
32
32
  build:
33
33
  docker:
34
- - image: cimg/python:3.12@sha256:12ecf4f4bc4d76e6c76e631124196490ddd7f9f5887aacd6080f8a9facbca8ab
34
+ - image: cimg/python:3.13@sha256:a00bfa949271c5519c63d623c6c5ab61fa0868f88ffa3a66b0983bf7df376f3d
35
35
  resource_class: medium
36
36
  steps:
37
37
  - checkout
38
38
  - inline-orb-uv/setup-uv
39
39
  - run:
40
- name: install cucu with Python 3.12
41
- command: uv sync -p 3.12 --dev
40
+ name: install cucu with Python 3.13
41
+ command: uv sync -p 3.13 --dev
42
42
  - run:
43
43
  name: run pre-commit validations
44
44
  command: uv run pre-commit run --show-diff-on-failure --from-ref origin/HEAD --to-ref HEAD
@@ -55,10 +55,7 @@ jobs:
55
55
  type: string
56
56
  default: "chrome"
57
57
  docker:
58
- - image: cimg/python:3.12@sha256:12ecf4f4bc4d76e6c76e631124196490ddd7f9f5887aacd6080f8a9facbca8ab
59
- environment:
60
- # Starting with python 3.12 coverage could be 2x slower so use experimental COVERAGE_CORE=sysmon
61
- COVERAGE_CORE: sysmon
58
+ - image: cimg/python:3.13@sha256:a00bfa949271c5519c63d623c6c5ab61fa0868f88ffa3a66b0983bf7df376f3d
62
59
  - image: selenium/standalone-<<parameters.browser>>:126.0
63
60
  environment:
64
61
  SE_ENABLE_TRACING: false
@@ -130,7 +127,7 @@ jobs:
130
127
 
131
128
  coverage:
132
129
  docker:
133
- - image: cimg/python:3.12@sha256:12ecf4f4bc4d76e6c76e631124196490ddd7f9f5887aacd6080f8a9facbca8ab
130
+ - image: cimg/python:3.13@sha256:a00bfa949271c5519c63d623c6c5ab61fa0868f88ffa3a66b0983bf7df376f3d
134
131
  resource_class: small
135
132
  steps:
136
133
  - checkout
@@ -12,7 +12,7 @@ jobs:
12
12
  steps:
13
13
  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
14
14
  - name: Install the latest version of uv
15
- uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
15
+ uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
16
16
  with:
17
17
  enable-cache: true
18
18
  - name: Install cucu with Python 3.12
@@ -28,7 +28,7 @@ jobs:
28
28
  steps:
29
29
  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
30
30
  - name: Install the latest version of uv
31
- uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
31
+ uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
32
32
  with:
33
33
  enable-cache: true
34
34
  - name: Install cucu with Python 3.12
@@ -45,12 +45,12 @@ jobs:
45
45
  tar cvfz output.tgz output
46
46
  - name: save output
47
47
  if: always()
48
- uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
48
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
49
49
  with:
50
50
  name: unit-tests
51
51
  path: output.tgz
52
52
  - name: Publish Test Results
53
- uses: EnricoMi/publish-unit-test-result-action@170bf24d20d201b842d7a52403b73ed297e6645b # v2
53
+ uses: EnricoMi/publish-unit-test-result-action@afb2984f4d89672b2f9d9c13ae23d53779671984 # v2
54
54
  if: always()
55
55
  with:
56
56
  check_name: "unit results"
@@ -83,7 +83,7 @@ jobs:
83
83
  steps:
84
84
  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
85
85
  - name: Install the latest version of uv
86
- uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
86
+ uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
87
87
  with:
88
88
  enable-cache: true
89
89
  - name: Install Python 3.12
@@ -113,12 +113,12 @@ jobs:
113
113
  tar cvfz output.tgz output
114
114
  - name: save output
115
115
  if: always()
116
- uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
116
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
117
117
  with:
118
118
  name: ${{ matrix.browser }}-tests
119
119
  path: output.tgz
120
120
  - name: Publish Test Results
121
- uses: EnricoMi/publish-unit-test-result-action@170bf24d20d201b842d7a52403b73ed297e6645b # v2
121
+ uses: EnricoMi/publish-unit-test-result-action@afb2984f4d89672b2f9d9c13ae23d53779671984 # v2
122
122
  if: always()
123
123
  with:
124
124
  check_name: "${{ matrix.browser }} results"
@@ -18,7 +18,7 @@ jobs:
18
18
  ref: main
19
19
  fetch-depth: 0
20
20
  - name: Install the latest version of uv
21
- uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
21
+ uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
22
22
  with:
23
23
  enable-cache: true
24
24
  - name: Install cucu with Python 3.12
@@ -20,7 +20,7 @@ jobs:
20
20
  ref: main
21
21
  fetch-depth: 0
22
22
  - name: Install the latest version of uv
23
- uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
23
+ uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
24
24
  with:
25
25
  version: "latest"
26
26
  - name: Install cucu with Python 3.12
@@ -0,0 +1 @@
1
+ 3.13
@@ -5,8 +5,18 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project closely adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## 1.1.1
9
+ - Chore - bump coverage lib from 7.6.12 to 7.8.0
10
+ - Chore - change CI to not use experimental COVERAGE_CORE=sysmon
11
+
12
+ ## 1.1.0
13
+ - Add - now python 3.13 compatible
14
+ - Change - use stdlib pdb instead of unsupported ipdb
15
+ - Change - rename CUCU_IPDB_ON_FAILURE => to CUCU_DEBUG_ON_FAILURE
16
+ - Chore - bump selenium lib to 4.31.0
17
+
8
18
  ## 1.0.13
9
- - Chore - use warning instead of deprecated logger.warn method
19
+ - Change - rename logger.warn to logger.warning
10
20
 
11
21
  ## 1.0.12
12
22
  - Chore - add coverage badge
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cucu
3
- Version: 1.0.12
3
+ Version: 1.1.1
4
4
  Summary: Easy BDD web testing
5
5
  Project-URL: Homepage, https://github.com/dominodatalab/cucu/wiki
6
6
  Project-URL: Download, https://pypi.org/project/cucu/
@@ -23,18 +23,18 @@ Classifier: Programming Language :: Python :: 3.9
23
23
  Classifier: Programming Language :: Python :: 3.10
24
24
  Classifier: Programming Language :: Python :: 3.11
25
25
  Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
26
27
  Classifier: Topic :: Software Development :: Testing :: BDD
27
28
  Requires-Python: >=3.9
28
29
  Requires-Dist: beautifulsoup4~=4.13.3
29
30
  Requires-Dist: behave~=1.2.6
30
31
  Requires-Dist: chromedriver-autoinstaller~=0.6.2
31
32
  Requires-Dist: click~=8.1.7
32
- Requires-Dist: coverage[toml]~=7.6.12
33
+ Requires-Dist: coverage[toml]~=7.8
33
34
  Requires-Dist: geckodriver-autoinstaller~=0.1.0
34
35
  Requires-Dist: humanize~=4.12.1
35
36
  Requires-Dist: importlib-metadata~=8.6.1
36
- Requires-Dist: ipdb~=0.13.13
37
- Requires-Dist: jellyfish~=1.1.3
37
+ Requires-Dist: jellyfish>=1.1
38
38
  Requires-Dist: jinja2~=3.1.3
39
39
  Requires-Dist: lsprotocol~=2023.0.1
40
40
  Requires-Dist: mpire~=2.10.2
@@ -42,9 +42,9 @@ Requires-Dist: psutil>=6.0
42
42
  Requires-Dist: pygls~=1.3.1
43
43
  Requires-Dist: pyyaml~=6.0.1
44
44
  Requires-Dist: requests<3.0.0,>=2.31.0
45
- Requires-Dist: selenium~=4.28
45
+ Requires-Dist: selenium~=4.31
46
46
  Requires-Dist: tabulate~=0.9.0
47
- Requires-Dist: tenacity~=9.0.0
47
+ Requires-Dist: tenacity>=9.0
48
48
  Description-Content-Type: text/markdown
49
49
 
50
50
  [![pypi](https://img.shields.io/pypi/v/cucu.svg)](https://pypi.org/project/cucu/)
@@ -0,0 +1,16 @@
1
+ Feature: debug
2
+ As a developer I want the test writer to be able to use the debug console to
3
+ debug test runs.
4
+
5
+ Scenario: User gets the debug console to show when hitting a failure and quit
6
+ Given I run the following script and save stdout to "STDOUT", stderr to "STDERR" and expect exit code "1"
7
+ """
8
+ echo 'quit\n' | cucu run data/features/feature_with_failing_scenario.feature --results {CUCU_RESULTS_DIR}/debug-debugging-results --debug-on-failure
9
+ """
10
+ # XXX: temporary solution as the debug output contains ansi codes we can't
11
+ # seem to make debug output stop producing those.
12
+ Then I strip ansi codes from "{STDOUT}" and save to the variable "STDOUT"
13
+ And I should see "{STDOUT}" contains the following
14
+ """
15
+ -> raise RuntimeError("step fails on purpose")
16
+ """
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cucu"
3
- version = "1.0.12"
3
+ version = "1.1.1"
4
4
  description = "Easy BDD web testing"
5
5
  readme = "README.md"
6
6
  license = { text = "The Clear BSD License" }
@@ -33,6 +33,7 @@ classifiers = [
33
33
  "Programming Language :: Python :: 3.10",
34
34
  "Programming Language :: Python :: 3.11",
35
35
  "Programming Language :: Python :: 3.12",
36
+ "Programming Language :: Python :: 3.13",
36
37
  "Programming Language :: Python :: 3 :: Only",
37
38
  "Topic :: Software Development :: Testing :: BDD",
38
39
  ]
@@ -46,12 +47,11 @@ dependencies = [
46
47
  "behave~=1.2.6",
47
48
  "chromedriver-autoinstaller~=0.6.2",
48
49
  "click~=8.1.7",
49
- "coverage[toml]~=7.6.12",
50
+ "coverage[toml]~=7.8",
50
51
  "geckodriver-autoinstaller~=0.1.0",
51
52
  "humanize~=4.12.1",
52
53
  "importlib-metadata~=8.6.1",
53
- "ipdb~=0.13.13",
54
- "jellyfish~=1.1.3",
54
+ "jellyfish>=1.1",
55
55
  "jinja2~=3.1.3",
56
56
  "lsprotocol~=2023.0.1",
57
57
  "mpire~=2.10.2",
@@ -59,9 +59,9 @@ dependencies = [
59
59
  "pygls~=1.3.1",
60
60
  "pyyaml~=6.0.1",
61
61
  "requests>=2.31.0,<3.0.0",
62
- "selenium~=4.28",
62
+ "selenium~=4.31",
63
63
  "tabulate~=0.9.0",
64
- "tenacity~=9.0.0",
64
+ "tenacity>=9.0",
65
65
  ]
66
66
 
67
67
  [project.urls]
@@ -90,10 +90,10 @@ def main():
90
90
  )
91
91
  @click.option("-n", "--name", help="used to specify the exact scenario to run")
92
92
  @click.option(
93
- "-i",
94
- "--ipdb-on-failure/--no-ipdb-on-failure",
93
+ "-d",
94
+ "--debug-on-failure/--no-debug-on-failure",
95
95
  default=False,
96
- help="on failure drop into the ipdb debug shell",
96
+ help="on failure drop into the debug shell",
97
97
  )
98
98
  @click.option(
99
99
  "-j",
@@ -213,7 +213,7 @@ def run(
213
213
  fail_fast,
214
214
  headless,
215
215
  name,
216
- ipdb_on_failure,
216
+ debug_on_failure,
217
217
  junit,
218
218
  junit_with_stacktrace,
219
219
  logging_level,
@@ -323,7 +323,7 @@ def run(
323
323
  fail_fast,
324
324
  headless,
325
325
  name,
326
- ipdb_on_failure,
326
+ debug_on_failure,
327
327
  junit,
328
328
  results,
329
329
  secrets,
@@ -415,7 +415,7 @@ def run(
415
415
  fail_fast,
416
416
  headless,
417
417
  name,
418
- ipdb_on_failure,
418
+ debug_on_failure,
419
419
  junit,
420
420
  results,
421
421
  secrets,
@@ -46,7 +46,7 @@ def behave(
46
46
  fail_fast,
47
47
  headless,
48
48
  name,
49
- ipdb_on_failure,
49
+ debug_on_failure,
50
50
  junit,
51
51
  results,
52
52
  secrets,
@@ -81,8 +81,8 @@ def behave(
81
81
  key, value = variable.split("=")
82
82
  os.environ[key] = value
83
83
 
84
- if ipdb_on_failure:
85
- os.environ["CUCU_IPDB_ON_FAILURE"] = "true"
84
+ if debug_on_failure:
85
+ os.environ["CUCU_DEBUG_ON_FAILURE"] = "true"
86
86
 
87
87
  os.environ["CUCU_RESULTS_DIR"] = results
88
88
  os.environ["CUCU_JUNIT_DIR"] = junit
@@ -270,11 +270,11 @@ def after_step(ctx, step):
270
270
  ctx.step_index += 1
271
271
  CONFIG["__STEP_SCREENSHOT_COUNT"] = 0
272
272
 
273
- if CONFIG.bool("CUCU_IPDB_ON_FAILURE") and step.status == "failed":
273
+ if CONFIG.bool("CUCU_DEBUG_ON_FAILURE") and step.status == "failed":
274
274
  ctx._runner.stop_capture()
275
- import ipdb
275
+ import pdb
276
276
 
277
- ipdb.post_mortem(step.exc_traceback)
277
+ pdb.post_mortem(step.exc_traceback)
278
278
 
279
279
  CONFIG["__CUCU_BEFORE_THIS_SCENARIO_HOOKS"] = []
280
280
 
@@ -80,20 +80,6 @@ def info(*args, **kwargs):
80
80
  logging.info(*args, **kwargs)
81
81
 
82
82
 
83
- @wraps(logging.warning)
84
- def warn(*args, **kwargs):
85
- console_handler = logging.getLogger().handlers[0]
86
- logging_level = console_handler.level
87
-
88
- if logging_level <= logging.WARN:
89
- CONFIG["__CUCU_WROTE_TO_OUTPUT"] = True
90
-
91
- logging.getLogger().warning(
92
- 'The method "warn" is deprecated use warning() instead.'
93
- )
94
- logging.getLogger().warning(*args, **kwargs)
95
-
96
-
97
83
  @wraps(logging.warning)
98
84
  def warning(*args, **kwargs):
99
85
  console_handler = logging.getLogger().handlers[0]