smart-tests-cli 2.7.3__tar.gz → 2.9.0__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.
- smart_tests_cli-2.9.0/.github/workflows/pre-commit.yml +16 -0
- {smart_tests_cli-2.7.3/smart_tests_cli.egg-info → smart_tests_cli-2.9.0}/PKG-INFO +2 -1
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/pyproject.toml +3 -1
- smart_tests_cli-2.9.0/scripts/update_schema.sh +49 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/__main__.py +17 -1
- smart_tests_cli-2.9.0/smart_tests/commands/analyze/__init__.py +11 -0
- smart_tests_cli-2.9.0/smart_tests/commands/analyze/subset.py +428 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/compare/subsets.py +32 -2
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/get/__init__.py +2 -0
- smart_tests_cli-2.9.0/smart_tests/commands/get/api_schema.py +28 -0
- smart_tests_cli-2.9.0/smart_tests/commands/view/__init__.py +13 -0
- smart_tests_cli-2.9.0/smart_tests/commands/view/flaky_tests.py +115 -0
- smart_tests_cli-2.9.0/smart_tests/commands/view/test_results.py +136 -0
- smart_tests_cli-2.9.0/smart_tests/schema/openapi-schema.json +2882 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/commands.py +8 -1
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/env_keys.py +13 -0
- smart_tests_cli-2.9.0/smart_tests/utils/tracking.py +157 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0/smart_tests_cli.egg-info}/PKG-INFO +2 -1
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests_cli.egg-info/SOURCES.txt +12 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests_cli.egg-info/requires.txt +1 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/compare/test_subsets.py +2 -1
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/record/test_session.py +38 -22
- smart_tests_cli-2.9.0/tests/commands/test_view_flaky_tests.py +414 -0
- smart_tests_cli-2.9.0/tests/commands/test_view_test_results.py +669 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/jasmine/README.md +0 -1
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/karma/subset_payload.json +1 -1
- smart_tests_cli-2.9.0/tests/utils/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_http_client.py +6 -1
- smart_tests_cli-2.9.0/tests/utils/test_tracking.py +312 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/uv.lock +223 -178
- smart_tests_cli-2.7.3/smart_tests/utils/tracking.py +0 -95
- smart_tests_cli-2.7.3/tests/data/playwright/playwright.config.ts +0 -1
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.bazelrc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.bazelversion +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.dockerignore +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.editorconfig +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.github/release.yml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.github/workflows/bazel-test.yml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.github/workflows/e2e.yml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.github/workflows/publish.yml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.github/workflows/test.yml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.github/workflows/update_maven_install_json.yml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.gitignore +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.pre-commit-config.yaml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.python-version +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/.tagpr +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/CLAUDE.md +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/CONTRIBUTING.md +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/Dockerfile +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/LICENSE.txt +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/README.md +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/WORKSPACE +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/build-java.sh +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/renovate.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/scripts/update_docs.sh +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/setup.cfg +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/setup.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/app.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/README.md +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/argument.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/command.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/converters/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/decorators.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/exceptions.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/option.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/parameter.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/args4p/typer/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/compare/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/detect_flakes.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/gate.py +1 -1
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/get/docs.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/inspect/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/inspect/model.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/inspect/subset.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/record/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/record/attachment.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/record/build.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/record/case_event.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/record/commit.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/record/deployment.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/record/session.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/record/tests.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/stats/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/stats/test_sessions.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/subset.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/test_path_writer.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/update/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/update/alias.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/commands/verify.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/antora.yml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/0607-inference.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/0607-subset-creation.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/0607-training.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/507088cf-209d-4856-be3e-60477c166d92.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/confidence-curve.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/customer-example-curve.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/data-flow.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/demo.gif +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions-prioritized.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/flavors.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/github-comment.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/groups-2-record-after.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/how-long-train-ml-model.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/icons/icon-vertical-three-dots-dark.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/illustion-run-whitelisted-tests-1.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/illustration-ignore-flakes-1.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/illustration-rotate-optimize-coverage.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/illustration-run-recently-failed-tests.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/in-place.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/link-to-results-example.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/model-training-evaluation-confidence-curves.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/new-code-existing-tests.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/object-model-june.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/object-model-v2.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/object-model.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/optimization-target.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/predictive-test-selection-observation-mode.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/prioritized-evaluation-session.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/pts-v2-working.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/recording-data.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately-detailed.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-41-20.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-44-15.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-45-10.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-08-22-at-22-50-49.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-1-48-30-pm.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-2-14-11-pm.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-4-50-56-pm.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-06-32-pm.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-09-04-pm.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-21-37-pm.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/builds-dashboard.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/create-api-key.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/initial-settings.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/record-session.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/sending-data/test-session-interface.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/shift-left.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/single-session-compared.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/single-session-result.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/slack-desktop-with-app-messages.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/smart-subset-formation-flow.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-builds-interface-v1png.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-cli-3.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-monthly-time-saved.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_api_key_setting_20210613.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_invite_url_20220613.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_settings_20220613.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/subscription-ux.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/subset-creation.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/subset-exclude.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/subsetting-diagram-2x.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/target-line.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-insights-example.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-pyramid.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-runs-log.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-2.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-3.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-4.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-details-with-content.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-session-report-example.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/test-sessions-layout.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/testing-bottleneck-infinity.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/training-wheels.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/trends.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/triage-email-demo.avif +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/use-case-1.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/use-case-2.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/assets/images/zis-with-groups.png +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/nav.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/pages/getting-started.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/pages/index.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/partials/abbr.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/ROOT/partials/conditionals.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/branch.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/build.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/insight.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/object-model.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/organization.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/subset.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/test-session.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/test-suite.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/concepts/pages/workspace.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/intelligent-test-failure-diagnostics.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/faq.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/how-we-select-tests.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/observe-subset-behavior.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/request-and-run-a-subset-of-tests/choose-a-subset-optimization-target/choose-a-subset-optimization-target.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/request-and-run-a-subset-of-tests/choose-a-subset-optimization-target/smart-subset-optimization-target.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/request-and-run-a-subset-of-tests/request-and-run-a-subset-of-tests.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/request-and-run-a-subset-of-tests/subset-with-the-smart-tests-cli/combine-with-rule-based-test-selection.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/request-and-run-a-subset-of-tests/subset-with-the-smart-tests-cli/replace-static-parallel-suites-dynamic-parallel-subset.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/request-and-run-a-subset-of-tests/subset-with-the-smart-tests-cli/subset-with-the-smart-tests-cli.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/request-and-run-a-subset-of-tests/subset-with-the-smart-tests-cli/zero-input-subsetting/use-groups-to-split-subsets.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/request-and-run-a-subset-of-tests/subset-with-the-smart-tests-cli/zero-input-subsetting/zero-input-subsetting.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/smart-tests-extension-for-VS-code.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/use-cases-for-predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection/viewing-time-savings.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/test-notifications/github-app-for-test-sessions.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/test-notifications/test-notifications-via-slack.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/test-notifications.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/test-results-and-reports.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/test-suite-parallelization/parallelize-your-test-suite-with-the-smart-tests-cli.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/test-suite-parallelization.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/trends.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/features/pages/unhealthy-tests.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/ci-tool-integrations/github-actions.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/ci-tool-integrations.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/cli-reference.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/cli-version.txt +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/adb.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/ant.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/bazel.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/behave.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/ctest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/cucumber.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/cypress.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/dotnet-test.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/flutter.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/go-test.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/googletest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/gradle.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/jest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/karma.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/maven.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/minitest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/playwright.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/prove.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/pytest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/raw.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/robot.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/rspec.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/use-the-generic-file-based-runner-integration.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/vitest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations/xctest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/integrations.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/onboarding-guide/best-practices-checklist.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/onboarding-guide/optional-configurations.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/onboarding-guide.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/policies/data-examples.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/policies/data-privacy-and-protection.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/policies/security-policies.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/policies.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages/c-plus-plus.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages/dotnet.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages/go.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages/java.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages/javascript.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages/perl.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages/python.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages/ruby.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-languages.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/appium.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/cucumber.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/googletest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/jest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/junit.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/minitest.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/nose.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/nunit.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/prove.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/robot.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/rspec.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/selenium.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks/testng.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/supported-test-frameworks.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/resources/pages/troubleshooting.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/getting-started/getting-started.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/getting-started/migration-to-github-oidc-auth.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/getting-started/use-the-cli-with-a-public-repository.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/getting-started/use-the-cli-with-docker-image.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/choose-a-value-for-build-name.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/deal-with-shallow-clones.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-from-multiple-repositories.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/run-under-restricted-networks.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-sessions/record-sessions.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/attach-log-files.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/convert-test-reports-to-junit-format.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/ensure-record-tests-always-runs.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/manage-complex-test-session-layouts.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/record-test-results.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/separate-out-test-suites.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/use-flavors-to-run-the-best-tests-for-an-environment.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/send-data-to-smart-tests.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-predictive-test-selection.adoc +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/jar/exe_deploy.jar +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/plugins/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/adb.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/ant.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/bazel.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/behave.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/codeceptjs.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/ctest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/cts.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/cucumber.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/cypress.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/dotnet.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/file.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/flutter.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/go_test.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/googletest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/gradle.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/jasmine.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/jest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/karma.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/maven.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/minitest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/nunit.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/playwright.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/prove.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/pytest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/raw.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/robot.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/rspec.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/smart_tests.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/vitest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/test_runners/xctest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/testpath.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/authentication.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/ci_provider.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/commit_ingester.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/common_tz.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/edit_distance.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/exceptions.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/fail_fast_mode.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/file_name_pattern.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/git_log_parser.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/glob.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/gzipgen.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/http_client.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/input_snapshot.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/java.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/link.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/logger.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/no_build.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/sax.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/session.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/smart_tests_client.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/subprocess.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/utils/typer_types.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests/version.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests_cli.egg-info/dependency_links.txt +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests_cli.egg-info/entry_points.txt +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/smart_tests_cli.egg-info/top_level.txt +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/BUILD +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/Authenticator.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/BUILD +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/BackgroundWorkStatus.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/BoundedExecutorService.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/ChunkStreamer.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/CommitChunkStreamer.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/CommitGraphCollector.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/ConcurrentConsumer.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/CountingDiffFormatter.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/FileChunkStreamer.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/FlushableConsumer.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/GitFile.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/GitHubActionsAuthenticator.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/GitHubIdTokenAuthenticator.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/IOConsumer.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionProgress.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionResponse.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/JSCommit.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/JSFileChange.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/LaunchableHttpClient.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/Main.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/ObjectRevFilter.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/ProgressReporter.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/SSLBypass.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/TokenAuthenticator.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/TreeReceiver.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/main/java/com/launchableinc/ingest/commits/VirtualFile.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/maven_install.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/AllTests.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/BUILD +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/BoundedExecutorServiceTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/CommitGraphCollectorTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/ConcurrentConsumerTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/FileChunkStreamerTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/MainTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/PassThroughTreeReceiverImpl.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/ProgressReporterTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/SSLBypassTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/src/test/java/com/launchableinc/ingest/commits/java8-compat.sh +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/test-runner/__main__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/converters/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/converters/test_converters.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/test_badcode.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/test_badinput.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/test_command.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/test_decorators.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/test_help.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/test_parameter.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/args4p/test_typer.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/cli_test_case.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/compare/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/inspect/test_model.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/inspect/test_subset.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/record/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/record/test_attachment.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/record/test_build.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/record/test_case_event.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/record/test_commit.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/record/test_deployment.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/record/test_tests.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/test_api_error.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/test_detect_flakes.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/test_gate.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/test_subset.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/test_verify.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/update/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/commands/update/test_alias.py +1 -1
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/adb/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/junitreport/TEST-com.example.HelloWorldTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/junitreport/TEST-com.example.library.CacheTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/junitreport/TESTS-TestSuites.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/src/com/example/HelloWorld.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/src/com/example/HelloWorldTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/src/com/example/library/Cache.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/src/com/example/library/CacheTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ant/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.log +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.cache_status +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/build_event.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/build_event_rest.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/record_test_with_build_event_json_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/record_test_with_multiple_build_event_json_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/bazel/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/behave/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/behave/reports/report.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/behave/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/broken_xml/broken.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/broken_xml/normal.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/codeceptjs/codeceptjs-result.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/codeceptjs/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ctest/Testing/latest/Test.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ctest/ctest_list.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ctest/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/ctest/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cts/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cts/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cts/test_result.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/features/foo/bar.feature +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/features/foo/is_it_friday_yet.feature +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/features/foo-bar.feature +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/features/is_it_friday_yet.feature +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/record_test_json_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/report/TEST-features-foo-bar.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/report/TEST-features-foo-is_it_friday_yet.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/report/TEST-features-is_it_friday_yet.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/report/dummy.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cucumber/report/result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cypress/empty.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cypress/empty.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cypress/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cypress/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/cypress/test-result.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/dotnet/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/dotnet/test-result.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/file/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/file/record_test_result_custom_attribute.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/file/result.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/file/result_custom_attribute.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/flutter/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/flutter/report.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/git_log_ingest/sample.out +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/go_test/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/go_test/reportv1/reportv1.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/go_test/reportv2/reportv2.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/go_test/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/googletest/fail/output.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/googletest/fail/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/googletest/output_a.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/googletest/output_b.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/googletest/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/googletest/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/App2Test.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/AppTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/sub/App3Test.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/gradle/recursion/expected.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/gradle/recursion/foo/bar/reports/1.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/jasmine/jasmine-test-results-v3.99.0.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/jasmine/jasmine-test-results.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/jasmine/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/jasmine/subset_payload.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/jest/junit.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/jest/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/jest/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/karma/README.md +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/karma/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/karma/sample-report.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/karma/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/README.md +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/createdFile_1.lst +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/createdFile_2.lst +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.excludetestapplication.ExcludeTestApplicationTests.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.launchable.demo.CalculatorTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.launchable.demo.MixedTagsTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/dryrun-test/target/surefire-reports/com.example.excludetestapplication.ExcludeTestApplicationTests.txt +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/dryrun-test/target/surefire-reports/com.launchable.demo.CalculatorTest.txt +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/dryrun-test/target/surefire-reports/com.launchable.demo.MixedTagsTest.txt +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/App2Test.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/list.lst +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/reports/TEST-1.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/reports/TEST-2.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/reports/TEST-nested.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/reports/dummy.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/subset_by_absolute_time_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/subset_by_confidence_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/subset_from_file_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/subset_scan_test_compile_lst_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/maven/subset_with_exclude_rules_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/TEST-Admin_UserTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/TEST-UserControllerTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/TEST-UserCopyTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/TEST-UserTest.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/record_test_result_chunk1.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/record_test_result_chunk2.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/minitest/test/example_test.rb +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/list.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/nunit-reporter-bug-with-nested-type.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/nunit-reporter-bug-with-nested-type.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/output-linux.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/output-windows.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/record_test_result-linux.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/record_test_result-windows.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/src/.gitignore +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/src/Program.cs +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/src/README.md +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/src/Test.cs +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/src/calc.csproj +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/nunit/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/packages/e2e/.gitkeep +0 -0
- /smart_tests_cli-2.7.3/tests/data/pytest/tests/fooo/__init__.py → /smart_tests_cli-2.9.0/tests/data/playwright/playwright.config.ts +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/record_test_result_with_json.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/record_test_result_with_json_base.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/record_test_result_with_prefix.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/report.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/report.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/report_with_json_base.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/playwright/report_with_prefix.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/prove/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/prove/report.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/pytest.ini +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/record_test_result_json.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/report.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/report.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/tests/conftest.py +0 -0
- {smart_tests_cli-2.7.3/tests/test_runners → smart_tests_cli-2.9.0/tests/data/pytest/tests/fooo}/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/tests/fooo/filenameonly_test.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/tests/fooo/func4_test.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/tests/funcs3_test.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/tests/test_funcs1.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/pytest/tests/test_funcs2.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/robot/dryrun.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/robot/output.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/robot/record_test_executed_only_one_file_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/robot/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/robot/single-output.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/robot/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/rspec/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/rspec/rspec.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/vitest/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/vitest/report.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/xctest/junit.xml +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/xctest/record_test_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/data/xctest/subset_result.json +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/helper.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/plugins/foo.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_cli_test_case.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_plugin.py +0 -0
- {smart_tests_cli-2.7.3/tests/utils → smart_tests_cli-2.9.0/tests/test_runners}/__init__.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_adb.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_ant.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_bazel.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_behave.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_codeceptjs.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_ctest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_cts.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_cucumber.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_cypress.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_dotnet.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_file.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_go_test.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_googletest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_gradle.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_jasmine.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_jest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_karma.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_maven.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_minitest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_nunit.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_playwright.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_prove.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_pytest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_raw.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_robot.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_rspec.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_vitest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_runners/test_xctest.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_testpath.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/test_version.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_authentication.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_edit_distance.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_fail_fast_mode.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_file_name_pattern.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_git_log_parser.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_glob.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_gzipgen.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_link.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_logger.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_session.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_typer.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tests/utils/test_typer_types.py +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tools/README.md +0 -0
- {smart_tests_cli-2.7.3 → smart_tests_cli-2.9.0}/tools/generate_reference.py +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: pre-commit
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
pre-commit:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v6
|
|
13
|
+
- uses: actions/setup-python@v6
|
|
14
|
+
with:
|
|
15
|
+
python-version-file: .python-version
|
|
16
|
+
- uses: pre-commit/action@v3.0.1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: smart-tests-cli
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.9.0
|
|
4
4
|
Summary: Smart Tests CLI
|
|
5
5
|
Author-email: CloudBees <support@cloudbees.com>
|
|
6
6
|
License: Apache Software License v2
|
|
@@ -19,6 +19,7 @@ Requires-Dist: more-itertools>=7.1.0
|
|
|
19
19
|
Requires-Dist: python-dateutil>=2.9
|
|
20
20
|
Requires-Dist: tabulate>=0.9
|
|
21
21
|
Requires-Dist: click<8.2,>=8.1
|
|
22
|
+
Requires-Dist: InquirerPy>=0.3.4
|
|
22
23
|
Dynamic: license-file
|
|
23
24
|
|
|
24
25
|
This is a CLI to interact with CloudBees Smart Tests.
|
|
@@ -18,6 +18,7 @@ dependencies = [
|
|
|
18
18
|
"python-dateutil>=2.9",
|
|
19
19
|
"tabulate>=0.9",
|
|
20
20
|
"click>=8.1,<8.2",
|
|
21
|
+
"InquirerPy>=0.3.4",
|
|
21
22
|
]
|
|
22
23
|
dynamic = ["version"]
|
|
23
24
|
|
|
@@ -53,6 +54,7 @@ test = "python -m unittest"
|
|
|
53
54
|
test-xml = "python -m test-runner"
|
|
54
55
|
type = "mypy smart_tests tests"
|
|
55
56
|
update-docs = "bash scripts/update_docs.sh"
|
|
57
|
+
update-schema = "bash scripts/update_schema.sh"
|
|
56
58
|
|
|
57
59
|
[build-system]
|
|
58
60
|
requires = ["setuptools>=45", "wheel", "setuptools_scm"]
|
|
@@ -62,6 +64,6 @@ build-backend = "setuptools.build_meta"
|
|
|
62
64
|
packages = ["smart_tests"]
|
|
63
65
|
|
|
64
66
|
[tool.setuptools.package-data]
|
|
65
|
-
smart_tests = ["jar/exe_deploy.jar", "docs/**/*"]
|
|
67
|
+
smart_tests = ["jar/exe_deploy.jar", "docs/**/*", "schema/**/*"]
|
|
66
68
|
|
|
67
69
|
[tool.setuptools_scm]
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Update the bundled OpenAPI schema from mothership dev server
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
CLI_DIR="$(dirname "$SCRIPT_DIR")"
|
|
7
|
+
SCHEMA_FILE="$CLI_DIR/smart_tests/schema/openapi-schema.json"
|
|
8
|
+
|
|
9
|
+
echo "Fetching OpenAPI schema from local dev server..."
|
|
10
|
+
|
|
11
|
+
# Check if mothership is running
|
|
12
|
+
if ! curl -s -f http://localhost:8080/intake/v3/api-docs > /dev/null 2>&1; then
|
|
13
|
+
echo "Error: Mothership dev server not running at localhost:8080"
|
|
14
|
+
echo "Please start it with: cd mothership && bazel run //src/main/java/com/launchableinc/mercury/intake"
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
# Create schema directory if it doesn't exist
|
|
19
|
+
mkdir -p "$(dirname "$SCHEMA_FILE")"
|
|
20
|
+
|
|
21
|
+
# Fetch and save schema
|
|
22
|
+
curl -s http://localhost:8080/intake/v3/api-docs > "$SCHEMA_FILE"
|
|
23
|
+
|
|
24
|
+
# Validate and format the JSON with proper indentation and trailing newline
|
|
25
|
+
python3 << PYTHON_EOF
|
|
26
|
+
import json
|
|
27
|
+
|
|
28
|
+
with open("$SCHEMA_FILE", 'r') as f:
|
|
29
|
+
schema = json.load(f)
|
|
30
|
+
|
|
31
|
+
# Write back with proper formatting
|
|
32
|
+
with open("$SCHEMA_FILE", 'w') as f:
|
|
33
|
+
json.dump(schema, f, indent=2)
|
|
34
|
+
f.write('\n') # Add trailing newline
|
|
35
|
+
PYTHON_EOF
|
|
36
|
+
|
|
37
|
+
echo "✓ Schema updated successfully: $SCHEMA_FILE"
|
|
38
|
+
echo ""
|
|
39
|
+
|
|
40
|
+
# Show what changed
|
|
41
|
+
if git diff --quiet "$SCHEMA_FILE" 2>/dev/null; then
|
|
42
|
+
echo "No changes detected in schema"
|
|
43
|
+
else
|
|
44
|
+
echo "Changes detected:"
|
|
45
|
+
git diff --stat "$SCHEMA_FILE" 2>/dev/null || echo "(Not a git repository)"
|
|
46
|
+
echo ""
|
|
47
|
+
echo "Review with: git diff $SCHEMA_FILE"
|
|
48
|
+
echo "Commit with: git add $SCHEMA_FILE && git commit -m 'Update OpenAPI schema'"
|
|
49
|
+
fi
|
|
@@ -6,6 +6,7 @@ from os.path import basename, dirname, join
|
|
|
6
6
|
|
|
7
7
|
from smart_tests.app import Application
|
|
8
8
|
from smart_tests.args4p.command import Group
|
|
9
|
+
from smart_tests.commands.analyze import analyze
|
|
9
10
|
from smart_tests.commands.compare import compare
|
|
10
11
|
from smart_tests.commands.detect_flakes import detect_flakes
|
|
11
12
|
from smart_tests.commands.gate import gate
|
|
@@ -16,6 +17,8 @@ from smart_tests.commands.stats import stats
|
|
|
16
17
|
from smart_tests.commands.subset import subset
|
|
17
18
|
from smart_tests.commands.update import update
|
|
18
19
|
from smart_tests.commands.verify import verify
|
|
20
|
+
from smart_tests.commands.view import view
|
|
21
|
+
from smart_tests.utils.tracking import send_command_tracking
|
|
19
22
|
|
|
20
23
|
cli = Group(name="cli", callback=Application)
|
|
21
24
|
cli.add_command(record)
|
|
@@ -24,11 +27,13 @@ cli.add_command(subset)
|
|
|
24
27
|
# TODO: main.add_command(split_subset)
|
|
25
28
|
cli.add_command(verify)
|
|
26
29
|
cli.add_command(inspect)
|
|
30
|
+
cli.add_command(analyze)
|
|
27
31
|
cli.add_command(stats)
|
|
28
32
|
cli.add_command(compare)
|
|
29
33
|
cli.add_command(detect_flakes)
|
|
30
34
|
cli.add_command(gate)
|
|
31
35
|
cli.add_command(get)
|
|
36
|
+
cli.add_command(view)
|
|
32
37
|
|
|
33
38
|
|
|
34
39
|
def _load_test_runners():
|
|
@@ -59,7 +64,18 @@ _load_test_runners()
|
|
|
59
64
|
|
|
60
65
|
|
|
61
66
|
def main():
|
|
62
|
-
|
|
67
|
+
argv = sys.argv[:]
|
|
68
|
+
exit_code = 0
|
|
69
|
+
try:
|
|
70
|
+
cli.main()
|
|
71
|
+
except SystemExit as e:
|
|
72
|
+
exit_code = e.code if isinstance(e.code, int) else 1
|
|
73
|
+
finally:
|
|
74
|
+
try:
|
|
75
|
+
send_command_tracking(argv=argv, exit_code=exit_code)
|
|
76
|
+
except Exception:
|
|
77
|
+
pass
|
|
78
|
+
sys.exit(exit_code)
|
|
63
79
|
|
|
64
80
|
|
|
65
81
|
if __name__ == '__main__':
|
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Annotated, List, Optional, Tuple, cast
|
|
3
|
+
|
|
4
|
+
import click
|
|
5
|
+
from InquirerPy import inquirer
|
|
6
|
+
from tabulate import tabulate
|
|
7
|
+
|
|
8
|
+
import smart_tests.args4p.typer as typer
|
|
9
|
+
from smart_tests import args4p
|
|
10
|
+
from smart_tests.app import Application
|
|
11
|
+
from smart_tests.commands.compare.subsets import _display_from_subset_ids, _from_subset_ids, get_column_width, wrap_data
|
|
12
|
+
from smart_tests.utils.smart_tests_client import SmartTestsClient
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _get_previous_subset_id(client: SmartTestsClient, subset_id: int) -> Optional[int]:
|
|
16
|
+
"""Fetch the previous subset ID for the given subset from the API.
|
|
17
|
+
|
|
18
|
+
Returns:
|
|
19
|
+
Previous subset ID if found, None otherwise
|
|
20
|
+
"""
|
|
21
|
+
try:
|
|
22
|
+
response = client.request("get", f"subset-analyze/{subset_id}/previous")
|
|
23
|
+
if response.status_code == HTTPStatus.NOT_FOUND:
|
|
24
|
+
return None
|
|
25
|
+
response.raise_for_status()
|
|
26
|
+
payload = response.json()
|
|
27
|
+
return payload.get("previousSubsettingId")
|
|
28
|
+
except Exception as e:
|
|
29
|
+
client.print_exception_and_recover(e, "Warning: failed to fetch previous subset ID")
|
|
30
|
+
return None
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _get_pts_summary_for_expected_tests(
|
|
34
|
+
expected_tests: List[str],
|
|
35
|
+
expected_rows: List[Tuple[str, int, str, str, float]],
|
|
36
|
+
total_tests: int
|
|
37
|
+
) -> str:
|
|
38
|
+
"""Get summary of PTS effectiveness based on expected tests
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
expected_tests: Tests the user selected
|
|
42
|
+
expected_rows: List of (rank, after_order, test_name, reason, density) for expected tests
|
|
43
|
+
total_tests: Total number of tests in the subset
|
|
44
|
+
|
|
45
|
+
Example output:
|
|
46
|
+
✅ Tests Promoted:
|
|
47
|
+
- test_model.py promoted by 42 positions to rank #1
|
|
48
|
+
|
|
49
|
+
✅ Tests Prioritized:
|
|
50
|
+
- Expected test prioritized at rank #1 out of 67 (top 1.5%)
|
|
51
|
+
|
|
52
|
+
✅ Test Selection:
|
|
53
|
+
- PTS successfully picked expected tests with high confidence
|
|
54
|
+
- test_model.py: density 0.84 (very strong correlation)
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
if not expected_rows:
|
|
58
|
+
return "⚠ No results to analyze"
|
|
59
|
+
|
|
60
|
+
# Calculate metrics
|
|
61
|
+
top_50_percent = total_tests / 2
|
|
62
|
+
|
|
63
|
+
prioritized = [r for r in expected_rows if r[1] <= top_50_percent]
|
|
64
|
+
promoted = [r for r in expected_rows if isinstance(r[0], str) and r[0].startswith('↑')]
|
|
65
|
+
high_density = [r for r in expected_rows if r[4] > 0.6]
|
|
66
|
+
|
|
67
|
+
# Build summary sections
|
|
68
|
+
sections = []
|
|
69
|
+
|
|
70
|
+
# Tests Promoted section (only if one or more promoted) - SHOW FIRST (flashiest metric!)
|
|
71
|
+
if promoted:
|
|
72
|
+
sections.append("✅ Tests Promoted:")
|
|
73
|
+
|
|
74
|
+
for rank, after, test_name, reason, density in promoted:
|
|
75
|
+
short_name = test_name.split('=')[-1].split('/')[-1] if '=' in test_name else test_name.split('/')[-1]
|
|
76
|
+
promotion_amount = int(rank.replace('↑', ''))
|
|
77
|
+
sections.append(f"- {short_name} promoted by {promotion_amount} positions to rank #{after}")
|
|
78
|
+
|
|
79
|
+
# Tests Prioritized section (only if one or more in top 50%)
|
|
80
|
+
if prioritized:
|
|
81
|
+
if sections: # Add spacing if previous section exists
|
|
82
|
+
sections.append("")
|
|
83
|
+
sections.append("✅ Tests Prioritized:")
|
|
84
|
+
|
|
85
|
+
if len(expected_tests) == 1:
|
|
86
|
+
test_rank = prioritized[0][1]
|
|
87
|
+
percentage = (test_rank / total_tests) * 100
|
|
88
|
+
sections.append(f"- Expected test prioritized at rank #{test_rank} out of {total_tests} (top {percentage:.1f}%)")
|
|
89
|
+
else:
|
|
90
|
+
# Multiple tests
|
|
91
|
+
top_n = max(r[1] for r in prioritized)
|
|
92
|
+
percentage = (top_n / total_tests) * 100
|
|
93
|
+
count_text = f"{len(prioritized)}/{len(expected_tests)}"
|
|
94
|
+
sections.append(
|
|
95
|
+
f"- {count_text} of expected tests prioritized in top {top_n} "
|
|
96
|
+
f"out of {total_tests} (top {percentage:.1f}%)")
|
|
97
|
+
|
|
98
|
+
# Show individual rankings if helpful
|
|
99
|
+
for rank, after, test_name, reason, density in prioritized:
|
|
100
|
+
short_name = test_name.split('=')[-1].split('/')[-1] if '=' in test_name else test_name.split('/')[-1]
|
|
101
|
+
sections.append(f"- {short_name} ranked #{after}")
|
|
102
|
+
|
|
103
|
+
# Test Selection section (only if one or more have density > 0.6)
|
|
104
|
+
if high_density:
|
|
105
|
+
sections.append("")
|
|
106
|
+
sections.append("✅ Test Selection:")
|
|
107
|
+
sections.append("- PTS successfully picked expected tests with high confidence")
|
|
108
|
+
|
|
109
|
+
for rank, after, test_name, reason, density in high_density:
|
|
110
|
+
short_name = test_name.split('=')[-1].split('/')[-1] if '=' in test_name else test_name.split('/')[-1]
|
|
111
|
+
|
|
112
|
+
# Descriptive density labels
|
|
113
|
+
if density >= 0.8:
|
|
114
|
+
confidence = "very strong"
|
|
115
|
+
elif density >= 0.7:
|
|
116
|
+
confidence = "strong"
|
|
117
|
+
else:
|
|
118
|
+
confidence = "moderate"
|
|
119
|
+
|
|
120
|
+
sections.append(f"- {short_name}: density {density:.2f} ({confidence} confidence)")
|
|
121
|
+
|
|
122
|
+
return "\n".join(sections) if sections else "⚠ Expected tests were not prioritized, promoted, or had high density"
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def _echo_pts_summary_for_expected_tests(
|
|
126
|
+
expected_tests: List[str],
|
|
127
|
+
rows: List[Tuple[str, int, str, str, float]],
|
|
128
|
+
total_tests: int
|
|
129
|
+
):
|
|
130
|
+
click.echo()
|
|
131
|
+
|
|
132
|
+
# Filter rows for expected tests only
|
|
133
|
+
# rows format: (rank, after_order, test_name, reason, density)
|
|
134
|
+
expected_rows = [
|
|
135
|
+
row for row in rows
|
|
136
|
+
if any(expected in row[2] for expected in expected_tests)
|
|
137
|
+
]
|
|
138
|
+
|
|
139
|
+
summary = _get_pts_summary_for_expected_tests(expected_tests=expected_tests, expected_rows=expected_rows,
|
|
140
|
+
total_tests=total_tests)
|
|
141
|
+
|
|
142
|
+
if summary:
|
|
143
|
+
click.echo()
|
|
144
|
+
click.echo(summary)
|
|
145
|
+
click.echo()
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def _get_related_tests(
|
|
149
|
+
client: SmartTestsClient,
|
|
150
|
+
changed_files: List[str],
|
|
151
|
+
selected_tests: List[str],
|
|
152
|
+
promoted_tests_data: List[Tuple[str, int, str, str, float]]
|
|
153
|
+
) -> List[str]:
|
|
154
|
+
"""Get related test suggestions from backend.
|
|
155
|
+
|
|
156
|
+
Args:
|
|
157
|
+
client: API client
|
|
158
|
+
changed_files: List of changed file paths
|
|
159
|
+
selected_tests: Tests user expected to be prioritized
|
|
160
|
+
promoted_tests_data: Tuples of (rank, promotion, test_name, reason, density)
|
|
161
|
+
|
|
162
|
+
Returns:
|
|
163
|
+
List of suggested test names (max 3), or empty list on failure
|
|
164
|
+
"""
|
|
165
|
+
try:
|
|
166
|
+
# Limit to 500 tests
|
|
167
|
+
promoted_tests_payload = [
|
|
168
|
+
{
|
|
169
|
+
"testName": name,
|
|
170
|
+
"promotionAmount": promo,
|
|
171
|
+
"density": density
|
|
172
|
+
}
|
|
173
|
+
for rank, promo, name, reason, density in promoted_tests_data[:500]
|
|
174
|
+
]
|
|
175
|
+
|
|
176
|
+
payload = {
|
|
177
|
+
"changedFiles": sorted(changed_files),
|
|
178
|
+
"selectedTests": selected_tests,
|
|
179
|
+
"promotedTests": promoted_tests_payload
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
response = client.request(
|
|
183
|
+
"post",
|
|
184
|
+
"subset-analyze/suggest-related-tests",
|
|
185
|
+
payload=payload
|
|
186
|
+
)
|
|
187
|
+
response.raise_for_status()
|
|
188
|
+
return response.json().get("relatedTests", [])
|
|
189
|
+
|
|
190
|
+
except Exception:
|
|
191
|
+
return []
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
def _analyze_subset(app: Application, subset_id: int, baseline_subset_id: Optional[int]):
|
|
195
|
+
client = SmartTestsClient(app=app)
|
|
196
|
+
|
|
197
|
+
# If baseline_subset_id not provided, try to fetch from API
|
|
198
|
+
if baseline_subset_id is None:
|
|
199
|
+
click.echo("→ Fetching previous subset ID...")
|
|
200
|
+
baseline_subset_id = _get_previous_subset_id(client, subset_id)
|
|
201
|
+
if baseline_subset_id is None:
|
|
202
|
+
click.secho(
|
|
203
|
+
"✗ No previous subset available for comparison. This appears to be the first subset.",
|
|
204
|
+
fg="red",
|
|
205
|
+
err=True
|
|
206
|
+
)
|
|
207
|
+
return
|
|
208
|
+
click.echo(f"✓ Found previous subset ID: {baseline_subset_id}")
|
|
209
|
+
|
|
210
|
+
click.echo("→ Fetching subset data...")
|
|
211
|
+
try:
|
|
212
|
+
rows, total, promoted, demoted, affected = _from_subset_ids(client, baseline_subset_id, subset_id)
|
|
213
|
+
except Exception as e:
|
|
214
|
+
click.secho(f"✗ Failed to fetch subset data: {e}", fg="red", err=True)
|
|
215
|
+
return
|
|
216
|
+
|
|
217
|
+
# Filter out DELETED tests - rows format: (rank, after_order, test_name, reason, density)
|
|
218
|
+
# After filtering: rank is str, after_order is int, density is float
|
|
219
|
+
rows_without_deleted = cast(
|
|
220
|
+
List[Tuple[str, int, str, str, float]],
|
|
221
|
+
[row for row in rows if row[0] != "DELETED"]
|
|
222
|
+
)
|
|
223
|
+
test_names = [row[2] for row in rows_without_deleted]
|
|
224
|
+
|
|
225
|
+
if not test_names:
|
|
226
|
+
click.secho("✗ No tests found in subset", fg="red", err=True)
|
|
227
|
+
return
|
|
228
|
+
|
|
229
|
+
click.echo(f"✓ Found {len(test_names)} tests in subset")
|
|
230
|
+
click.echo()
|
|
231
|
+
|
|
232
|
+
# Step 1: Select Expected Tests
|
|
233
|
+
click.echo("─" * 70)
|
|
234
|
+
click.echo("Select Expected Tests")
|
|
235
|
+
click.echo("─" * 70)
|
|
236
|
+
click.echo()
|
|
237
|
+
|
|
238
|
+
if affected:
|
|
239
|
+
click.echo("Code files modified:")
|
|
240
|
+
for file in sorted(affected):
|
|
241
|
+
click.echo(" - " + click.style(file, bold=True))
|
|
242
|
+
click.echo()
|
|
243
|
+
|
|
244
|
+
click.echo("Which tests do you expect PTS to prioritize?")
|
|
245
|
+
click.echo()
|
|
246
|
+
|
|
247
|
+
expected_tests = []
|
|
248
|
+
if inquirer.confirm(message="Select expected tests?", default=True).execute():
|
|
249
|
+
click.echo()
|
|
250
|
+
tab_space = click.style("Tab/Space", fg="cyan")
|
|
251
|
+
enter_key = click.style("Enter", fg="cyan")
|
|
252
|
+
click.echo(
|
|
253
|
+
f"Use {tab_space} to toggle selection, {enter_key} when done"
|
|
254
|
+
)
|
|
255
|
+
click.echo()
|
|
256
|
+
|
|
257
|
+
try:
|
|
258
|
+
expected_tests = inquirer.fuzzy(
|
|
259
|
+
message="Search and select expected tests:",
|
|
260
|
+
choices=test_names,
|
|
261
|
+
multiselect=True,
|
|
262
|
+
max_height="70%",
|
|
263
|
+
mandatory=True,
|
|
264
|
+
marker="✓ ",
|
|
265
|
+
marker_pl=" ",
|
|
266
|
+
).execute()
|
|
267
|
+
|
|
268
|
+
if expected_tests:
|
|
269
|
+
click.echo(f"\n✓ Selected {len(expected_tests)} expected test(s):")
|
|
270
|
+
for test in expected_tests:
|
|
271
|
+
click.echo(f" • {test}")
|
|
272
|
+
else:
|
|
273
|
+
click.echo("\nNo tests selected.")
|
|
274
|
+
except (KeyboardInterrupt, EOFError):
|
|
275
|
+
click.echo("\nSkipped test selection.")
|
|
276
|
+
expected_tests = []
|
|
277
|
+
|
|
278
|
+
# If user didn't select any tests, fallback to:
|
|
279
|
+
# smart_tests/commands/compare/subsets.py
|
|
280
|
+
if not expected_tests:
|
|
281
|
+
_display_from_subset_ids(rows, total, promoted, demoted, affected)
|
|
282
|
+
return
|
|
283
|
+
|
|
284
|
+
# Step 2: Show Comparison Results
|
|
285
|
+
rows_matching_expected_tests = [
|
|
286
|
+
(rank, after, test_name, reason, density)
|
|
287
|
+
for rank, after, test_name, reason, density in rows_without_deleted
|
|
288
|
+
if any(expected in test_name for expected in expected_tests)
|
|
289
|
+
]
|
|
290
|
+
|
|
291
|
+
click.echo()
|
|
292
|
+
click.echo("─" * 70)
|
|
293
|
+
click.echo("Comparison Results")
|
|
294
|
+
click.echo("─" * 70)
|
|
295
|
+
click.echo()
|
|
296
|
+
|
|
297
|
+
# Show filtered table
|
|
298
|
+
headers = ["Δ Rank", "Subset Rank", "Test Name", "Reason", "Density"]
|
|
299
|
+
column_width = get_column_width()
|
|
300
|
+
tabular_data = [
|
|
301
|
+
(rank, after, wrap_data(test_name, width=column_width), wrap_data(reason, width=column_width), density)
|
|
302
|
+
for rank, after, test_name, reason, density in rows_matching_expected_tests
|
|
303
|
+
]
|
|
304
|
+
click.echo(tabulate(tabular_data, headers=headers, tablefmt="simple"))
|
|
305
|
+
|
|
306
|
+
# Check if any expected tests were prioritized (top 50%) or promoted
|
|
307
|
+
top_50_percent = total / 2
|
|
308
|
+
any_prioritized_or_promoted = any(
|
|
309
|
+
rank.startswith('↑') or after <= top_50_percent
|
|
310
|
+
for rank, after, test_name, reason, density in rows_matching_expected_tests
|
|
311
|
+
)
|
|
312
|
+
|
|
313
|
+
if not any_prioritized_or_promoted:
|
|
314
|
+
# Try to suggest related tests using backend
|
|
315
|
+
suggestions = []
|
|
316
|
+
try:
|
|
317
|
+
# Build list of tests to send to backend for suggestions
|
|
318
|
+
# Include: (1) Top 50% tests, (2) All promoted tests
|
|
319
|
+
# This ensures backend sees both high-ranking tests and tests that moved significantly
|
|
320
|
+
top_50_percent = total / 2
|
|
321
|
+
|
|
322
|
+
# Collect tests to send to backend (use dict to deduplicate by test_name)
|
|
323
|
+
# Store: (rank_str, promotion_amount, test_name, reason, density, after_order)
|
|
324
|
+
tests_for_ai = {}
|
|
325
|
+
|
|
326
|
+
for rank, after, test_name, reason, density in rows_without_deleted:
|
|
327
|
+
# Calculate promotion amount
|
|
328
|
+
if isinstance(rank, str) and rank.startswith('↑'):
|
|
329
|
+
promotion_amount = int(rank.replace('↑', ''))
|
|
330
|
+
else:
|
|
331
|
+
promotion_amount = 0
|
|
332
|
+
|
|
333
|
+
# Include if in top 50% OR promoted
|
|
334
|
+
if after <= top_50_percent or promotion_amount > 0:
|
|
335
|
+
tests_for_ai[test_name] = (rank, promotion_amount, test_name, reason, density, after)
|
|
336
|
+
|
|
337
|
+
# Convert to list and sort by:
|
|
338
|
+
# 1. Promotion amount (descending) - most promoted first
|
|
339
|
+
# 2. Rank position (ascending) - lower rank is better
|
|
340
|
+
tests_with_order = list(tests_for_ai.values())
|
|
341
|
+
tests_with_order.sort(key=lambda x: (-x[1], x[5]))
|
|
342
|
+
|
|
343
|
+
# Remove after_order from tuples (backend expects 5-tuple)
|
|
344
|
+
promoted_tests_data: List[Tuple[str, int, str, str, float]] = [
|
|
345
|
+
(rank, promo, name, reason, density)
|
|
346
|
+
for rank, promo, name, reason, density, after in tests_with_order
|
|
347
|
+
]
|
|
348
|
+
|
|
349
|
+
# Limit to 500 tests for backend context
|
|
350
|
+
# Why limit the context?
|
|
351
|
+
# - LLMs doesn't perform well in very long contexts
|
|
352
|
+
# - 500 tests ≈ 12.5K tokens, well within limits
|
|
353
|
+
# - 500 limit should cover top 50% of test + all promoted tests in most large test suites (1000+ tests)
|
|
354
|
+
promoted_tests_data = promoted_tests_data[:500]
|
|
355
|
+
|
|
356
|
+
if affected and promoted_tests_data:
|
|
357
|
+
suggestions = _get_related_tests(
|
|
358
|
+
client=client,
|
|
359
|
+
changed_files=sorted(affected),
|
|
360
|
+
selected_tests=expected_tests,
|
|
361
|
+
promoted_tests_data=promoted_tests_data
|
|
362
|
+
)
|
|
363
|
+
except Exception:
|
|
364
|
+
pass
|
|
365
|
+
|
|
366
|
+
click.echo()
|
|
367
|
+
|
|
368
|
+
if not suggestions:
|
|
369
|
+
click.secho("⚠ Expected test(s) were not promoted in this instance.")
|
|
370
|
+
click.echo("- Make sure subset is created with related tests")
|
|
371
|
+
click.echo("- Or try modifying a different file, and try again")
|
|
372
|
+
click.echo()
|
|
373
|
+
|
|
374
|
+
if inquirer.confirm(
|
|
375
|
+
message="Would you like to search and inspect all tests?",
|
|
376
|
+
default=True
|
|
377
|
+
).execute():
|
|
378
|
+
_display_from_subset_ids(rows, total, promoted, demoted, affected)
|
|
379
|
+
|
|
380
|
+
return
|
|
381
|
+
|
|
382
|
+
# Show suggestions as selectable options
|
|
383
|
+
click.secho("Did you expect the following test(s) instead?", fg="cyan")
|
|
384
|
+
|
|
385
|
+
suggestion_choices = []
|
|
386
|
+
suggestion_map = {} # Map display text to test name
|
|
387
|
+
for suggestion in suggestions:
|
|
388
|
+
# Find the test in rows to show its stats
|
|
389
|
+
for rank, after, test_name, reason, density in rows_without_deleted:
|
|
390
|
+
if suggestion in test_name:
|
|
391
|
+
display_text = f"{test_name} (Rank #{after}, {rank}, Density {density:.2f})"
|
|
392
|
+
suggestion_choices.append(display_text)
|
|
393
|
+
suggestion_map[display_text] = test_name
|
|
394
|
+
break
|
|
395
|
+
|
|
396
|
+
suggestion_choices.append("No, search all tests instead")
|
|
397
|
+
|
|
398
|
+
selected_option = inquirer.select(
|
|
399
|
+
message="Select a test to see its summary:",
|
|
400
|
+
choices=suggestion_choices,
|
|
401
|
+
default=suggestion_choices[0] if suggestion_choices else None,
|
|
402
|
+
).execute()
|
|
403
|
+
|
|
404
|
+
if selected_option != "No, search all tests instead":
|
|
405
|
+
# User selected a suggested test - show AI summary for it
|
|
406
|
+
selected_test_name = suggestion_map[selected_option]
|
|
407
|
+
_echo_pts_summary_for_expected_tests([selected_test_name], rows_without_deleted, total)
|
|
408
|
+
return
|
|
409
|
+
else:
|
|
410
|
+
_display_from_subset_ids(rows, total, promoted, demoted, affected)
|
|
411
|
+
return
|
|
412
|
+
|
|
413
|
+
_echo_pts_summary_for_expected_tests(expected_tests, rows_without_deleted, total)
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
@args4p.command()
|
|
417
|
+
def subset(
|
|
418
|
+
app: Application,
|
|
419
|
+
subset_id: Annotated[int, typer.Argument(help="Subset ID to analyze")],
|
|
420
|
+
baseline_subset_id: Annotated[
|
|
421
|
+
Optional[int],
|
|
422
|
+
typer.Option(
|
|
423
|
+
"--baseline-subset-id",
|
|
424
|
+
help="Baseline subset ID to compare against (auto-detected if not provided)"
|
|
425
|
+
)
|
|
426
|
+
] = None,
|
|
427
|
+
):
|
|
428
|
+
_analyze_subset(app, subset_id, baseline_subset_id)
|
|
@@ -136,7 +136,12 @@ def subsets(
|
|
|
136
136
|
client = SmartTestsClient(app=app)
|
|
137
137
|
# for type check
|
|
138
138
|
assert subset_id_before is not None and subset_id_after is not None
|
|
139
|
-
|
|
139
|
+
rows, total, promoted, demoted, affected = _from_subset_ids(
|
|
140
|
+
client=client,
|
|
141
|
+
subset_id_before=subset_id_before,
|
|
142
|
+
subset_id_after=subset_id_after
|
|
143
|
+
)
|
|
144
|
+
_display_from_subset_ids(rows, total, promoted, demoted, affected)
|
|
140
145
|
return
|
|
141
146
|
|
|
142
147
|
# for type check
|
|
@@ -144,7 +149,14 @@ def subsets(
|
|
|
144
149
|
_from_files(file_before=file_before, file_after=file_after)
|
|
145
150
|
|
|
146
151
|
|
|
147
|
-
def _from_subset_ids(
|
|
152
|
+
def _from_subset_ids(
|
|
153
|
+
client: SmartTestsClient,
|
|
154
|
+
subset_id_before: int,
|
|
155
|
+
subset_id_after: int
|
|
156
|
+
) -> Tuple[List[Tuple[str, Union[int, str], str, str, Union[float, str]]], int, int, int, set]:
|
|
157
|
+
"""Compare two subsets, and return in format:
|
|
158
|
+
Tuple of (rows, total, promoted, demoted, affected)
|
|
159
|
+
"""
|
|
148
160
|
before_subset = SubsetResults.load(client, subset_id_before)
|
|
149
161
|
after_subset = SubsetResults.load(client, subset_id_after)
|
|
150
162
|
|
|
@@ -186,6 +198,24 @@ def _from_subset_ids(client: SmartTestsClient, subset_id_before: int, subset_id_
|
|
|
186
198
|
if after_subset.get_order(test_name) is None:
|
|
187
199
|
rows.append(("DELETED", '-', test_name, "", ""))
|
|
188
200
|
|
|
201
|
+
return rows, total, promoted, demoted, affected
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def _display_from_subset_ids(
|
|
205
|
+
rows: List[Tuple[str, Union[int, str], str, str, Union[float, str]]],
|
|
206
|
+
total: int,
|
|
207
|
+
promoted: int,
|
|
208
|
+
demoted: int,
|
|
209
|
+
affected: set
|
|
210
|
+
) -> None:
|
|
211
|
+
"""Display subset comparison results.
|
|
212
|
+
Args:
|
|
213
|
+
rows: List of tuples (rank, after_order, test_name, reason, density)
|
|
214
|
+
total: Total number of tests
|
|
215
|
+
promoted: Number of promoted tests
|
|
216
|
+
demoted: Number of demoted tests
|
|
217
|
+
affected: Set of affected file paths
|
|
218
|
+
"""
|
|
189
219
|
summary = f"""PTS subset change summary:
|
|
190
220
|
────────────────────────────────
|
|
191
221
|
-> {total} tests analyzed | {promoted} ↑ promoted | {demoted} ↓ demoted
|