launchable 1.87.2__tar.gz → 1.89.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.
- {launchable-1.87.2 → launchable-1.89.0}/PKG-INFO +1 -1
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/helper.py +2 -1
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/record/build.py +13 -6
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/record/session.py +10 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/minitest.py +3 -4
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/nunit.py +1 -3
- {launchable-1.87.2 → launchable-1.89.0}/launchable.egg-info/PKG-INFO +1 -1
- {launchable-1.87.2 → launchable-1.89.0}/tests/cli_test_case.py +30 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/record/test_build.py +19 -9
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/record/test_session.py +46 -15
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/record_test_result.json +28 -28
- launchable-1.89.0/tests/test_cli_test_case.py +243 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_minitest.py +0 -21
- launchable-1.87.2/tests/test_cli_test_case.py +0 -43
- {launchable-1.87.2 → launchable-1.89.0}/.bazelrc +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.bazelversion +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.editorconfig +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.github/release.yml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.github/workflows/bazel-test.yml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.github/workflows/e2e.yml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.github/workflows/python-package.yml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.github/workflows/python-publish.yml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.github/workflows/update_maven_install_json.yml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.gitignore +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.pre-commit-config.yaml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.python-version +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/.tagpr +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/CONTRIBUTING.md +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/Dockerfile +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/LICENSE.txt +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/Pipfile +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/README.md +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/WORKSPACE +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/__main__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/app.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/inspect/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/inspect/subset.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/inspect/tests.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/record/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/record/attachment.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/record/case_event.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/record/commit.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/record/tests.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/split_subset.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/stats/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/stats/test_sessions.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/subset.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/test_path_writer.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/commands/verify.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/jar/exe_deploy.jar +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/plugins/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/adb.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/ant.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/bazel.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/behave.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/ctest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/cts.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/cucumber.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/cypress.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/dotnet.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/file.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/go_test.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/googletest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/gradle.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/jest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/launchable.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/maven.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/playwright.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/prove.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/pytest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/raw.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/robot.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/test_runners/rspec.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/testpath.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/authentication.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/ci_provider.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/click.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/commit_ingester.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/env_keys.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/exceptions.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/file_name_pattern.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/git_log_parser.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/glob.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/gzipgen.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/http_client.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/java.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/key_value_type.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/launchable_client.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/link.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/logger.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/no_build.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/sax.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/session.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/subprocess.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/utils/tracking.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable/version.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable.egg-info/SOURCES.txt +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable.egg-info/dependency_links.txt +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable.egg-info/entry_points.txt +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable.egg-info/requires.txt +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/launchable.egg-info/top_level.txt +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/pyproject.toml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/renovate.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/setup.cfg +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/setup.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/BUILD +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/Authenticator.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/BUILD +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/CommitGraphCollector.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/CommitIngester.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/CountingDiffFormatter.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/GitHubActionsAuthenticator.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/GitHubIdTokenAuthenticator.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/JSCommit.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/JSFileChange.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/ObjectRevFilter.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/SSLBypass.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/main/java/com/launchableinc/ingest/commits/TokenAuthenticator.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/maven_install.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/test/java/com/launchableinc/ingest/commits/AllTests.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/test/java/com/launchableinc/ingest/commits/BUILD +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/test/java/com/launchableinc/ingest/commits/CommitGraphCollectorTest.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/test/java/com/launchableinc/ingest/commits/CommitIngesterTest.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/test/java/com/launchableinc/ingest/commits/SSLBypassTest.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/src/test/java/com/launchableinc/ingest/commits/java8-compat.sh +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/test-runner/__main__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/inspect/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/inspect/test_subset.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/inspect/test_tests.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/record/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/record/test_attachment.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/record/test_commit.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/record/test_tests.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/test_api_error.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/test_helper.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/test_split_subset.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/test_subset.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/commands/test_verify.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/adb/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/junitreport/TEST-com.launchable.HelloWorldTest.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/junitreport/TEST-com.launchable.library.CacheTest.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/junitreport/TESTS-TestSuites.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/src/com/launchable/HelloWorld.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/src/com/launchable/HelloWorldTest.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/src/com/launchable/library/Cache.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/src/com/launchable/library/CacheTest.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ant/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.cache_status +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/build_event.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/build_event_rest.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/record_test_with_build_event_json_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/record_test_with_multiple_build_event_json_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/bazel/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/behave/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/behave/reports/report.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/behave/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/broken_xml/broken.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/broken_xml/normal.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ctest/Testing/latest/Test.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ctest/ctest_list.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ctest/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/ctest/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cts/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cts/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cts/test_result.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/features/foo/bar.feature +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/features/foo/is_it_friday_yet.feature +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/features/foo-bar.feature +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/features/is_it_friday_yet.feature +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/record_test_json_result.json +3 -3
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/report/TEST-features-foo-bar.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/report/TEST-features-foo-is_it_friday_yet.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/report/TEST-features-is_it_friday_yet.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/report/dummy.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cucumber/report/result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cypress/empty.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cypress/empty.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cypress/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cypress/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/cypress/test-result.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/dotnet/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/dotnet/test-result.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/git_log_ingest/sample.out +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/go_test/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/go_test/reportv1/reportv1.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/go_test/reportv2/reportv2.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/go_test/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/googletest/fail/output.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/googletest/fail/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/googletest/output_a.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/googletest/output_b.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/googletest/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/googletest/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/gradle/java/app/src/test/java/com/launchableinc/rocket_car_gradle/App2Test.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/gradle/java/app/src/test/java/com/launchableinc/rocket_car_gradle/AppTest.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/gradle/java/app/src/test/java/com/launchableinc/rocket_car_gradle/sub/App3Test.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/gradle/recursion/expected.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/gradle/recursion/foo/bar/reports/1.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/jest/junit.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/jest/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/jest/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/createdFile_1.lst +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/createdFile_2.lst +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/App2Test.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/AppTest.java +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/list.lst +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/reports/TEST-1.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/reports/TEST-2.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/reports/dummy.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/subset_by_absolute_time_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/subset_by_confidence_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/subset_from_file_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/maven/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/TEST-Admin_UserTest.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/TEST-UserControllerTest.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/TEST-UserCopyTest.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/TEST-UserTest.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/record_test_result_chunk1.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/record_test_result_chunk2.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/minitest/test/example_test.rb +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/list.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/nunit-reporter-bug-with-nested-type.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/nunit-reporter-bug-with-nested-type.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/output-linux.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/output-windows.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/record_test_result-linux.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/record_test_result-windows.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/src/.gitignore +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/src/Program.cs +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/src/README.md +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/src/Test.cs +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/src/calc.csproj +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/nunit/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/playwright/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/playwright/record_test_result_with_json.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/playwright/report.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/playwright/report.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/prove/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/prove/report.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/record_test_result_json.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/report.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/report.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/tests/conftest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/tests/fooo/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/tests/fooo/filenameonly_test.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/tests/fooo/func4_test.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/tests/funcs3_test.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/tests/test_funcs1.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/pytest/tests/test_funcs2.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/robot/dryrun.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/robot/output.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/robot/record_test_executed_only_one_file_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/robot/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/robot/single-output.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/robot/subset_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/rspec/record_test_result.json +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/data/rspec/rspec.xml +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/helper.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/plugins/foo.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_plugin.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_adb.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_ant.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_bazel.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_behave.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_ctest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_cts.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_cucumber.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_cypress.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_dotnet.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_go_test.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_googletest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_gradle.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_jest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_maven.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_nunit.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_playwright.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_prove.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_pytest.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_raw.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_robot.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_runners/test_rspec.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_session.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_testpath.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/test_version.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/__init__.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_authentication.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_click.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_file_name_pattern.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_git_log_parser.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_glob.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_gzipgen.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_http_client.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_key_value_type.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_link.py +0 -0
- {launchable-1.87.2 → launchable-1.89.0}/tests/utils/test_logger.py +0 -0
|
@@ -7,7 +7,7 @@ from launchable.utils.tracking import TrackingClient
|
|
|
7
7
|
|
|
8
8
|
from ..app import Application
|
|
9
9
|
from ..utils.launchable_client import LaunchableClient
|
|
10
|
-
from ..utils.session import read_build, read_session
|
|
10
|
+
from ..utils.session import parse_session, read_build, read_session
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def require_session(
|
|
@@ -20,6 +20,7 @@ def require_session(
|
|
|
20
20
|
See https://github.com/launchableinc/cli/pull/342
|
|
21
21
|
"""
|
|
22
22
|
if session:
|
|
23
|
+
parse_session(session) # make sure session is in the right format
|
|
23
24
|
return session
|
|
24
25
|
|
|
25
26
|
session = read_session(require_build())
|
|
@@ -114,12 +114,17 @@ def build(ctx: click.core.Context, build_name: str, source: List[str], max_days:
|
|
|
114
114
|
branch: str
|
|
115
115
|
# SHA1 commit hash that's currently checked out
|
|
116
116
|
commit_hash: str
|
|
117
|
+
# identifier that represents how this workspace info was captured. Temporarily introduced for IB-395
|
|
118
|
+
# currently using 'source' and 'commit' to represent whether a local workspace was present (source) or
|
|
119
|
+
# if it was just given as a commit hash (commit)
|
|
120
|
+
mode: str
|
|
117
121
|
|
|
118
|
-
def __init__(self, name, dir=None, branch=None, commit_hash=None):
|
|
122
|
+
def __init__(self, name, dir=None, branch=None, commit_hash=None, mode=None):
|
|
119
123
|
self.name = name
|
|
120
124
|
self.dir = dir
|
|
121
125
|
self.branch = branch
|
|
122
126
|
self.commit_hash = commit_hash
|
|
127
|
+
self.mode = mode
|
|
123
128
|
|
|
124
129
|
def calc_branch_name(self):
|
|
125
130
|
'''
|
|
@@ -184,9 +189,9 @@ def build(ctx: click.core.Context, build_name: str, source: List[str], max_days:
|
|
|
184
189
|
for s in source:
|
|
185
190
|
if pattern.match(s):
|
|
186
191
|
kv = s.split('=')
|
|
187
|
-
ws.append(Workspace(name=kv[0], dir=kv[1]))
|
|
192
|
+
ws.append(Workspace(name=kv[0], dir=kv[1], mode='source'))
|
|
188
193
|
else:
|
|
189
|
-
ws.append(Workspace(name=s, dir=s))
|
|
194
|
+
ws.append(Workspace(name=s, dir=s, mode='source'))
|
|
190
195
|
# TODO: if repo_dir is absolute path, warn the user that that's probably
|
|
191
196
|
# not what they want to do
|
|
192
197
|
return ws
|
|
@@ -226,7 +231,8 @@ def build(ctx: click.core.Context, build_name: str, source: List[str], max_days:
|
|
|
226
231
|
r.append(Workspace(
|
|
227
232
|
name=w.name + "/" + name,
|
|
228
233
|
dir=w.dir + "/" + name,
|
|
229
|
-
commit_hash=commit_hash
|
|
234
|
+
commit_hash=commit_hash,
|
|
235
|
+
mode='source'))
|
|
230
236
|
return r
|
|
231
237
|
|
|
232
238
|
# figure out the commit hash and branch of those workspaces
|
|
@@ -268,7 +274,7 @@ def build(ctx: click.core.Context, build_name: str, source: List[str], max_days:
|
|
|
268
274
|
err=True)
|
|
269
275
|
sys.exit(1)
|
|
270
276
|
|
|
271
|
-
ws[name] = Workspace(name=name, commit_hash=hash, branch=branch_name_map.get(name))
|
|
277
|
+
ws[name] = Workspace(name=name, commit_hash=hash, branch=branch_name_map.get(name), mode='commit')
|
|
272
278
|
|
|
273
279
|
# make sure no invalid branch name options are given
|
|
274
280
|
for k in branch_name_map:
|
|
@@ -304,7 +310,8 @@ def build(ctx: click.core.Context, build_name: str, source: List[str], max_days:
|
|
|
304
310
|
"commitHashes": [{
|
|
305
311
|
'repositoryName': w.name,
|
|
306
312
|
'commitHash': w.commit_hash,
|
|
307
|
-
'branchName': w.branch or ""
|
|
313
|
+
'branchName': w.branch or "",
|
|
314
|
+
'mode': w.mode
|
|
308
315
|
} for w in ws],
|
|
309
316
|
"links": compute_links()
|
|
310
317
|
}
|
|
@@ -90,6 +90,14 @@ def _validate_session_name(ctx, param, value):
|
|
|
90
90
|
type=str,
|
|
91
91
|
metavar='LINEAGE',
|
|
92
92
|
)
|
|
93
|
+
@click.option(
|
|
94
|
+
'--test-suite',
|
|
95
|
+
'test_suite',
|
|
96
|
+
help='Set test suite name. A test suite is a collection of test sessions. Setting a test suite allows you to manage data over test sessions and lineages.', # noqa: E501
|
|
97
|
+
required=False,
|
|
98
|
+
type=str,
|
|
99
|
+
metavar='TEST_SUITE',
|
|
100
|
+
)
|
|
93
101
|
@click.pass_context
|
|
94
102
|
def session(
|
|
95
103
|
ctx: click.core.Context,
|
|
@@ -102,6 +110,7 @@ def session(
|
|
|
102
110
|
is_no_build: bool = False,
|
|
103
111
|
session_name: Optional[str] = None,
|
|
104
112
|
lineage: Optional[str] = None,
|
|
113
|
+
test_suite: Optional[str] = None,
|
|
105
114
|
):
|
|
106
115
|
"""
|
|
107
116
|
print_session is for backward compatibility.
|
|
@@ -158,6 +167,7 @@ def session(
|
|
|
158
167
|
"isObservation": is_observation,
|
|
159
168
|
"noBuild": is_no_build,
|
|
160
169
|
"lineage": lineage,
|
|
170
|
+
"testSuite": test_suite,
|
|
161
171
|
}
|
|
162
172
|
|
|
163
173
|
_links = capture_link(os.environ)
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import os
|
|
3
|
-
from . import launchable
|
|
1
|
+
import click
|
|
4
2
|
from junitparser import TestCase, TestSuite # type: ignore
|
|
3
|
+
|
|
5
4
|
from ..testpath import TestPath
|
|
6
|
-
import
|
|
5
|
+
from . import launchable
|
|
7
6
|
|
|
8
7
|
subset = launchable.CommonSubsetImpls(__name__).scan_files('*_test.rb')
|
|
9
8
|
split_subset = launchable.CommonSplitSubsetImpls(__name__).split_subset()
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import glob
|
|
2
|
-
import os
|
|
3
1
|
from typing import Callable, Dict, List
|
|
4
2
|
from xml.etree import ElementTree as ET
|
|
5
3
|
|
|
6
4
|
import click
|
|
7
5
|
|
|
8
6
|
from launchable.commands.record.case_event import CaseEvent
|
|
9
|
-
from launchable.testpath import TestPath,
|
|
7
|
+
from launchable.testpath import TestPath, parse_test_path, unparse_test_path
|
|
10
8
|
|
|
11
9
|
from . import launchable
|
|
12
10
|
|
|
@@ -7,6 +7,7 @@ import tempfile
|
|
|
7
7
|
import types
|
|
8
8
|
import unittest
|
|
9
9
|
from pathlib import Path
|
|
10
|
+
from typing import Any, Dict, List
|
|
10
11
|
|
|
11
12
|
import click # type: ignore
|
|
12
13
|
import responses # type: ignore
|
|
@@ -237,6 +238,7 @@ class CliTestCase(unittest.TestCase):
|
|
|
237
238
|
|
|
238
239
|
expected = self.load_json_from_file(self.test_files_dir.joinpath(golden_image_filename))
|
|
239
240
|
self.assert_json_orderless_equal(expected, payload)
|
|
241
|
+
self.assert_test_path_orderly_equal(expected, payload)
|
|
240
242
|
|
|
241
243
|
def assert_subset_payload(self, golden_image_filename: str, payload=None):
|
|
242
244
|
'''
|
|
@@ -294,3 +296,31 @@ class CliTestCase(unittest.TestCase):
|
|
|
294
296
|
return obj
|
|
295
297
|
|
|
296
298
|
self.assertEqual(tree_sorted(a), tree_sorted(b))
|
|
299
|
+
|
|
300
|
+
def assert_test_path_orderly_equal(self, a: Dict[str, Any], b: Dict[str, Any]):
|
|
301
|
+
"""
|
|
302
|
+
Compare orders of the values associated with the `testPath` key in two dictionaries
|
|
303
|
+
|
|
304
|
+
Pre-conditions:
|
|
305
|
+
- Both 'a' and 'b' should contain 'events' key.
|
|
306
|
+
- The value associated with the 'events' key should be a list of dictionaries,
|
|
307
|
+
and each dictionary must include a 'testPath' key.
|
|
308
|
+
|
|
309
|
+
Exceptions:
|
|
310
|
+
- If 'a' or 'b' does not comply with the pre-conditions (e.g., missing keys, wrong data structure),
|
|
311
|
+
the method may raise KeyError or TypeError before the assertion takes place.
|
|
312
|
+
"""
|
|
313
|
+
def extract_all_test_paths(obj: Dict[str, Any]) -> List[str]:
|
|
314
|
+
paths_list = []
|
|
315
|
+
for event in obj['events']:
|
|
316
|
+
paths_list.append(event['testPath'])
|
|
317
|
+
return paths_list
|
|
318
|
+
|
|
319
|
+
a_test_paths = extract_all_test_paths(a)
|
|
320
|
+
b_test_paths = extract_all_test_paths(b)
|
|
321
|
+
|
|
322
|
+
# We cannot compare a and b directory such as `a['events']['testPath']==b['events']['testPath']`.
|
|
323
|
+
# It's because the value associated with the 'events' key is in random order.
|
|
324
|
+
self.assertCountEqual(a_test_paths, b_test_paths)
|
|
325
|
+
for test_path in a_test_paths:
|
|
326
|
+
self.assertIn(test_path, b_test_paths, "Expected to include {}".format(test_path))
|
|
@@ -45,17 +45,20 @@ class BuildTest(CliTestCase):
|
|
|
45
45
|
{
|
|
46
46
|
"repositoryName": ".",
|
|
47
47
|
"commitHash": "c50f5de0f06fe16afa4fd1dd615e4903e40b42a2",
|
|
48
|
-
"branchName": "main"
|
|
48
|
+
"branchName": "main",
|
|
49
|
+
"mode": "source"
|
|
49
50
|
},
|
|
50
51
|
{
|
|
51
52
|
"repositoryName": "./foo",
|
|
52
53
|
"commitHash": "491e03096e2234dab9a9533da714fb6eff5dcaa7",
|
|
53
|
-
"branchName": ""
|
|
54
|
+
"branchName": "",
|
|
55
|
+
"mode": "source"
|
|
54
56
|
},
|
|
55
57
|
{
|
|
56
58
|
"repositoryName": "./bar-zot",
|
|
57
59
|
"commitHash": "8bccab48338219e73c3118ad71c8c98fbd32a4be",
|
|
58
|
-
"branchName": ""
|
|
60
|
+
"branchName": "",
|
|
61
|
+
"mode": "source"
|
|
59
62
|
},
|
|
60
63
|
],
|
|
61
64
|
"links": []
|
|
@@ -88,7 +91,8 @@ class BuildTest(CliTestCase):
|
|
|
88
91
|
{
|
|
89
92
|
"repositoryName": ".",
|
|
90
93
|
"commitHash": "c50f5de0f06fe16afa4fd1dd615e4903e40b42a2",
|
|
91
|
-
"branchName": ""
|
|
94
|
+
"branchName": "",
|
|
95
|
+
"mode": "source"
|
|
92
96
|
},
|
|
93
97
|
],
|
|
94
98
|
"links": []
|
|
@@ -119,6 +123,7 @@ class BuildTest(CliTestCase):
|
|
|
119
123
|
"repositoryName": ".",
|
|
120
124
|
"commitHash": "c50f5de0f06fe16afa4fd1dd615e4903e40b42a2",
|
|
121
125
|
"branchName": "",
|
|
126
|
+
"mode": "commit"
|
|
122
127
|
},
|
|
123
128
|
],
|
|
124
129
|
"links": []
|
|
@@ -146,7 +151,8 @@ class BuildTest(CliTestCase):
|
|
|
146
151
|
{
|
|
147
152
|
"repositoryName": "A",
|
|
148
153
|
"commitHash": "abc12",
|
|
149
|
-
"branchName": ""
|
|
154
|
+
"branchName": "",
|
|
155
|
+
"mode": "commit"
|
|
150
156
|
},
|
|
151
157
|
],
|
|
152
158
|
"links": []
|
|
@@ -174,7 +180,8 @@ class BuildTest(CliTestCase):
|
|
|
174
180
|
{
|
|
175
181
|
"repositoryName": "A",
|
|
176
182
|
"commitHash": "abc12",
|
|
177
|
-
"branchName": "feature-xxx"
|
|
183
|
+
"branchName": "feature-xxx",
|
|
184
|
+
"mode": "commit"
|
|
178
185
|
},
|
|
179
186
|
],
|
|
180
187
|
"links": []
|
|
@@ -202,7 +209,8 @@ class BuildTest(CliTestCase):
|
|
|
202
209
|
{
|
|
203
210
|
"repositoryName": "A",
|
|
204
211
|
"commitHash": "abc12",
|
|
205
|
-
"branchName": ""
|
|
212
|
+
"branchName": "",
|
|
213
|
+
"mode": "commit"
|
|
206
214
|
},
|
|
207
215
|
],
|
|
208
216
|
"links": []
|
|
@@ -235,12 +243,14 @@ class BuildTest(CliTestCase):
|
|
|
235
243
|
{
|
|
236
244
|
"repositoryName": "A",
|
|
237
245
|
"commitHash": "abc12",
|
|
238
|
-
"branchName": "feature-xxx"
|
|
246
|
+
"branchName": "feature-xxx",
|
|
247
|
+
"mode": "commit"
|
|
239
248
|
},
|
|
240
249
|
{
|
|
241
250
|
"repositoryName": "B",
|
|
242
251
|
"commitHash": "56cde",
|
|
243
|
-
"branchName": "feature-yyy"
|
|
252
|
+
"branchName": "feature-yyy",
|
|
253
|
+
"mode": "commit"
|
|
244
254
|
},
|
|
245
255
|
],
|
|
246
256
|
"links": []
|
|
@@ -27,11 +27,14 @@ class SessionTest(CliTestCase):
|
|
|
27
27
|
self.assert_success(result)
|
|
28
28
|
|
|
29
29
|
payload = json.loads(responses.calls[0].request.body.decode())
|
|
30
|
-
self.assert_json_orderless_equal(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
self.assert_json_orderless_equal({
|
|
31
|
+
"flavors": {},
|
|
32
|
+
"isObservation": False,
|
|
33
|
+
"links": [],
|
|
34
|
+
"noBuild": False,
|
|
35
|
+
"lineage": None,
|
|
36
|
+
"testSuite": None,
|
|
37
|
+
}, payload)
|
|
35
38
|
|
|
36
39
|
@responses.activate
|
|
37
40
|
@mock.patch.dict(os.environ, {
|
|
@@ -54,6 +57,7 @@ class SessionTest(CliTestCase):
|
|
|
54
57
|
"links": [],
|
|
55
58
|
"noBuild": False,
|
|
56
59
|
"lineage": None,
|
|
60
|
+
"testSuite": None,
|
|
57
61
|
}, payload)
|
|
58
62
|
|
|
59
63
|
with self.assertRaises(ValueError):
|
|
@@ -73,11 +77,14 @@ class SessionTest(CliTestCase):
|
|
|
73
77
|
|
|
74
78
|
payload = json.loads(responses.calls[0].request.body.decode())
|
|
75
79
|
|
|
76
|
-
self.assert_json_orderless_equal(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
self.assert_json_orderless_equal({
|
|
81
|
+
"flavors": {},
|
|
82
|
+
"isObservation": True,
|
|
83
|
+
"links": [],
|
|
84
|
+
"noBuild": False,
|
|
85
|
+
"lineage": None,
|
|
86
|
+
"testSuite": None,
|
|
87
|
+
}, payload)
|
|
81
88
|
|
|
82
89
|
@responses.activate
|
|
83
90
|
@mock.patch.dict(os.environ, {
|
|
@@ -108,11 +115,14 @@ class SessionTest(CliTestCase):
|
|
|
108
115
|
self.assert_success(result)
|
|
109
116
|
|
|
110
117
|
payload = json.loads(responses.calls[3].request.body.decode())
|
|
111
|
-
self.assert_json_orderless_equal(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
118
|
+
self.assert_json_orderless_equal({
|
|
119
|
+
"flavors": {},
|
|
120
|
+
"isObservation": False,
|
|
121
|
+
"links": [],
|
|
122
|
+
"noBuild": False,
|
|
123
|
+
"lineage": None,
|
|
124
|
+
"testSuite": None,
|
|
125
|
+
}, payload)
|
|
116
126
|
|
|
117
127
|
@responses.activate
|
|
118
128
|
@mock.patch.dict(os.environ, {
|
|
@@ -131,4 +141,25 @@ class SessionTest(CliTestCase):
|
|
|
131
141
|
"links": [],
|
|
132
142
|
"noBuild": False,
|
|
133
143
|
"lineage": "example-lineage",
|
|
144
|
+
"testSuite": None,
|
|
145
|
+
}, payload)
|
|
146
|
+
|
|
147
|
+
@responses.activate
|
|
148
|
+
@mock.patch.dict(os.environ, {
|
|
149
|
+
"LAUNCHABLE_TOKEN": CliTestCase.launchable_token,
|
|
150
|
+
'LANG': 'C.UTF-8',
|
|
151
|
+
}, clear=True)
|
|
152
|
+
def test_run_session_with_test_suite(self):
|
|
153
|
+
result = self.cli("record", "session", "--build", self.build_name,
|
|
154
|
+
"--test-suite", "example-test-suite")
|
|
155
|
+
self.assert_success(result)
|
|
156
|
+
|
|
157
|
+
payload = json.loads(responses.calls[0].request.body.decode())
|
|
158
|
+
self.assert_json_orderless_equal({
|
|
159
|
+
"flavors": {},
|
|
160
|
+
"isObservation": False,
|
|
161
|
+
"links": [],
|
|
162
|
+
"noBuild": False,
|
|
163
|
+
"lineage": None,
|
|
164
|
+
"testSuite": "example-test-suite",
|
|
134
165
|
}, payload)
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"type": "case",
|
|
5
5
|
"testPath": [
|
|
6
6
|
{ "type": "file", "name": "test/models/user_copy_test.rb" },
|
|
7
|
-
{
|
|
8
|
-
"type": "testcase",
|
|
9
|
-
"name": "test_should_save_user_with_name"
|
|
10
|
-
},
|
|
11
7
|
{
|
|
12
8
|
"type": "class",
|
|
13
9
|
"name": "UserCopyTest"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "testcase",
|
|
13
|
+
"name": "test_should_save_user_with_name"
|
|
14
14
|
}
|
|
15
15
|
],
|
|
16
16
|
"duration": 1.602778,
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"type": "case",
|
|
24
24
|
"testPath": [
|
|
25
25
|
{ "type": "file", "name": "test/models/user_copy_test.rb" },
|
|
26
|
-
{
|
|
27
|
-
"type": "testcase",
|
|
28
|
-
"name": "test_should_not_save_user_without_name"
|
|
29
|
-
},
|
|
30
26
|
{
|
|
31
27
|
"type": "class",
|
|
32
28
|
"name": "UserCopyTest"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"type": "testcase",
|
|
32
|
+
"name": "test_should_not_save_user_without_name"
|
|
33
33
|
}
|
|
34
34
|
],
|
|
35
35
|
"duration": 1.606243,
|
|
@@ -42,13 +42,13 @@
|
|
|
42
42
|
"type": "case",
|
|
43
43
|
"testPath": [
|
|
44
44
|
{ "type": "file", "name": "test/models/admin/user_test.rb" },
|
|
45
|
-
{
|
|
46
|
-
"type": "testcase",
|
|
47
|
-
"name": "test_should_not_save_user_without_name"
|
|
48
|
-
},
|
|
49
45
|
{
|
|
50
46
|
"type": "class",
|
|
51
47
|
"name": "Admin::UserTest"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "testcase",
|
|
51
|
+
"name": "test_should_not_save_user_without_name"
|
|
52
52
|
}
|
|
53
53
|
],
|
|
54
54
|
"duration": 1.611738,
|
|
@@ -61,13 +61,13 @@
|
|
|
61
61
|
"type": "case",
|
|
62
62
|
"testPath": [
|
|
63
63
|
{ "type": "file", "name": "test/models/admin/user_test.rb" },
|
|
64
|
-
{
|
|
65
|
-
"type": "testcase",
|
|
66
|
-
"name": "test_should_save_user_with_name"
|
|
67
|
-
},
|
|
68
64
|
{
|
|
69
65
|
"type": "class",
|
|
70
66
|
"name": "Admin::UserTest"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"type": "testcase",
|
|
70
|
+
"name": "test_should_save_user_with_name"
|
|
71
71
|
}
|
|
72
72
|
],
|
|
73
73
|
"duration": 1.607029,
|
|
@@ -80,13 +80,13 @@
|
|
|
80
80
|
"type": "case",
|
|
81
81
|
"testPath": [
|
|
82
82
|
{ "type": "file", "name": "test/models/open_class_user_test.rb" },
|
|
83
|
-
{
|
|
84
|
-
"type": "testcase",
|
|
85
|
-
"name": "test_should_not_save_user_without_name_2"
|
|
86
|
-
},
|
|
87
83
|
{
|
|
88
84
|
"type": "class",
|
|
89
85
|
"name": "UserTest"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"type": "testcase",
|
|
89
|
+
"name": "test_should_not_save_user_without_name_2"
|
|
90
90
|
}
|
|
91
91
|
],
|
|
92
92
|
"duration": 1.614255,
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
"type": "case",
|
|
100
100
|
"testPath": [
|
|
101
101
|
{ "type": "file", "name": "test/controllers/user_test.rb" },
|
|
102
|
-
{
|
|
103
|
-
"type": "testcase",
|
|
104
|
-
"name": "test_should_save_user_with_name"
|
|
105
|
-
},
|
|
106
102
|
{
|
|
107
103
|
"type": "class",
|
|
108
104
|
"name": "UserControllerTest"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"type": "testcase",
|
|
108
|
+
"name": "test_should_save_user_with_name"
|
|
109
109
|
}
|
|
110
110
|
],
|
|
111
111
|
"duration": 1.617726,
|
|
@@ -118,11 +118,11 @@
|
|
|
118
118
|
"type": "case",
|
|
119
119
|
"testPath": [
|
|
120
120
|
{ "type": "file", "name": "test/controllers/user_test.rb" },
|
|
121
|
+
{ "type": "class", "name": "UserControllerTest" },
|
|
121
122
|
{
|
|
122
123
|
"type": "testcase",
|
|
123
124
|
"name": "test_should_not_save_user_without_name"
|
|
124
|
-
}
|
|
125
|
-
{ "type": "class", "name": "UserControllerTest" }
|
|
125
|
+
}
|
|
126
126
|
],
|
|
127
127
|
"duration": 1.611985,
|
|
128
128
|
"status": 1,
|
|
@@ -134,8 +134,8 @@
|
|
|
134
134
|
"type": "case",
|
|
135
135
|
"testPath": [
|
|
136
136
|
{ "type": "file", "name": "test/models/admin/user_test.rb" },
|
|
137
|
-
{ "type": "
|
|
138
|
-
{ "type": "
|
|
137
|
+
{ "type": "class", "name": "Admin::UserTest::ChildlenTest" },
|
|
138
|
+
{ "type": "testcase", "name": "test_child" }
|
|
139
139
|
],
|
|
140
140
|
"duration": 1.599567,
|
|
141
141
|
"status": 1,
|