cucu 1.0.0__tar.gz → 1.0.4__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.
- {cucu-1.0.0 → cucu-1.0.4}/.pre-commit-config.yaml +2 -2
- {cucu-1.0.0 → cucu-1.0.4}/CHANGELOG.md +41 -28
- {cucu-1.0.0 → cucu-1.0.4}/Makefile +13 -1
- {cucu-1.0.0 → cucu-1.0.4}/PKG-INFO +10 -10
- {cucu-1.0.0 → cucu-1.0.4}/README.md +4 -8
- cucu-1.0.4/data/www/drag_drop.html +89 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/file_upload.feature +6 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/report_basics.feature +1 -1
- {cucu-1.0.0 → cucu-1.0.4}/pyproject.toml +21 -4
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/file_input_steps.py +11 -2
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/utils.py +4 -0
- {cucu-1.0.0 → cucu-1.0.4}/uv.lock +1 -3
- {cucu-1.0.0 → cucu-1.0.4}/.circleci/config.yml +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.env +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.github/CODEOWNERS +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.github/workflows/build.yml +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.github/workflows/create_a_new_release.yml +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.github/workflows/publish-production.yml +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.github/workflows/publish-test.yml +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.gitignore +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/.python-version +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/CODE_OF_CONDUCT.md +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/CONTRIBUTING.md +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/CONTRIBUTORS.md +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/LICENSE +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/bin/cucu +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/bin/start_seleniarm_hub.sh +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/bin/start_selenium_hub.sh +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/cortex.yaml +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/custom_step_test/custom_step.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/custom_step_test/steps/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/custom_step_test/steps/cucu_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/echo.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/environment.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_skipping_scenarios_by_file_presence.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_background.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_background_using_substeps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_failing_scenario.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_failing_scenario_with_table.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_failing_scenario_with_web.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_logging.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_long_names.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_mixed_results.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_multilines_and_tables.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_passing_scenario.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_passing_scenario_with_web.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_platform_specific_scenarios.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_scenario_outline.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_scenario_using_nth_type.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_tagging.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/feature_with_xml_tags.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/multiple_scenarios_with_browser_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/scenario_stop_retry_early.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/scenario_that_fails_with_after_scenario_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/scenario_that_passes_with_after_scenario_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/scenario_with_console_logs.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/scenario_with_substeps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/scenario_with_substeps_and_logging.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/slow_features/slow_feature1.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/slow_features/slow_feature2.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/slow_features/slow_feature3.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/slow_features/slow_feature4.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/slow_features/slow_feature5.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/steps/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/steps/cucu_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/tagged_features/tagged_feature1.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/tagged_features/tagged_feature2.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/tagged_features/tagged_feature3.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/with_secret/cucurc.yml +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/features/with_secret/scenario_with_comments.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/unit/ansi.log +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/unit/ansi.log.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/broken_images.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/buttons.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/checkboxes.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/clipboard.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/comboboxes.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/console_logging.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/cookies.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/counter.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/draggables.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/dropdowns.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/duplicate_buttons.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/duplicate_inputs.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/dynamic_dropdown.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/file.txt +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/files.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/frames.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/fuzzy_rules.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/images.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/inputs.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/js/util.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/links.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/nothing_to_see_here.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/page_that_loads_forever.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/radio_buttons.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/stars.png +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/tables.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/tabs.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/data/www/text.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/browser_tab_managemenet.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/browser_window_managemenet.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/buttons.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/checkboxes.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/clipboard.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/comboboxes.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/console_logs.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/cookies.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/draggables.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/dropdowns.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/duplicate_buttons.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/duplicate_draggables.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/duplicate_inputs.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/file_downloads.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/frames.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/fuzzy_rules.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/helpers.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/images.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/inputs.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/inputs_limits.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/links.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/mht.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/page_checks.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/radio_buttons.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/tables.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/tabs.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/browser/text.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/config.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/help.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/internals.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/ipdb.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/lint.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/lsp.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/report_search_and_sorting.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/report_with_custom_failure_handler.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/report_with_custom_subheader.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/report_with_custom_tags.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run_outputs.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run_with_hooks.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run_with_junit.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run_with_logging.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run_with_report.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run_with_tags.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run_with_thread_dumper.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/run_with_workers.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/secrets.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/cli/vars.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/environment.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/before_retry_handlers.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/repeating_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/run_after_scenario_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/run_and_measure.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/run_other_features.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/run_scenarios_conditionally.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/run_steps_conditionally.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/run_steps_on_element_visibilty.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/flow_control/wait_for_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/os/command_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/os/file_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/os/platform_steps.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/os/screenshot.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/os/variables.feature +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/steps/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/features/steps/cucu_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/logo.png +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/renovate.json +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/sonar-project.properties +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/ansi_parser.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/behave_tweaks.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/browser/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/browser/core.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/browser/frames.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/browser/selenium.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/browser/selenium_tweaks.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/cli/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/cli/core.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/cli/run.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/cli/steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/cli/thread_dumper.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/config.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/edgedriver_autoinstaller/README.md +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/edgedriver_autoinstaller/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/edgedriver_autoinstaller/utils.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/environment.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/external/jquery/jquery-3.5.1.min.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/formatter/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/formatter/cucu.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/formatter/json.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/formatter/junit.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/fuzzy/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/fuzzy/core.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/fuzzy/fuzzy.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/helpers.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/hooks.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/language_server/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/language_server/core.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/lint/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/lint/linter.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/lint/rules/format.yaml +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/logger.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/matcher/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/matcher/core.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/page_checks.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/external/bootstrap.min.css +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/external/bootstrap.min.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/external/dataTables.bootstrap.min.css +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/external/dataTables.bootstrap.min.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/external/jquery-3.5.1.min.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/external/jquery.dataTables.min.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/external/popper.min.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/favicon.png +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/html.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/templates/feature.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/templates/flat.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/templates/index.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/templates/layout.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/reporter/templates/scenario.html +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/base_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/browser_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/button_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/checkbox_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/command_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/comment_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/draggable_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/dropdown_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/filesystem_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/flow_control_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/image_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/input_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/link_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/menuitem_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/platform_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/radio_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/step_utils.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/tab_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/table_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/tables.js +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/text_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/variable_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/src/cucu/steps/webserver_steps.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/tests/__init__.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/tests/test_behave_tweaks.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/tests/test_browser.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/tests/test_config.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/tests/test_core.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/tests/test_language_server.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/tests/test_reporter_parser.py +0 -0
- {cucu-1.0.0 → cucu-1.0.4}/tests/test_table_steps.py +0 -0
|
@@ -5,55 +5,68 @@ 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.0.4
|
|
9
|
+
- Change - for retry steps, also log before and after call messages
|
|
10
|
+
|
|
11
|
+
## 1.0.3
|
|
12
|
+
- Add - functional test for drag and drop file functionality
|
|
13
|
+
|
|
14
|
+
## 1.0.2
|
|
15
|
+
- Chore - fix logo for pypi
|
|
16
|
+
|
|
17
|
+
## 1.0.1
|
|
18
|
+
- Chore - fix pyproject.toml authors and urls
|
|
19
|
+
- Change - add pre-commit to makefile
|
|
20
|
+
|
|
8
21
|
## 1.0.0
|
|
9
|
-
-
|
|
10
|
-
-
|
|
22
|
+
- Change to 1.0.0!
|
|
23
|
+
- Chore - fix GH workflow for test publish
|
|
11
24
|
|
|
12
25
|
## 0.207.0
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
26
|
+
- Chore - prep for publish - p2
|
|
27
|
+
- Replace poetry with uv
|
|
28
|
+
- Set default local python to 3.12
|
|
29
|
+
- Run pre-commit with uv
|
|
30
|
+
- Fix isort with ruff
|
|
18
31
|
|
|
19
32
|
## 0.206.0
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
33
|
+
- Chore - prep for publish
|
|
34
|
+
- Replace black with ruff
|
|
35
|
+
- Remove detect-secrets to be replaced by GH repo security
|
|
36
|
+
- Remove bandit to be replaced by GH CodeQL
|
|
37
|
+
- Cleanup makefile
|
|
25
38
|
|
|
26
39
|
## 0.205.0
|
|
27
|
-
-
|
|
40
|
+
- Change - increase information logged for failing before_scenario_hooks
|
|
28
41
|
|
|
29
42
|
## 0.204.0
|
|
30
|
-
-
|
|
31
|
-
-
|
|
43
|
+
- Chore - add gh workflows for publishing
|
|
44
|
+
- Chore - fix project metadata
|
|
32
45
|
|
|
33
46
|
## 0.203.0
|
|
34
|
-
-
|
|
35
|
-
-
|
|
47
|
+
- Chore - move repo GH org locations
|
|
48
|
+
- Chore - remove sonarqube
|
|
36
49
|
|
|
37
50
|
## 0.202.0
|
|
38
|
-
-
|
|
51
|
+
- Add - wait step to saving values from any table cells to a variable
|
|
39
52
|
|
|
40
53
|
## 0.201.0
|
|
41
|
-
-
|
|
54
|
+
- Change - add report path to the JUnit files when available
|
|
42
55
|
|
|
43
56
|
## 0.200.0
|
|
44
|
-
-
|
|
57
|
+
- Change - increase the log level of scheduling a feature file
|
|
45
58
|
|
|
46
59
|
## 0.199.0
|
|
47
|
-
-
|
|
48
|
-
-
|
|
60
|
+
- Chore - remove deprecated CI
|
|
61
|
+
- Chore - add PR template
|
|
49
62
|
|
|
50
63
|
## 0.198.0
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
64
|
+
- Chore - add sonarqube
|
|
65
|
+
- Chore - refactor circle config (config-drive executor, embed commands, move workflows up)
|
|
66
|
+
- Chore - configure renovate
|
|
67
|
+
- Chore - remove dependabot config (duplicates renovate)
|
|
68
|
+
- Chore - remove safety (duplicates sonarqube)
|
|
69
|
+
- Change - swap pebble for mpire, kill procs on run timeout
|
|
57
70
|
|
|
58
71
|
## 0.197.0
|
|
59
72
|
- Fix - before all hooks are now executed
|
|
@@ -15,6 +15,7 @@ setup: src/*
|
|
|
15
15
|
|
|
16
16
|
fix:
|
|
17
17
|
# make fix
|
|
18
|
+
uv sync
|
|
18
19
|
uv run ruff format .
|
|
19
20
|
uv run ruff check . --fix
|
|
20
21
|
uv run cucu lint --fix features
|
|
@@ -23,6 +24,17 @@ lint:
|
|
|
23
24
|
# make lint
|
|
24
25
|
# lint code
|
|
25
26
|
uv run ruff check .
|
|
27
|
+
# pre-commit
|
|
28
|
+
SKIP=makefile uv run pre-commit run --show-diff-on-failure --from-ref origin/HEAD --to-ref HEAD
|
|
29
|
+
# lint .feature files
|
|
30
|
+
uv run cucu lint features
|
|
31
|
+
|
|
32
|
+
ci-lint:
|
|
33
|
+
# make ci-lint
|
|
34
|
+
# only for use by CI through pre-commit
|
|
35
|
+
# lint code
|
|
36
|
+
uv run ruff check .
|
|
37
|
+
# don't run pre-commit since CI already did
|
|
26
38
|
# lint .feature files
|
|
27
39
|
uv run cucu lint features
|
|
28
40
|
|
|
@@ -55,4 +67,4 @@ coverage: src/* tests/*
|
|
|
55
67
|
echo "open HTML coverage report at htmlcov/index.html"
|
|
56
68
|
|
|
57
69
|
# disable caching for all make targets
|
|
58
|
-
.PHONY: all help
|
|
70
|
+
.PHONY: all help fix lint ci-lint test build coverage
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: cucu
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: Easy BDD web testing
|
|
5
|
-
|
|
5
|
+
Project-URL: Homepage, https://github.com/dominodatalab/cucu
|
|
6
|
+
Project-URL: Download, https://pypi.org/project/cucu/
|
|
7
|
+
Project-URL: Source Code, https://github.com/dominodatalab/cucu
|
|
8
|
+
Author-email: Domino Data Lab <open-source@dominodatalab.com>, Rodney Gomes <107359+rlgomes@users.noreply.github.com>, Cedric Young <4129217+ccedricyoung@users.noreply.github.com>, Xin Dong <104880864+ddl-xin@users.noreply.github.com>, Kavya <91882851+ddl-kavya@users.noreply.github.com>, Kevin Garton <71028750+ddl-kgarton@users.noreply.github.com>, Joy Liao <107583686+ddl-joy-liao@users.noreply.github.com>
|
|
9
|
+
Maintainer-email: Domino Data Lab <open-source@dominodatalab.com>, Cedric Young <4129217+ccedricyoung@users.noreply.github.com>, Kevin Garton <71028750+ddl-kgarton@users.noreply.github.com>, Brian Colby <92048365+ddl-bcolby@users.noreply.github.com>
|
|
6
10
|
License: The Clear BSD License
|
|
7
11
|
License-File: LICENSE
|
|
8
12
|
Keywords: behave,cucumber,selenium
|
|
@@ -43,14 +47,14 @@ Requires-Dist: tabulate~=0.9.0
|
|
|
43
47
|
Requires-Dist: tenacity~=9.0.0
|
|
44
48
|
Description-Content-Type: text/markdown
|
|
45
49
|
|
|
46
|
-
#  **CUCU** - Easy BDD web testing
|
|
50
|
+
#  **CUCU** - Easy BDD web testing <!-- omit from toc -->
|
|
47
51
|
|
|
48
52
|
End-to-end testing framework that uses [gherkin](https://cucumber.io/docs/gherkin/)
|
|
49
53
|
to drive various underlying tools/frameworks to create real world testing scenarios.
|
|
50
54
|
|
|
51
55
|
[](https://dl.circleci.com/status-badge/redirect/gh/dominodatalab/cucu/tree/main)
|
|
52
56
|
|
|
53
|
-
## Why cucu?
|
|
57
|
+
## Why cucu? <!-- omit from toc -->
|
|
54
58
|
1. Cucu avoids unnecessary abstractions (i.e. no Page Objects!) while keeping scenarios readable.
|
|
55
59
|
```gherkin
|
|
56
60
|
Feature: My First Cucu Test
|
|
@@ -70,19 +74,15 @@ to drive various underlying tools/frameworks to create real world testing scenar
|
|
|
70
74
|
7. Enables hierarchical configuration and env var and **CLI arg overrides**
|
|
71
75
|
8. Comes with a linter that is **customizable**
|
|
72
76
|
|
|
73
|
-
## Supporting docs
|
|
77
|
+
## Supporting docs <!-- omit from toc -->
|
|
74
78
|
1. [CHANGELOG.md](CHANGELOG.md) - for latest news
|
|
75
79
|
2. [CONTRIBUTING.md](CONTRIBUTING.md) - how we develop and test the library
|
|
76
80
|
3. [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
|
|
77
81
|
4. [CONTRIBUTORS.md](CONTRIBUTORS.md)
|
|
78
82
|
5. [LICENSE](LICENSE)
|
|
79
83
|
|
|
80
|
-
# Table of Contents
|
|
84
|
+
# Table of Contents <!-- omit from toc -->
|
|
81
85
|
|
|
82
|
-
- [ **CUCU** - Easy BDD web testing](#-cucu---easy-bdd-web-testing)
|
|
83
|
-
- [Why cucu?](#why-cucu)
|
|
84
|
-
- [Supporting docs](#supporting-docs)
|
|
85
|
-
- [Table of Contents](#table-of-contents)
|
|
86
86
|
- [Installation](#installation)
|
|
87
87
|
- [Requirements](#requirements)
|
|
88
88
|
- [Install Walkthrough](#install-walkthrough)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#  **CUCU** - Easy BDD web testing
|
|
1
|
+
#  **CUCU** - Easy BDD web testing <!-- omit from toc -->
|
|
2
2
|
|
|
3
3
|
End-to-end testing framework that uses [gherkin](https://cucumber.io/docs/gherkin/)
|
|
4
4
|
to drive various underlying tools/frameworks to create real world testing scenarios.
|
|
5
5
|
|
|
6
6
|
[](https://dl.circleci.com/status-badge/redirect/gh/dominodatalab/cucu/tree/main)
|
|
7
7
|
|
|
8
|
-
## Why cucu?
|
|
8
|
+
## Why cucu? <!-- omit from toc -->
|
|
9
9
|
1. Cucu avoids unnecessary abstractions (i.e. no Page Objects!) while keeping scenarios readable.
|
|
10
10
|
```gherkin
|
|
11
11
|
Feature: My First Cucu Test
|
|
@@ -25,19 +25,15 @@ to drive various underlying tools/frameworks to create real world testing scenar
|
|
|
25
25
|
7. Enables hierarchical configuration and env var and **CLI arg overrides**
|
|
26
26
|
8. Comes with a linter that is **customizable**
|
|
27
27
|
|
|
28
|
-
## Supporting docs
|
|
28
|
+
## Supporting docs <!-- omit from toc -->
|
|
29
29
|
1. [CHANGELOG.md](CHANGELOG.md) - for latest news
|
|
30
30
|
2. [CONTRIBUTING.md](CONTRIBUTING.md) - how we develop and test the library
|
|
31
31
|
3. [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
|
|
32
32
|
4. [CONTRIBUTORS.md](CONTRIBUTORS.md)
|
|
33
33
|
5. [LICENSE](LICENSE)
|
|
34
34
|
|
|
35
|
-
# Table of Contents
|
|
35
|
+
# Table of Contents <!-- omit from toc -->
|
|
36
36
|
|
|
37
|
-
- [ **CUCU** - Easy BDD web testing](#-cucu---easy-bdd-web-testing)
|
|
38
|
-
- [Why cucu?](#why-cucu)
|
|
39
|
-
- [Supporting docs](#supporting-docs)
|
|
40
|
-
- [Table of Contents](#table-of-contents)
|
|
41
37
|
- [Installation](#installation)
|
|
42
38
|
- [Requirements](#requirements)
|
|
43
39
|
- [Install Walkthrough](#install-walkthrough)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Drag and Drop File Upload Test with Validation</title>
|
|
7
|
+
<style>
|
|
8
|
+
#drop-zone {
|
|
9
|
+
width: 500px;
|
|
10
|
+
height: 100px;
|
|
11
|
+
border: 2px dashed #0088cc;
|
|
12
|
+
display: flex;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
align-items: center;
|
|
15
|
+
margin: 20px auto;
|
|
16
|
+
font-family: Arial, sans-serif;
|
|
17
|
+
color: #0088cc;
|
|
18
|
+
background-color: #f9f9f9;
|
|
19
|
+
}
|
|
20
|
+
#drop-zone.hover {
|
|
21
|
+
background-color: #f0f0f0;
|
|
22
|
+
}
|
|
23
|
+
#message {
|
|
24
|
+
text-align: center;
|
|
25
|
+
margin-top: 20px;
|
|
26
|
+
font-family: Arial, sans-serif;
|
|
27
|
+
color: #ff0000;
|
|
28
|
+
}
|
|
29
|
+
</style>
|
|
30
|
+
</head>
|
|
31
|
+
<body>
|
|
32
|
+
|
|
33
|
+
<h2>Drag and Drop File Upload Test</h2>
|
|
34
|
+
|
|
35
|
+
<!-- Drag and Drop Zone -->
|
|
36
|
+
<div id="drop-zone">
|
|
37
|
+
Click or drag file to this area to upload
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<input type="file" id="myFile" style="display: none;">
|
|
41
|
+
|
|
42
|
+
<!-- Validation Message Area -->
|
|
43
|
+
<div id="message"></div>
|
|
44
|
+
|
|
45
|
+
<script>
|
|
46
|
+
const dropZone = document.getElementById('drop-zone');
|
|
47
|
+
const fileInput = document.getElementById('myFile');
|
|
48
|
+
const messageDiv = document.getElementById('message');
|
|
49
|
+
|
|
50
|
+
// Function to display validation messages
|
|
51
|
+
function showMessage(message, isError = false) {
|
|
52
|
+
messageDiv.textContent = message;
|
|
53
|
+
messageDiv.style.color = isError ? '#ff0000' : '#008000'; // Red for errors, green for success
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Trigger file input click when the drop zone is clicked
|
|
57
|
+
dropZone.addEventListener('click', function() {
|
|
58
|
+
fileInput.click();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Handle drag over
|
|
62
|
+
dropZone.addEventListener('dragover', function(e) {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
dropZone.classList.add('hover');
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// Handle drag leave
|
|
68
|
+
dropZone.addEventListener('dragleave', function() {
|
|
69
|
+
dropZone.classList.remove('hover');
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Handle file drop
|
|
73
|
+
dropZone.addEventListener('drop', function(e) {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
dropZone.classList.remove('hover');
|
|
76
|
+
const files = e.dataTransfer.files;
|
|
77
|
+
|
|
78
|
+
if (files.length > 0) {
|
|
79
|
+
showMessage(`File dropped: ${files[0].name}`, false);
|
|
80
|
+
fileInput.files = files;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
showMessage('No file was dropped.', true);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
</script>
|
|
87
|
+
|
|
88
|
+
</body>
|
|
89
|
+
</html>
|
|
@@ -9,3 +9,9 @@ Feature: File upload
|
|
|
9
9
|
And I click the button "upload!"
|
|
10
10
|
And I save the current url to the variable "URL"
|
|
11
11
|
Then I should see "{URL}" matches ".*\?filename=file_upload.feature"
|
|
12
|
+
|
|
13
|
+
Scenario: User can drag and drop to upload a file
|
|
14
|
+
Given I start a webserver at directory "data/www" and save the port to the variable "PORT"
|
|
15
|
+
And I open a browser at the url "http://{HOST_ADDRESS}:{PORT}/drag_drop.html"
|
|
16
|
+
When I wait to drag and drop the file "features/browser/file_upload.feature" to "Click or drag file to this area to upload"
|
|
17
|
+
Then I wait to see the text "File dropped: file_upload.feature"
|
|
@@ -204,7 +204,7 @@ Feature: Report basics
|
|
|
204
204
|
@runtime-timeout
|
|
205
205
|
Scenario: User can run with a runtime timeout and still produce a valid report
|
|
206
206
|
Given I run the command "cucu run data/features/slow_features --runtime-timeout 9 --results {CUCU_RESULTS_DIR}/runtime_timeout_reporting_results" and expect exit code "1"
|
|
207
|
-
Then I should see the previous step took less than "
|
|
207
|
+
Then I should see the previous step took less than "14" seconds
|
|
208
208
|
When I run the command "cucu report {CUCU_RESULTS_DIR}/runtime_timeout_reporting_results --output {CUCU_RESULTS_DIR}/runtime_timeout_reporting_report" and expect exit code "0"
|
|
209
209
|
And I start a webserver at directory "{CUCU_RESULTS_DIR}/runtime_timeout_reporting_report/" and save the port to the variable "PORT"
|
|
210
210
|
And I open a browser at the url "http://{HOST_ADDRESS}:{PORT}/index.html"
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cucu"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.4"
|
|
4
4
|
description = "Easy BDD web testing"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "The Clear BSD License" }
|
|
7
7
|
keywords = ["cucumber", "selenium", "behave"]
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
authors = [
|
|
9
|
+
{name = "Domino Data Lab", email = "open-source@dominodatalab.com"},
|
|
10
|
+
{name = "Rodney Gomes", email = "107359+rlgomes@users.noreply.github.com"},
|
|
11
|
+
{name = "Cedric Young", email = "4129217+ccedricyoung@users.noreply.github.com"},
|
|
12
|
+
{name = "Xin Dong", email = "104880864+ddl-xin@users.noreply.github.com"},
|
|
13
|
+
{name = "Kavya", email = "91882851+ddl-kavya@users.noreply.github.com"},
|
|
14
|
+
{name = "Kevin Garton", email = "71028750+ddl-kgarton@users.noreply.github.com"},
|
|
15
|
+
{name = "Joy Liao", email = "107583686+ddl-joy-liao@users.noreply.github.com"},
|
|
16
|
+
]
|
|
17
|
+
maintainers = [
|
|
18
|
+
{name = "Domino Data Lab", email = "open-source@dominodatalab.com"},
|
|
19
|
+
{name = "Cedric Young", email = "4129217+ccedricyoung@users.noreply.github.com"},
|
|
20
|
+
{name = "Kevin Garton", email = "71028750+ddl-kgarton@users.noreply.github.com"},
|
|
21
|
+
{name = "Brian Colby", email = "92048365+ddl-bcolby@users.noreply.github.com"}
|
|
22
|
+
]
|
|
11
23
|
classifiers = [
|
|
12
24
|
"Development Status :: 4 - Beta",
|
|
13
25
|
"Environment :: Console",
|
|
@@ -52,6 +64,11 @@ dependencies = [
|
|
|
52
64
|
"tenacity~=9.0.0",
|
|
53
65
|
]
|
|
54
66
|
|
|
67
|
+
[project.urls]
|
|
68
|
+
Homepage = "https://github.com/dominodatalab/cucu"
|
|
69
|
+
Download = "https://pypi.org/project/cucu/"
|
|
70
|
+
"Source Code" = "https://github.com/dominodatalab/cucu"
|
|
71
|
+
|
|
55
72
|
[project.scripts]
|
|
56
73
|
cucu = "cucu.cli:main"
|
|
57
74
|
|
|
@@ -2,7 +2,7 @@ import os
|
|
|
2
2
|
|
|
3
3
|
import humanize
|
|
4
4
|
|
|
5
|
-
from cucu import fuzzy, logger, step
|
|
5
|
+
from cucu import fuzzy, logger, retry, step
|
|
6
6
|
from cucu.utils import take_saw_element_screenshot
|
|
7
7
|
|
|
8
8
|
|
|
@@ -69,7 +69,6 @@ JS_DROP_FILE = """
|
|
|
69
69
|
"""
|
|
70
70
|
|
|
71
71
|
|
|
72
|
-
@step('I drag and drop the file "{filepath}" to "{name}"')
|
|
73
72
|
def drag_and_drop_file(ctx, name, filepath):
|
|
74
73
|
drop_target = fuzzy.find(ctx.browser, name, ["*"])
|
|
75
74
|
drop_target_html = drop_target.get_attribute("outerHTML")
|
|
@@ -78,3 +77,13 @@ def drag_and_drop_file(ctx, name, filepath):
|
|
|
78
77
|
)
|
|
79
78
|
file_input = ctx.browser.execute(JS_DROP_FILE, drop_target, 0, 0)
|
|
80
79
|
file_input.send_keys(os.path.abspath(filepath))
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@step('I drag and drop the file "{filepath}" to "{name}"')
|
|
83
|
+
def should_drag_and_drop_file(ctx, filepath, name):
|
|
84
|
+
drag_and_drop_file(ctx, name, filepath)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@step('I wait to drag and drop the file "{filepath}" to "{name}"')
|
|
88
|
+
def wait_to_drag_and_drop_file(ctx, filepath, name):
|
|
89
|
+
retry(drag_and_drop_file)(ctx, name, filepath)
|
|
@@ -11,6 +11,8 @@ import shutil
|
|
|
11
11
|
import humanize
|
|
12
12
|
from tabulate import DataRow, TableFormat, tabulate
|
|
13
13
|
from tenacity import (
|
|
14
|
+
after_log,
|
|
15
|
+
before_log,
|
|
14
16
|
before_sleep_log,
|
|
15
17
|
retry_if_not_exception_type,
|
|
16
18
|
stop_after_delay,
|
|
@@ -119,6 +121,8 @@ def retry(func, wait_up_to_s=None, retry_after_s=None):
|
|
|
119
121
|
stop=stop_after_delay(wait_up_to_s),
|
|
120
122
|
wait=wait_fixed(retry_after_s),
|
|
121
123
|
retry=retry_if_not_exception_type(StopRetryException),
|
|
124
|
+
before=before_log(logger, logging.DEBUG),
|
|
125
|
+
after=after_log(logger, logging.DEBUG),
|
|
122
126
|
before_sleep=before_sleep_log(logger, logging.DEBUG),
|
|
123
127
|
)
|
|
124
128
|
def new_decorator(*args, **kwargs):
|
|
@@ -263,7 +263,7 @@ toml = [
|
|
|
263
263
|
|
|
264
264
|
[[package]]
|
|
265
265
|
name = "cucu"
|
|
266
|
-
version = "1.0.
|
|
266
|
+
version = "1.0.4"
|
|
267
267
|
source = { editable = "." }
|
|
268
268
|
dependencies = [
|
|
269
269
|
{ name = "beautifulsoup4" },
|
|
@@ -771,8 +771,6 @@ version = "6.0.0"
|
|
|
771
771
|
source = { registry = "https://pypi.org/simple" }
|
|
772
772
|
sdist = { url = "https://files.pythonhosted.org/packages/18/c7/8c6872f7372eb6a6b2e4708b88419fb46b857f7a2e1892966b851cc79fc9/psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2", size = 508067 }
|
|
773
773
|
wheels = [
|
|
774
|
-
{ url = "https://files.pythonhosted.org/packages/c5/66/78c9c3020f573c58101dc43a44f6855d01bbbd747e24da2f0c4491200ea3/psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35", size = 249766 },
|
|
775
|
-
{ url = "https://files.pythonhosted.org/packages/e1/3f/2403aa9558bea4d3854b0e5e567bc3dd8e9fbc1fc4453c0aa9aafeb75467/psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1", size = 253024 },
|
|
776
774
|
{ url = "https://files.pythonhosted.org/packages/0b/37/f8da2fbd29690b3557cca414c1949f92162981920699cd62095a984983bf/psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0", size = 250961 },
|
|
777
775
|
{ url = "https://files.pythonhosted.org/packages/35/56/72f86175e81c656a01c4401cd3b1c923f891b31fbcebe98985894176d7c9/psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0", size = 287478 },
|
|
778
776
|
{ url = "https://files.pythonhosted.org/packages/19/74/f59e7e0d392bc1070e9a70e2f9190d652487ac115bb16e2eff6b22ad1d24/psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd", size = 290455 },
|
|
File without changes
|
{cucu-1.0.0 → cucu-1.0.4}/.env
RENAMED
|
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
|
{cucu-1.0.0 → cucu-1.0.4}/data/features/scenario_that_fails_with_after_scenario_steps.feature
RENAMED
|
File without changes
|
{cucu-1.0.0 → cucu-1.0.4}/data/features/scenario_that_passes_with_after_scenario_steps.feature
RENAMED
|
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
|