cucu 1.2.6__tar.gz → 1.2.8__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 (91) hide show
  1. {cucu-1.2.6 → cucu-1.2.8}/PKG-INFO +1 -1
  2. {cucu-1.2.6 → cucu-1.2.8}/pyproject.toml +1 -1
  3. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/environment.py +12 -11
  4. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/browser_steps.py +10 -0
  5. {cucu-1.2.6 → cucu-1.2.8}/README.md +0 -0
  6. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/__init__.py +0 -0
  7. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/ansi_parser.py +0 -0
  8. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/behave_tweaks.py +0 -0
  9. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/browser/__init__.py +0 -0
  10. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/browser/core.py +0 -0
  11. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/browser/frames.py +0 -0
  12. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/browser/selenium.py +0 -0
  13. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/browser/selenium_tweaks.py +0 -0
  14. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/cli/__init__.py +0 -0
  15. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/cli/core.py +0 -0
  16. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/cli/run.py +0 -0
  17. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/cli/steps.py +0 -0
  18. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/cli/thread_dumper.py +0 -0
  19. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/config.py +0 -0
  20. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/edgedriver_autoinstaller/README.md +0 -0
  21. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/edgedriver_autoinstaller/__init__.py +0 -0
  22. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/edgedriver_autoinstaller/utils.py +0 -0
  23. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/external/jquery/jquery-3.5.1.min.js +0 -0
  24. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/formatter/__init__.py +0 -0
  25. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/formatter/cucu.py +0 -0
  26. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/formatter/json.py +0 -0
  27. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/formatter/junit.py +0 -0
  28. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/fuzzy/__init__.py +0 -0
  29. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/fuzzy/core.py +0 -0
  30. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/fuzzy/fuzzy.js +0 -0
  31. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/helpers.py +0 -0
  32. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/hooks.py +0 -0
  33. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/.gitignore +0 -0
  34. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/README.md +0 -0
  35. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/cucurc.yml +0 -0
  36. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/data/www/example.html +0 -0
  37. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/features/cucurc.yml +0 -0
  38. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/features/environment.py +0 -0
  39. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/features/example.feature +0 -0
  40. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/features/lint_rules/sid.yaml +0 -0
  41. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/features/steps/__init__.py +0 -0
  42. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/init_data/features/steps/my_steps.py +0 -0
  43. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/language_server/__init__.py +0 -0
  44. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/language_server/core.py +0 -0
  45. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/lint/__init__.py +0 -0
  46. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/lint/linter.py +0 -0
  47. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/lint/rules/format.yaml +0 -0
  48. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/logger.py +0 -0
  49. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/matcher/__init__.py +0 -0
  50. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/matcher/core.py +0 -0
  51. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/page_checks.py +0 -0
  52. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/__init__.py +0 -0
  53. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/external/bootstrap.min.css +0 -0
  54. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/external/bootstrap.min.js +0 -0
  55. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/external/dataTables.bootstrap.min.css +0 -0
  56. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/external/dataTables.bootstrap.min.js +0 -0
  57. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/external/jquery-3.5.1.min.js +0 -0
  58. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/external/jquery.dataTables.min.js +0 -0
  59. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/external/popper.min.js +0 -0
  60. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/favicon.png +0 -0
  61. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/html.py +0 -0
  62. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/templates/feature.html +0 -0
  63. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/templates/flat.html +0 -0
  64. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/templates/index.html +0 -0
  65. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/templates/layout.html +0 -0
  66. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/reporter/templates/scenario.html +0 -0
  67. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/__init__.py +0 -0
  68. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/base_steps.py +0 -0
  69. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/button_steps.py +0 -0
  70. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/checkbox_steps.py +0 -0
  71. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/command_steps.py +0 -0
  72. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/draggable_steps.py +0 -0
  73. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/dropdown_steps.py +0 -0
  74. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/file_input_steps.py +0 -0
  75. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/filesystem_steps.py +0 -0
  76. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/flow_control_steps.py +0 -0
  77. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/image_steps.py +0 -0
  78. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/input_steps.py +0 -0
  79. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/link_steps.py +0 -0
  80. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/menuitem_steps.py +0 -0
  81. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/platform_steps.py +0 -0
  82. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/radio_steps.py +0 -0
  83. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/section_steps.py +0 -0
  84. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/step_utils.py +0 -0
  85. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/tab_steps.py +0 -0
  86. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/table_steps.py +0 -0
  87. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/tables.js +0 -0
  88. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/text_steps.py +0 -0
  89. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/variable_steps.py +0 -0
  90. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/steps/webserver_steps.py +0 -0
  91. {cucu-1.2.6 → cucu-1.2.8}/src/cucu/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: cucu
3
- Version: 1.2.6
3
+ Version: 1.2.8
4
4
  Summary: Easy BDD web testing
5
5
  Keywords: cucumber,selenium,behave
6
6
  Author: Domino Data Lab, Rodney Gomes, Cedric Young, Xin Dong, Kavya, Kevin Garton, Joy Liao
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cucu"
3
- version = "1.2.6"
3
+ version = "1.2.8"
4
4
  description = "Easy BDD web testing"
5
5
  readme = "README.md"
6
6
  license = { text = "The Clear BSD License" }
@@ -1,7 +1,7 @@
1
+ import datetime
1
2
  import json
2
3
  import sys
3
4
  import traceback
4
- from datetime import datetime
5
5
  from functools import partial
6
6
  from pathlib import Path
7
7
 
@@ -97,7 +97,7 @@ def before_scenario(ctx, scenario):
97
97
 
98
98
  # reset the step timer dictionary
99
99
  ctx.step_timers = {}
100
- scenario.start_at = datetime.now().isoformat()[:-3]
100
+ scenario.start_at = datetime.datetime.now().isoformat()[:-3]
101
101
 
102
102
  if config.CONFIG["CUCU_RESULTS_DIR"] is not None:
103
103
  ctx.scenario_dir = ctx.feature_dir / ellipsize_filename(scenario.name)
@@ -199,7 +199,7 @@ def after_scenario(ctx, scenario):
199
199
  yaml.safe_load(CONFIG.to_yaml_without_secrets())
200
200
  )
201
201
 
202
- scenario.end_at = datetime.now().isoformat()[:-3]
202
+ scenario.end_at = datetime.datetime.now().isoformat()[:-3]
203
203
 
204
204
 
205
205
  def download_mht_data(ctx):
@@ -232,7 +232,7 @@ def download_browser_log(ctx):
232
232
 
233
233
  def before_step(ctx, step):
234
234
  step.step_run_id = generate_short_id()
235
- step.start_at = datetime.now().isoformat()[:-3]
235
+ step.start_at = datetime.datetime.now().isoformat()[:-3]
236
236
 
237
237
  sys.stdout.captured()
238
238
  sys.stderr.captured()
@@ -266,11 +266,11 @@ def after_step(ctx, step):
266
266
  else:
267
267
  step.debug_output = ""
268
268
 
269
- step.end_at = datetime.now().isoformat()[:-3]
269
+ step.end_at = datetime.datetime.now().isoformat()[:-3]
270
270
 
271
271
  # calculate duration from ISO timestamps
272
- start_at = datetime.fromisoformat(step.start_at)
273
- end_at = datetime.fromisoformat(step.end_at)
272
+ start_at = datetime.datetime.fromisoformat(step.start_at)
273
+ end_at = datetime.datetime.fromisoformat(step.end_at)
274
274
  ctx.previous_step_duration = (end_at - start_at).total_seconds()
275
275
 
276
276
  # when set this means we're running in parallel mode using --workers and
@@ -331,12 +331,13 @@ def after_step(ctx, step):
331
331
  step.browser_logs = "\n".join(browser_logs)
332
332
 
333
333
  tab_info = ctx.browser.get_tab_info()
334
- all_tabs = ctx.browser.get_all_tabs_info()
335
334
 
336
335
  browser_info = {
337
- "current_tab_index": tab_info["index"],
338
- "all_tabs": all_tabs,
336
+ "tab_count": tab_info["tab_count"],
337
+ "tab_number": tab_info["index"] + 1,
338
+ "tab_title": tab_info["title"],
339
+ "tab_url": tab_info["url"],
339
340
  "browser_type": ctx.browser.driver.name,
340
341
  }
341
342
 
342
- step.browser_info = json.dumps(browser_info)
343
+ step.browser_info = browser_info
@@ -163,6 +163,16 @@ def navigate_to_the_url(ctx, url):
163
163
  ctx.browser.navigate(url)
164
164
 
165
165
 
166
+ @step('I save the current browser url to the variable "{variable}"')
167
+ def save_current_browser_url_to_variable(ctx, variable):
168
+ ctx.check_browser_initialized()
169
+ current_url = ctx.browser.get_current_url()
170
+ config.CONFIG[variable] = current_url
171
+ logger.debug(
172
+ f"saved current browser url {current_url} to variable {variable}"
173
+ )
174
+
175
+
166
176
  @step("I switch to the previous browser")
167
177
  def switch_to_previous_browser(ctx):
168
178
  browser_index = ctx.browsers.index(ctx.browser)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes