smart-tests-cli 2.4.0__tar.gz → 2.4.2__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.
Files changed (423) hide show
  1. smart_tests_cli-2.4.2/.dockerignore +5 -0
  2. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/PKG-INFO +1 -1
  3. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/smart_tests.py +10 -6
  4. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/session.py +16 -2
  5. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests_cli.egg-info/PKG-INFO +1 -1
  6. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests_cli.egg-info/SOURCES.txt +6 -0
  7. smart_tests_cli-2.4.2/tests/data/file/record_test_result.json +53 -0
  8. smart_tests_cli-2.4.2/tests/data/file/record_test_result_custom_attribute.json +45 -0
  9. smart_tests_cli-2.4.2/tests/data/file/result.xml +9 -0
  10. smart_tests_cli-2.4.2/tests/data/file/result_custom_attribute.xml +9 -0
  11. smart_tests_cli-2.4.2/tests/test_runners/test_file.py +41 -0
  12. smart_tests_cli-2.4.2/tests/utils/test_session.py +89 -0
  13. smart_tests_cli-2.4.0/tests/utils/test_session.py +0 -48
  14. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.bazelrc +0 -0
  15. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.bazelversion +0 -0
  16. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.editorconfig +0 -0
  17. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.github/release.yml +0 -0
  18. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.github/workflows/bazel-test.yml +0 -0
  19. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.github/workflows/e2e.yml +0 -0
  20. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.github/workflows/publish.yml +0 -0
  21. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.github/workflows/test.yml +0 -0
  22. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.github/workflows/update_maven_install_json.yml +0 -0
  23. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.gitignore +0 -0
  24. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.pre-commit-config.yaml +0 -0
  25. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.python-version +0 -0
  26. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/.tagpr +0 -0
  27. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/CLAUDE.md +0 -0
  28. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/CONTRIBUTING.md +0 -0
  29. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/Dockerfile +0 -0
  30. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/LICENSE.txt +0 -0
  31. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/README.md +0 -0
  32. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/WORKSPACE +0 -0
  33. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/build-java.sh +0 -0
  34. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/pyproject.toml +0 -0
  35. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/renovate.json +0 -0
  36. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/setup.cfg +0 -0
  37. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/setup.py +0 -0
  38. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/__init__.py +0 -0
  39. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/__main__.py +0 -0
  40. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/app.py +0 -0
  41. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/README.md +0 -0
  42. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/__init__.py +0 -0
  43. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/argument.py +0 -0
  44. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/command.py +0 -0
  45. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/converters/__init__.py +0 -0
  46. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/decorators.py +0 -0
  47. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/exceptions.py +0 -0
  48. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/option.py +0 -0
  49. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/parameter.py +0 -0
  50. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/args4p/typer/__init__.py +0 -0
  51. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/__init__.py +0 -0
  52. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/compare/__init__.py +0 -0
  53. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/compare/subsets.py +0 -0
  54. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/detect_flakes.py +0 -0
  55. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/gate.py +0 -0
  56. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/inspect/__init__.py +0 -0
  57. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/inspect/model.py +0 -0
  58. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/inspect/subset.py +0 -0
  59. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/record/__init__.py +0 -0
  60. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/record/attachment.py +0 -0
  61. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/record/build.py +0 -0
  62. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/record/case_event.py +0 -0
  63. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/record/commit.py +0 -0
  64. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/record/session.py +0 -0
  65. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/record/tests.py +0 -0
  66. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/stats/__init__.py +0 -0
  67. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/stats/test_sessions.py +0 -0
  68. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/subset.py +0 -0
  69. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/test_path_writer.py +0 -0
  70. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/commands/verify.py +0 -0
  71. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/jar/exe_deploy.jar +0 -0
  72. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/plugins/__init__.py +0 -0
  73. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/__init__.py +0 -0
  74. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/adb.py +0 -0
  75. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/ant.py +0 -0
  76. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/bazel.py +0 -0
  77. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/behave.py +0 -0
  78. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/codeceptjs.py +0 -0
  79. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/ctest.py +0 -0
  80. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/cts.py +0 -0
  81. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/cucumber.py +0 -0
  82. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/cypress.py +0 -0
  83. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/dotnet.py +0 -0
  84. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/file.py +0 -0
  85. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/flutter.py +0 -0
  86. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/go_test.py +0 -0
  87. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/googletest.py +0 -0
  88. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/gradle.py +0 -0
  89. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/jasmine.py +0 -0
  90. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/jest.py +0 -0
  91. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/karma.py +0 -0
  92. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/maven.py +0 -0
  93. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/minitest.py +0 -0
  94. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/nunit.py +0 -0
  95. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/playwright.py +0 -0
  96. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/prove.py +0 -0
  97. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/pytest.py +0 -0
  98. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/raw.py +0 -0
  99. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/robot.py +0 -0
  100. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/rspec.py +0 -0
  101. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/vitest.py +0 -0
  102. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/test_runners/xctest.py +0 -0
  103. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/testpath.py +0 -0
  104. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/__init__.py +0 -0
  105. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/authentication.py +0 -0
  106. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/ci_provider.py +0 -0
  107. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/commands.py +0 -0
  108. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/commit_ingester.py +0 -0
  109. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/common_tz.py +0 -0
  110. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/edit_distance.py +0 -0
  111. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/env_keys.py +0 -0
  112. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/exceptions.py +0 -0
  113. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/fail_fast_mode.py +0 -0
  114. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/file_name_pattern.py +0 -0
  115. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/git_log_parser.py +0 -0
  116. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/glob.py +0 -0
  117. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/gzipgen.py +0 -0
  118. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/http_client.py +0 -0
  119. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/input_snapshot.py +0 -0
  120. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/java.py +0 -0
  121. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/link.py +0 -0
  122. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/logger.py +0 -0
  123. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/no_build.py +0 -0
  124. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/sax.py +0 -0
  125. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/smart_tests_client.py +0 -0
  126. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/subprocess.py +0 -0
  127. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/tracking.py +0 -0
  128. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/utils/typer_types.py +0 -0
  129. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests/version.py +0 -0
  130. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests_cli.egg-info/dependency_links.txt +0 -0
  131. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests_cli.egg-info/entry_points.txt +0 -0
  132. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests_cli.egg-info/requires.txt +0 -0
  133. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/smart_tests_cli.egg-info/top_level.txt +0 -0
  134. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/BUILD +0 -0
  135. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/Authenticator.java +0 -0
  136. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/BUILD +0 -0
  137. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/BackgroundWorkStatus.java +0 -0
  138. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/BoundedExecutorService.java +0 -0
  139. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/ChunkStreamer.java +0 -0
  140. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/CommitChunkStreamer.java +0 -0
  141. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/CommitGraphCollector.java +0 -0
  142. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/ConcurrentConsumer.java +0 -0
  143. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/CountingDiffFormatter.java +0 -0
  144. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/FileChunkStreamer.java +0 -0
  145. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/FlushableConsumer.java +0 -0
  146. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/GitFile.java +0 -0
  147. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/GitHubActionsAuthenticator.java +0 -0
  148. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/GitHubIdTokenAuthenticator.java +0 -0
  149. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/IOConsumer.java +0 -0
  150. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionProgress.java +0 -0
  151. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionResponse.java +0 -0
  152. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/JSCommit.java +0 -0
  153. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/JSFileChange.java +0 -0
  154. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/LaunchableHttpClient.java +0 -0
  155. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/Main.java +0 -0
  156. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/ObjectRevFilter.java +0 -0
  157. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/ProgressReporter.java +0 -0
  158. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/SSLBypass.java +0 -0
  159. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/TokenAuthenticator.java +0 -0
  160. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/TreeReceiver.java +0 -0
  161. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/main/java/com/launchableinc/ingest/commits/VirtualFile.java +0 -0
  162. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/maven_install.json +0 -0
  163. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/AllTests.java +0 -0
  164. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/BUILD +0 -0
  165. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/BoundedExecutorServiceTest.java +0 -0
  166. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/CommitGraphCollectorTest.java +0 -0
  167. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/ConcurrentConsumerTest.java +0 -0
  168. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/FileChunkStreamerTest.java +0 -0
  169. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/MainTest.java +0 -0
  170. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/PassThroughTreeReceiverImpl.java +0 -0
  171. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/ProgressReporterTest.java +0 -0
  172. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/SSLBypassTest.java +0 -0
  173. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/src/test/java/com/launchableinc/ingest/commits/java8-compat.sh +0 -0
  174. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/test-runner/__main__.py +0 -0
  175. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/__init__.py +0 -0
  176. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/__init__.py +0 -0
  177. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/converters/__init__.py +0 -0
  178. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/converters/test_converters.py +0 -0
  179. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/test_badcode.py +0 -0
  180. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/test_badinput.py +0 -0
  181. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/test_command.py +0 -0
  182. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/test_decorators.py +0 -0
  183. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/test_help.py +0 -0
  184. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/test_parameter.py +0 -0
  185. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/args4p/test_typer.py +0 -0
  186. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/cli_test_case.py +0 -0
  187. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/__init__.py +0 -0
  188. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/compare/__init__.py +0 -0
  189. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/compare/test_subsets.py +0 -0
  190. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/inspect/test_model.py +0 -0
  191. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/inspect/test_subset.py +0 -0
  192. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/record/__init__.py +0 -0
  193. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/record/test_attachment.py +0 -0
  194. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/record/test_build.py +0 -0
  195. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/record/test_case_event.py +0 -0
  196. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/record/test_commit.py +0 -0
  197. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/record/test_session.py +0 -0
  198. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/record/test_tests.py +0 -0
  199. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/test_api_error.py +0 -0
  200. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/test_detect_flakes.py +0 -0
  201. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/test_gate.py +0 -0
  202. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/test_subset.py +0 -0
  203. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/commands/test_verify.py +0 -0
  204. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/adb/subset_result.json +0 -0
  205. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/junitreport/TEST-com.example.HelloWorldTest.xml +0 -0
  206. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/junitreport/TEST-com.example.library.CacheTest.xml +0 -0
  207. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/junitreport/TESTS-TestSuites.xml +0 -0
  208. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/record_test_result.json +0 -0
  209. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/src/com/example/HelloWorld.java +0 -0
  210. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/src/com/example/HelloWorldTest.java +0 -0
  211. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/src/com/example/library/Cache.java +0 -0
  212. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/src/com/example/library/CacheTest.java +0 -0
  213. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ant/subset_result.json +0 -0
  214. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.cache_status +0 -0
  215. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.log +0 -0
  216. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.xml +0 -0
  217. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.cache_status +0 -0
  218. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.xml +0 -0
  219. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.cache_status +0 -0
  220. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.xml +0 -0
  221. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.cache_status +0 -0
  222. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.xml +0 -0
  223. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.cache_status +0 -0
  224. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.xml +0 -0
  225. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.cache_status +0 -0
  226. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.xml +0 -0
  227. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.cache_status +0 -0
  228. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.xml +0 -0
  229. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.cache_status +0 -0
  230. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.xml +0 -0
  231. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.cache_status +0 -0
  232. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.xml +0 -0
  233. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/build_event.json +0 -0
  234. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/build_event_rest.json +0 -0
  235. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/record_test_result.json +0 -0
  236. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/record_test_with_build_event_json_result.json +0 -0
  237. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/record_test_with_multiple_build_event_json_result.json +0 -0
  238. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/bazel/subset_result.json +0 -0
  239. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/behave/record_test_result.json +0 -0
  240. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/behave/reports/report.xml +0 -0
  241. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/behave/subset_result.json +0 -0
  242. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/broken_xml/broken.xml +0 -0
  243. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/broken_xml/normal.xml +0 -0
  244. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/codeceptjs/codeceptjs-result.xml +0 -0
  245. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/codeceptjs/record_test_result.json +0 -0
  246. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ctest/Testing/latest/Test.xml +0 -0
  247. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ctest/ctest_list.json +0 -0
  248. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ctest/record_test_result.json +0 -0
  249. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/ctest/subset_result.json +0 -0
  250. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cts/record_test_result.json +0 -0
  251. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cts/subset_result.json +0 -0
  252. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cts/test_result.xml +0 -0
  253. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/features/foo/bar.feature +0 -0
  254. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/features/foo/is_it_friday_yet.feature +0 -0
  255. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/features/foo-bar.feature +0 -0
  256. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/features/is_it_friday_yet.feature +0 -0
  257. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/record_test_json_result.json +0 -0
  258. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/record_test_result.json +0 -0
  259. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/report/TEST-features-foo-bar.xml +0 -0
  260. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/report/TEST-features-foo-is_it_friday_yet.xml +0 -0
  261. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/report/TEST-features-is_it_friday_yet.xml +0 -0
  262. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/report/dummy.xml +0 -0
  263. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cucumber/report/result.json +0 -0
  264. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cypress/empty.json +0 -0
  265. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cypress/empty.xml +0 -0
  266. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cypress/record_test_result.json +0 -0
  267. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cypress/subset_result.json +0 -0
  268. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/cypress/test-result.xml +0 -0
  269. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/dotnet/record_test_result.json +0 -0
  270. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/dotnet/test-result.xml +0 -0
  271. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/flutter/record_test_result.json +0 -0
  272. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/flutter/report.json +0 -0
  273. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/git_log_ingest/sample.out +0 -0
  274. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/go_test/record_test_result.json +0 -0
  275. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/go_test/reportv1/reportv1.xml +0 -0
  276. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/go_test/reportv2/reportv2.xml +0 -0
  277. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/go_test/subset_result.json +0 -0
  278. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/googletest/fail/output.xml +0 -0
  279. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/googletest/fail/record_test_result.json +0 -0
  280. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/googletest/output_a.xml +0 -0
  281. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/googletest/output_b.xml +0 -0
  282. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/googletest/record_test_result.json +0 -0
  283. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/googletest/subset_result.json +0 -0
  284. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/App2Test.java +0 -0
  285. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/AppTest.java +0 -0
  286. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/sub/App3Test.java +0 -0
  287. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/gradle/recursion/expected.json +0 -0
  288. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/gradle/recursion/foo/bar/reports/1.xml +0 -0
  289. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/jasmine/README.md +0 -0
  290. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/jasmine/jasmine-test-results-v3.99.0.json +0 -0
  291. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/jasmine/jasmine-test-results.json +0 -0
  292. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/jasmine/record_test_result.json +0 -0
  293. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/jasmine/subset_payload.json +0 -0
  294. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/jest/junit.xml +0 -0
  295. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/jest/record_test_result.json +0 -0
  296. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/jest/subset_result.json +0 -0
  297. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/karma/README.md +0 -0
  298. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/karma/record_test_result.json +0 -0
  299. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/karma/sample-report.json +0 -0
  300. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/karma/subset_payload.json +0 -0
  301. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/karma/subset_result.json +0 -0
  302. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/createdFile_1.lst +0 -0
  303. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/createdFile_2.lst +0 -0
  304. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/App2Test.java +0 -0
  305. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java +0 -0
  306. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java +0 -0
  307. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/list.lst +0 -0
  308. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/record_test_result.json +0 -0
  309. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/reports/TEST-1.xml +0 -0
  310. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/reports/TEST-2.xml +0 -0
  311. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/reports/TEST-nested.xml +0 -0
  312. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/reports/dummy.xml +0 -0
  313. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/subset_by_absolute_time_result.json +0 -0
  314. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/subset_by_confidence_result.json +0 -0
  315. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/subset_from_file_result.json +0 -0
  316. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/subset_result.json +0 -0
  317. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/subset_scan_test_compile_lst_result.json +0 -0
  318. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/maven/subset_with_exclude_rules_result.json +0 -0
  319. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/TEST-Admin_UserTest.xml +0 -0
  320. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml +0 -0
  321. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/TEST-UserControllerTest.xml +0 -0
  322. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/TEST-UserCopyTest.xml +0 -0
  323. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/TEST-UserTest.xml +0 -0
  324. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/record_test_result.json +0 -0
  325. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/record_test_result_chunk1.json +0 -0
  326. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/record_test_result_chunk2.json +0 -0
  327. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/subset_result.json +0 -0
  328. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/minitest/test/example_test.rb +0 -0
  329. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/list.xml +0 -0
  330. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/nunit-reporter-bug-with-nested-type.json +0 -0
  331. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/nunit-reporter-bug-with-nested-type.xml +0 -0
  332. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/output-linux.xml +0 -0
  333. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/output-windows.xml +0 -0
  334. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/record_test_result-linux.json +0 -0
  335. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/record_test_result-windows.json +0 -0
  336. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/src/.gitignore +0 -0
  337. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/src/Program.cs +0 -0
  338. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/src/README.md +0 -0
  339. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/src/Test.cs +0 -0
  340. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/src/calc.csproj +0 -0
  341. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/nunit/subset_result.json +0 -0
  342. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/playwright/record_test_result.json +0 -0
  343. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/playwright/record_test_result_with_json.json +0 -0
  344. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/playwright/report.json +0 -0
  345. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/playwright/report.xml +0 -0
  346. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/prove/record_test_result.json +0 -0
  347. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/prove/report.xml +0 -0
  348. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/pytest.ini +0 -0
  349. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/record_test_result.json +0 -0
  350. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/record_test_result_json.json +0 -0
  351. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/report.json +0 -0
  352. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/report.xml +0 -0
  353. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/subset_result.json +0 -0
  354. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/tests/conftest.py +0 -0
  355. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/tests/fooo/__init__.py +0 -0
  356. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/tests/fooo/filenameonly_test.py +0 -0
  357. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/tests/fooo/func4_test.py +0 -0
  358. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/tests/funcs3_test.py +0 -0
  359. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/tests/test_funcs1.py +0 -0
  360. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/pytest/tests/test_funcs2.py +0 -0
  361. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/robot/dryrun.xml +0 -0
  362. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/robot/output.xml +0 -0
  363. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/robot/record_test_executed_only_one_file_result.json +0 -0
  364. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/robot/record_test_result.json +0 -0
  365. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/robot/single-output.xml +0 -0
  366. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/robot/subset_result.json +0 -0
  367. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/rspec/record_test_result.json +0 -0
  368. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/rspec/rspec.xml +0 -0
  369. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/vitest/record_test_result.json +0 -0
  370. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/vitest/report.xml +0 -0
  371. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/xctest/junit.xml +0 -0
  372. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/xctest/record_test_result.json +0 -0
  373. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/data/xctest/subset_result.json +0 -0
  374. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/helper.py +0 -0
  375. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/plugins/foo.py +0 -0
  376. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_cli_test_case.py +0 -0
  377. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_plugin.py +0 -0
  378. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/__init__.py +0 -0
  379. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_adb.py +0 -0
  380. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_ant.py +0 -0
  381. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_bazel.py +0 -0
  382. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_behave.py +0 -0
  383. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_codeceptjs.py +0 -0
  384. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_ctest.py +0 -0
  385. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_cts.py +0 -0
  386. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_cucumber.py +0 -0
  387. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_cypress.py +0 -0
  388. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_dotnet.py +0 -0
  389. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_go_test.py +0 -0
  390. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_googletest.py +0 -0
  391. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_gradle.py +0 -0
  392. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_jasmine.py +0 -0
  393. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_jest.py +0 -0
  394. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_karma.py +0 -0
  395. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_maven.py +0 -0
  396. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_minitest.py +0 -0
  397. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_nunit.py +0 -0
  398. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_playwright.py +0 -0
  399. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_prove.py +0 -0
  400. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_pytest.py +0 -0
  401. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_raw.py +0 -0
  402. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_robot.py +0 -0
  403. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_rspec.py +0 -0
  404. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_vitest.py +0 -0
  405. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_runners/test_xctest.py +0 -0
  406. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_testpath.py +0 -0
  407. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/test_version.py +0 -0
  408. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/__init__.py +0 -0
  409. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_authentication.py +0 -0
  410. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_edit_distance.py +0 -0
  411. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_fail_fast_mode.py +0 -0
  412. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_file_name_pattern.py +0 -0
  413. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_git_log_parser.py +0 -0
  414. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_glob.py +0 -0
  415. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_gzipgen.py +0 -0
  416. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_http_client.py +0 -0
  417. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_link.py +0 -0
  418. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_logger.py +0 -0
  419. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_typer.py +0 -0
  420. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tests/utils/test_typer_types.py +0 -0
  421. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tools/README.md +0 -0
  422. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/tools/generate_reference.py +0 -0
  423. {smart_tests_cli-2.4.0 → smart_tests_cli-2.4.2}/uv.lock +0 -0
@@ -0,0 +1,5 @@
1
+ # Git files exclude config
2
+ # Don't exclude entire .git because setuptools-scm need git metadata for package builds
3
+ .git/config
4
+ .gitignore
5
+ .gitattributes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smart-tests-cli
3
- Version: 2.4.0
3
+ Version: 2.4.2
4
4
  Summary: Smart Tests CLI
5
5
  Author-email: CloudBees <support@cloudbees.com>
6
6
  License: Apache Software License v2
@@ -169,16 +169,20 @@ class CommonRecordTestImpls:
169
169
  source_roots: Annotated[list[str], typer.Argument(
170
170
  multiple=True,
171
171
  help="Source directories containing test report files"
172
- )]):
172
+ )],
173
+ file_path_attribute: Annotated[list[str], typer.Option(
174
+ "--file-path-attribute",
175
+ multiple=True,
176
+ help="Attributes to look for file paths in test reports (e.g., name, classname, file, filepath)"
177
+ )] = ["file", "filepath"]):
173
178
  def path_builder(
174
179
  case: TestCase, suite: TestSuite, report_file: str
175
180
  ) -> TestPath:
176
181
  def find_filename():
177
182
  """look for what looks like file names from test reports"""
178
183
  for e in [case, suite]:
179
- for a in ["file", "filepath"]:
180
- filepath = e._elem.attrib.get(a)
181
- if filepath:
184
+ for a in file_path_attribute:
185
+ if filepath := e._elem.attrib.get(a):
182
186
  return filepath
183
187
  return None # failing to find a test name
184
188
 
@@ -188,9 +192,9 @@ class CommonRecordTestImpls:
188
192
 
189
193
  # default test path in `subset` expects to have this file name
190
194
  test_path = [client.make_file_path_component(filepath)]
191
- if suite.name:
195
+ if suite.name and suite.name != filepath:
192
196
  test_path.append({"type": "testsuite", "name": suite.name})
193
- if case.name:
197
+ if case.name and case.name != filepath:
194
198
  test_path.append({"type": "testcase", "name": case.name})
195
199
  return test_path
196
200
 
@@ -30,9 +30,23 @@ class SessionId:
30
30
  '''This is the method in which we parse the user input, so be defensive'''
31
31
  if id.startswith('@'):
32
32
  file_path = id[1:]
33
+ # Earlier versions of PowerShell write Unicode BOM when redirecting output to a file.
34
+ # https://github.com/PowerShell/PowerShell/issues/8592
35
+ # Since we tell people to redirect `record session` output to a file, here we can
36
+ # encounter such files. Here's the scheme to cope with this.
37
+ #
38
+ # First we try utf-8-sig, which handles UTF-8 BOM correctly.
39
+ # our session ID only uses ASCII chars, so unless the writer used non ascii compatible encoding
40
+ # (e.g., EBCDIC but those are very very unlikely), this will read the file correctly.
41
+ # If the writer used UTF-16 (e.g., legacy PowerShell on Windows), we'll get a decode error, and
42
+ # then we try UTF-16, which handles BOM correctly.
33
43
  try:
34
- with open(file_path, 'r') as f:
35
- id = f.read().strip()
44
+ try:
45
+ with open(file_path, 'r', encoding='utf-8-sig') as f:
46
+ id = f.read().strip()
47
+ except UnicodeDecodeError:
48
+ with open(file_path, 'r', encoding='utf-16') as f:
49
+ id = f.read().strip()
36
50
  except FileNotFoundError:
37
51
  raise BadCmdLineException(f"Session file '{file_path}' not found.")
38
52
  except IOError as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smart-tests-cli
3
- Version: 2.4.0
3
+ Version: 2.4.2
4
4
  Summary: Smart Tests CLI
5
5
  Author-email: CloudBees <support@cloudbees.com>
6
6
  License: Apache Software License v2
@@ -1,5 +1,6 @@
1
1
  .bazelrc
2
2
  .bazelversion
3
+ .dockerignore
3
4
  .editorconfig
4
5
  .gitignore
5
6
  .pre-commit-config.yaml
@@ -264,6 +265,10 @@ tests/data/cypress/subset_result.json
264
265
  tests/data/cypress/test-result.xml
265
266
  tests/data/dotnet/record_test_result.json
266
267
  tests/data/dotnet/test-result.xml
268
+ tests/data/file/record_test_result.json
269
+ tests/data/file/record_test_result_custom_attribute.json
270
+ tests/data/file/result.xml
271
+ tests/data/file/result_custom_attribute.xml
267
272
  tests/data/flutter/record_test_result.json
268
273
  tests/data/flutter/report.json
269
274
  tests/data/git_log_ingest/sample.out
@@ -379,6 +384,7 @@ tests/test_runners/test_cts.py
379
384
  tests/test_runners/test_cucumber.py
380
385
  tests/test_runners/test_cypress.py
381
386
  tests/test_runners/test_dotnet.py
387
+ tests/test_runners/test_file.py
382
388
  tests/test_runners/test_go_test.py
383
389
  tests/test_runners/test_googletest.py
384
390
  tests/test_runners/test_gradle.py
@@ -0,0 +1,53 @@
1
+ {
2
+ "events": [
3
+ {
4
+ "type": "case",
5
+ "testPath": [
6
+ {
7
+ "type": "file",
8
+ "name": "tests/test_example.py"
9
+ },
10
+ {
11
+ "type": "testsuite",
12
+ "name": "Suite 1"
13
+ },
14
+ {
15
+ "type": "testcase",
16
+ "name": "test_case_1"
17
+ }
18
+ ],
19
+ "duration": 0.5,
20
+ "status": 1,
21
+ "stdout": "",
22
+ "stderr": "",
23
+ "data": null
24
+ },
25
+ {
26
+ "type": "case",
27
+ "testPath": [
28
+ {
29
+ "type": "file",
30
+ "name": "tests/test_example.py"
31
+ },
32
+ {
33
+ "type": "testsuite",
34
+ "name": "Suite 1"
35
+ },
36
+ {
37
+ "type": "testcase",
38
+ "name": "test_case_2"
39
+ }
40
+ ],
41
+ "duration": 0.734,
42
+ "status": 1,
43
+ "stdout": "",
44
+ "stderr": "",
45
+ "data": null
46
+ }
47
+ ],
48
+ "testRunner": "file",
49
+ "group": "",
50
+ "noBuild": false,
51
+ "flavors": [],
52
+ "testSuite": ""
53
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "events": [
3
+ {
4
+ "type": "case",
5
+ "testPath": [
6
+ {
7
+ "type": "file",
8
+ "name": "tests/test_custom.py"
9
+ },
10
+ {
11
+ "type": "testsuite",
12
+ "name": "Suite 1"
13
+ }
14
+ ],
15
+ "duration": 0.5,
16
+ "status": 1,
17
+ "stdout": "",
18
+ "stderr": "",
19
+ "data": null
20
+ },
21
+ {
22
+ "type": "case",
23
+ "testPath": [
24
+ {
25
+ "type": "file",
26
+ "name": "tests/test_custom2.py"
27
+ },
28
+ {
29
+ "type": "testsuite",
30
+ "name": "Suite 1"
31
+ }
32
+ ],
33
+ "duration": 0.734,
34
+ "status": 1,
35
+ "stdout": "",
36
+ "stderr": "",
37
+ "data": null
38
+ }
39
+ ],
40
+ "testRunner": "file",
41
+ "group": "",
42
+ "noBuild": false,
43
+ "flavors": [],
44
+ "testSuite": ""
45
+ }
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites name="Test Suite" time="1.234" tests="2" failures="0">
3
+ <testsuite name="Suite 1" timestamp="2025-10-27T01:20:06" tests="2" file="tests/test_example.py" time="1.234" failures="0">
4
+ <testcase name="test_case_1" time="0.500" classname="TestExample">
5
+ </testcase>
6
+ <testcase name="test_case_2" time="0.734" classname="TestExample">
7
+ </testcase>
8
+ </testsuite>
9
+ </testsuites>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites name="Test Suite" time="1.234" tests="2" failures="0">
3
+ <testsuite name="Suite 1" timestamp="2025-10-27T01:20:06" tests="2" time="1.234" failures="0">
4
+ <testcase time="0.500" name="tests/test_custom.py">
5
+ </testcase>
6
+ <testcase time="0.734" name="tests/test_custom2.py">
7
+ </testcase>
8
+ </testsuite>
9
+ </testsuites>
@@ -0,0 +1,41 @@
1
+ import os
2
+ from unittest import mock
3
+
4
+ import responses # type: ignore
5
+
6
+ from tests.cli_test_case import CliTestCase
7
+
8
+
9
+ class FileTest(CliTestCase):
10
+ @responses.activate
11
+ @mock.patch.dict(os.environ, {"SMART_TESTS_TOKEN": CliTestCase.smart_tests_token})
12
+ def test_record_test_file(self):
13
+ result = self.cli(
14
+ "record",
15
+ "tests",
16
+ "--session",
17
+ self.session,
18
+ "file",
19
+ str(self.test_files_dir.joinpath("result.xml")),
20
+ )
21
+
22
+ self.assert_success(result)
23
+ self.assert_record_tests_payload("record_test_result.json")
24
+
25
+ @responses.activate
26
+ @mock.patch.dict(os.environ, {"SMART_TESTS_TOKEN": CliTestCase.smart_tests_token})
27
+ def test_record_test_file_with_custom_file_path_attribute(self):
28
+ """Test that --file-path-attribute option allows specifying custom attributes"""
29
+ result = self.cli(
30
+ "record",
31
+ "tests",
32
+ "--session",
33
+ self.session,
34
+ "file",
35
+ "--file-path-attribute",
36
+ "name",
37
+ str(self.test_files_dir.joinpath("result_custom_attribute.xml")),
38
+ )
39
+
40
+ self.assert_success(result)
41
+ self.assert_record_tests_payload("record_test_result_custom_attribute.json")
@@ -0,0 +1,89 @@
1
+ import os
2
+ import tempfile
3
+ from unittest import mock
4
+
5
+ import responses
6
+
7
+ from smart_tests.utils.http_client import get_base_url
8
+ from smart_tests.utils.session import SessionId, TestSession, get_session
9
+ from smart_tests.utils.smart_tests_client import SmartTestsClient
10
+ from tests.cli_test_case import CliTestCase
11
+
12
+
13
+ class TestTestSession(CliTestCase):
14
+ @mock.patch.dict(os.environ, {"SMART_TESTS_TOKEN": CliTestCase.smart_tests_token})
15
+ @responses.activate
16
+ def test_get_session(self):
17
+ client = SmartTestsClient(base_url=get_base_url())
18
+ responses.replace(
19
+ responses.GET,
20
+ f"{get_base_url()}/intake/organizations/{self.organization}/workspaces/{self.workspace}"
21
+ f"/builds/{self.build_name}/test_sessions/{self.session_id}",
22
+ json={
23
+ 'id': self.session_id,
24
+ 'buildId': 456,
25
+ 'buildNumber': self.build_name,
26
+ 'isObservation': True,
27
+ 'name': 'dummy-name',
28
+ },
29
+ status=200)
30
+
31
+ test_session = get_session(SessionId(self.session), client)
32
+ self.assertEqual(test_session, TestSession(
33
+ id=self.session_id,
34
+ build_id=456,
35
+ build_name=self.build_name,
36
+ observation_mode=True,
37
+ name='dummy-name'))
38
+
39
+ # not found test session case
40
+ responses.replace(
41
+ responses.GET,
42
+ f"{get_base_url()}/intake/organizations/{self.organization}/workspaces/{self.workspace}"
43
+ f"/builds/{self.build_name}/test_sessions/{self.session_id}",
44
+ json={},
45
+ status=404)
46
+
47
+ with self.assertRaises(SystemExit) as cm:
48
+ get_session(SessionId(self.session), client)
49
+ self.assertEqual(cm.exception.code, 1)
50
+
51
+
52
+ class TestSessionId(CliTestCase):
53
+ """Test SessionId initialization and file reading with various encodings"""
54
+
55
+ def setUp(self):
56
+ super().setUp()
57
+ # A valid session ID for testing
58
+ self.valid_session_id = f"builds/{self.build_name}/test_sessions/{self.session_id}"
59
+
60
+ def _assert_session_from_file(self, encoding: str, content: str):
61
+ """Helper method to test reading session ID from a file with specific encoding"""
62
+ with tempfile.NamedTemporaryFile(mode='w', encoding=encoding, delete=False, suffix='.txt') as f:
63
+ f.write(content)
64
+ temp_path = f.name
65
+
66
+ try:
67
+ session = SessionId(f"@{temp_path}")
68
+ self.assertEqual(str(session), self.valid_session_id)
69
+ self.assertEqual(session.build_part, self.build_name)
70
+ self.assertEqual(session.test_part, self.session_id)
71
+ finally:
72
+ os.unlink(temp_path)
73
+
74
+ def test_session_id_from_utf8_file_without_bom(self):
75
+ """Test reading session ID from a UTF-8 file without BOM"""
76
+ # also, extra NL
77
+ self._assert_session_from_file('utf-8', f"{self.valid_session_id}\n")
78
+
79
+ def test_session_id_from_utf8_file_with_bom(self):
80
+ """Test reading session ID from a UTF-8 file with BOM (UTF-8 signature)"""
81
+ self._assert_session_from_file('utf-8-sig', self.valid_session_id)
82
+
83
+ def test_session_id_from_utf16_le_file(self):
84
+ """Test reading session ID from a UTF-16 LE file with BOM (PowerShell default on Windows)"""
85
+ self._assert_session_from_file('utf-16-le', f'\ufeff{self.valid_session_id}')
86
+
87
+ def test_session_id_from_utf16_file(self):
88
+ """Test reading session ID from a UTF-16 file with BOM (using utf-16 encoding)"""
89
+ self._assert_session_from_file('utf-16', self.valid_session_id)
@@ -1,48 +0,0 @@
1
- import os
2
- from unittest import mock
3
-
4
- import responses
5
-
6
- from smart_tests.utils.http_client import get_base_url
7
- from smart_tests.utils.session import SessionId, TestSession, get_session
8
- from smart_tests.utils.smart_tests_client import SmartTestsClient
9
- from tests.cli_test_case import CliTestCase
10
-
11
-
12
- class TestTestSession(CliTestCase):
13
- @mock.patch.dict(os.environ, {"SMART_TESTS_TOKEN": CliTestCase.smart_tests_token})
14
- @responses.activate
15
- def test_get_session(self):
16
- client = SmartTestsClient(base_url=get_base_url())
17
- responses.replace(
18
- responses.GET,
19
- f"{get_base_url()}/intake/organizations/{self.organization}/workspaces/{self.workspace}"
20
- f"/builds/{self.build_name}/test_sessions/{self.session_id}",
21
- json={
22
- 'id': self.session_id,
23
- 'buildId': 456,
24
- 'buildNumber': self.build_name,
25
- 'isObservation': True,
26
- 'name': 'dummy-name',
27
- },
28
- status=200)
29
-
30
- test_session = get_session(SessionId(self.session), client)
31
- self.assertEqual(test_session, TestSession(
32
- id=self.session_id,
33
- build_id=456,
34
- build_name=self.build_name,
35
- observation_mode=True,
36
- name='dummy-name'))
37
-
38
- # not found test session case
39
- responses.replace(
40
- responses.GET,
41
- f"{get_base_url()}/intake/organizations/{self.organization}/workspaces/{self.workspace}"
42
- f"/builds/{self.build_name}/test_sessions/{self.session_id}",
43
- json={},
44
- status=404)
45
-
46
- with self.assertRaises(SystemExit) as cm:
47
- get_session(SessionId(self.session), client)
48
- self.assertEqual(cm.exception.code, 1)
File without changes