launchable 1.90.0__tar.gz → 1.90.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 (333) hide show
  1. launchable-1.90.2/.bazelversion +1 -0
  2. {launchable-1.90.0 → launchable-1.90.2}/.github/workflows/bazel-test.yml +1 -1
  3. {launchable-1.90.0 → launchable-1.90.2}/.github/workflows/python-package.yml +1 -1
  4. {launchable-1.90.0 → launchable-1.90.2}/.github/workflows/python-publish.yml +2 -2
  5. {launchable-1.90.0 → launchable-1.90.2}/PKG-INFO +1 -1
  6. {launchable-1.90.0 → launchable-1.90.2}/Pipfile +3 -3
  7. {launchable-1.90.0 → launchable-1.90.2}/WORKSPACE +3 -3
  8. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/pytest.py +25 -13
  9. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/raw.py +11 -4
  10. {launchable-1.90.0 → launchable-1.90.2}/launchable.egg-info/PKG-INFO +1 -1
  11. {launchable-1.90.0 → launchable-1.90.2}/launchable.egg-info/SOURCES.txt +1 -0
  12. launchable-1.90.2/renovate.json +9 -0
  13. {launchable-1.90.0 → launchable-1.90.2}/src/maven_install.json +11 -11
  14. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/test_split_subset.py +7 -7
  15. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/test_subset.py +6 -6
  16. launchable-1.90.2/tests/data/pytest/pytest.ini +8 -0
  17. launchable-1.90.2/tests/data/pytest/record_test_result.json +231 -0
  18. launchable-1.90.2/tests/data/pytest/report.xml +120 -0
  19. launchable-1.90.2/tests/data/pytest/tests/conftest.py +6 -0
  20. launchable-1.90.2/tests/data/pytest/tests/test_funcs1.py +20 -0
  21. {launchable-1.90.0 → launchable-1.90.2}/tests/data/pytest/tests/test_funcs2.py +5 -0
  22. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_raw.py +2 -3
  23. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_robot.py +2 -2
  24. launchable-1.90.0/.bazelversion +0 -1
  25. launchable-1.90.0/renovate.json +0 -6
  26. launchable-1.90.0/tests/data/pytest/record_test_result.json +0 -161
  27. launchable-1.90.0/tests/data/pytest/report.xml +0 -24
  28. launchable-1.90.0/tests/data/pytest/tests/conftest.py +0 -0
  29. launchable-1.90.0/tests/data/pytest/tests/test_funcs1.py +0 -6
  30. {launchable-1.90.0 → launchable-1.90.2}/.bazelrc +0 -0
  31. {launchable-1.90.0 → launchable-1.90.2}/.editorconfig +0 -0
  32. {launchable-1.90.0 → launchable-1.90.2}/.github/release.yml +0 -0
  33. {launchable-1.90.0 → launchable-1.90.2}/.github/workflows/e2e.yml +0 -0
  34. {launchable-1.90.0 → launchable-1.90.2}/.github/workflows/update_maven_install_json.yml +0 -0
  35. {launchable-1.90.0 → launchable-1.90.2}/.gitignore +0 -0
  36. {launchable-1.90.0 → launchable-1.90.2}/.pre-commit-config.yaml +0 -0
  37. {launchable-1.90.0 → launchable-1.90.2}/.python-version +0 -0
  38. {launchable-1.90.0 → launchable-1.90.2}/.tagpr +0 -0
  39. {launchable-1.90.0 → launchable-1.90.2}/CONTRIBUTING.md +0 -0
  40. {launchable-1.90.0 → launchable-1.90.2}/Dockerfile +0 -0
  41. {launchable-1.90.0 → launchable-1.90.2}/LICENSE.txt +0 -0
  42. {launchable-1.90.0 → launchable-1.90.2}/README.md +0 -0
  43. {launchable-1.90.0 → launchable-1.90.2}/launchable/__init__.py +0 -0
  44. {launchable-1.90.0 → launchable-1.90.2}/launchable/__main__.py +0 -0
  45. {launchable-1.90.0 → launchable-1.90.2}/launchable/app.py +0 -0
  46. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/__init__.py +0 -0
  47. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/helper.py +0 -0
  48. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/inspect/__init__.py +0 -0
  49. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/inspect/subset.py +0 -0
  50. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/inspect/tests.py +0 -0
  51. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/record/__init__.py +0 -0
  52. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/record/attachment.py +0 -0
  53. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/record/build.py +0 -0
  54. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/record/case_event.py +0 -0
  55. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/record/commit.py +0 -0
  56. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/record/session.py +0 -0
  57. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/record/tests.py +0 -0
  58. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/split_subset.py +0 -0
  59. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/stats/__init__.py +0 -0
  60. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/stats/test_sessions.py +0 -0
  61. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/subset.py +0 -0
  62. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/test_path_writer.py +0 -0
  63. {launchable-1.90.0 → launchable-1.90.2}/launchable/commands/verify.py +0 -0
  64. {launchable-1.90.0 → launchable-1.90.2}/launchable/jar/exe_deploy.jar +0 -0
  65. {launchable-1.90.0 → launchable-1.90.2}/launchable/plugins/__init__.py +0 -0
  66. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/__init__.py +0 -0
  67. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/adb.py +0 -0
  68. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/ant.py +0 -0
  69. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/bazel.py +0 -0
  70. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/behave.py +0 -0
  71. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/ctest.py +0 -0
  72. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/cts.py +0 -0
  73. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/cucumber.py +0 -0
  74. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/cypress.py +0 -0
  75. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/dotnet.py +0 -0
  76. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/file.py +0 -0
  77. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/go_test.py +0 -0
  78. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/googletest.py +0 -0
  79. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/gradle.py +0 -0
  80. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/jest.py +0 -0
  81. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/launchable.py +0 -0
  82. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/maven.py +0 -0
  83. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/minitest.py +0 -0
  84. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/nunit.py +0 -0
  85. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/playwright.py +0 -0
  86. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/prove.py +0 -0
  87. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/robot.py +0 -0
  88. {launchable-1.90.0 → launchable-1.90.2}/launchable/test_runners/rspec.py +0 -0
  89. {launchable-1.90.0 → launchable-1.90.2}/launchable/testpath.py +0 -0
  90. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/__init__.py +0 -0
  91. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/authentication.py +0 -0
  92. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/ci_provider.py +0 -0
  93. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/click.py +0 -0
  94. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/commit_ingester.py +0 -0
  95. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/env_keys.py +0 -0
  96. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/exceptions.py +0 -0
  97. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/file_name_pattern.py +0 -0
  98. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/git_log_parser.py +0 -0
  99. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/glob.py +0 -0
  100. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/gzipgen.py +0 -0
  101. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/http_client.py +0 -0
  102. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/java.py +0 -0
  103. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/key_value_type.py +0 -0
  104. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/launchable_client.py +0 -0
  105. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/link.py +0 -0
  106. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/logger.py +0 -0
  107. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/no_build.py +0 -0
  108. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/sax.py +0 -0
  109. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/session.py +0 -0
  110. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/subprocess.py +0 -0
  111. {launchable-1.90.0 → launchable-1.90.2}/launchable/utils/tracking.py +0 -0
  112. {launchable-1.90.0 → launchable-1.90.2}/launchable/version.py +0 -0
  113. {launchable-1.90.0 → launchable-1.90.2}/launchable.egg-info/dependency_links.txt +0 -0
  114. {launchable-1.90.0 → launchable-1.90.2}/launchable.egg-info/entry_points.txt +0 -0
  115. {launchable-1.90.0 → launchable-1.90.2}/launchable.egg-info/requires.txt +0 -0
  116. {launchable-1.90.0 → launchable-1.90.2}/launchable.egg-info/top_level.txt +0 -0
  117. {launchable-1.90.0 → launchable-1.90.2}/pyproject.toml +0 -0
  118. {launchable-1.90.0 → launchable-1.90.2}/setup.cfg +0 -0
  119. {launchable-1.90.0 → launchable-1.90.2}/setup.py +0 -0
  120. {launchable-1.90.0 → launchable-1.90.2}/src/BUILD +0 -0
  121. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/Authenticator.java +0 -0
  122. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/BUILD +0 -0
  123. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/CommitGraphCollector.java +0 -0
  124. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/CommitIngester.java +0 -0
  125. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/CountingDiffFormatter.java +0 -0
  126. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/GitHubActionsAuthenticator.java +0 -0
  127. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/GitHubIdTokenAuthenticator.java +0 -0
  128. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/JSCommit.java +0 -0
  129. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/JSFileChange.java +0 -0
  130. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/ObjectRevFilter.java +0 -0
  131. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/SSLBypass.java +0 -0
  132. {launchable-1.90.0 → launchable-1.90.2}/src/main/java/com/launchableinc/ingest/commits/TokenAuthenticator.java +0 -0
  133. {launchable-1.90.0 → launchable-1.90.2}/src/test/java/com/launchableinc/ingest/commits/AllTests.java +0 -0
  134. {launchable-1.90.0 → launchable-1.90.2}/src/test/java/com/launchableinc/ingest/commits/BUILD +0 -0
  135. {launchable-1.90.0 → launchable-1.90.2}/src/test/java/com/launchableinc/ingest/commits/CommitGraphCollectorTest.java +0 -0
  136. {launchable-1.90.0 → launchable-1.90.2}/src/test/java/com/launchableinc/ingest/commits/CommitIngesterTest.java +0 -0
  137. {launchable-1.90.0 → launchable-1.90.2}/src/test/java/com/launchableinc/ingest/commits/SSLBypassTest.java +0 -0
  138. {launchable-1.90.0 → launchable-1.90.2}/src/test/java/com/launchableinc/ingest/commits/java8-compat.sh +0 -0
  139. {launchable-1.90.0 → launchable-1.90.2}/test-runner/__main__.py +0 -0
  140. {launchable-1.90.0 → launchable-1.90.2}/tests/__init__.py +0 -0
  141. {launchable-1.90.0 → launchable-1.90.2}/tests/cli_test_case.py +0 -0
  142. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/__init__.py +0 -0
  143. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/inspect/__init__.py +0 -0
  144. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/inspect/test_subset.py +0 -0
  145. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/inspect/test_tests.py +0 -0
  146. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/record/__init__.py +0 -0
  147. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/record/test_attachment.py +0 -0
  148. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/record/test_build.py +0 -0
  149. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/record/test_commit.py +0 -0
  150. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/record/test_session.py +0 -0
  151. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/record/test_tests.py +0 -0
  152. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/test_api_error.py +0 -0
  153. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/test_helper.py +0 -0
  154. {launchable-1.90.0 → launchable-1.90.2}/tests/commands/test_verify.py +0 -0
  155. {launchable-1.90.0 → launchable-1.90.2}/tests/data/adb/subset_result.json +0 -0
  156. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/junitreport/TEST-com.launchable.HelloWorldTest.xml +0 -0
  157. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/junitreport/TEST-com.launchable.library.CacheTest.xml +0 -0
  158. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/junitreport/TESTS-TestSuites.xml +0 -0
  159. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/record_test_result.json +0 -0
  160. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/src/com/launchable/HelloWorld.java +0 -0
  161. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/src/com/launchable/HelloWorldTest.java +0 -0
  162. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/src/com/launchable/library/Cache.java +0 -0
  163. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/src/com/launchable/library/CacheTest.java +0 -0
  164. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ant/subset_result.json +0 -0
  165. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.cache_status +0 -0
  166. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.xml +0 -0
  167. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.cache_status +0 -0
  168. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.xml +0 -0
  169. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.cache_status +0 -0
  170. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.xml +0 -0
  171. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.cache_status +0 -0
  172. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.xml +0 -0
  173. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.cache_status +0 -0
  174. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.xml +0 -0
  175. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.cache_status +0 -0
  176. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.xml +0 -0
  177. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.cache_status +0 -0
  178. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.xml +0 -0
  179. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.cache_status +0 -0
  180. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.xml +0 -0
  181. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.cache_status +0 -0
  182. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.xml +0 -0
  183. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/build_event.json +0 -0
  184. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/build_event_rest.json +0 -0
  185. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/record_test_result.json +0 -0
  186. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/record_test_with_build_event_json_result.json +0 -0
  187. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/record_test_with_multiple_build_event_json_result.json +0 -0
  188. {launchable-1.90.0 → launchable-1.90.2}/tests/data/bazel/subset_result.json +0 -0
  189. {launchable-1.90.0 → launchable-1.90.2}/tests/data/behave/record_test_result.json +0 -0
  190. {launchable-1.90.0 → launchable-1.90.2}/tests/data/behave/reports/report.xml +0 -0
  191. {launchable-1.90.0 → launchable-1.90.2}/tests/data/behave/subset_result.json +0 -0
  192. {launchable-1.90.0 → launchable-1.90.2}/tests/data/broken_xml/broken.xml +0 -0
  193. {launchable-1.90.0 → launchable-1.90.2}/tests/data/broken_xml/normal.xml +0 -0
  194. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ctest/Testing/latest/Test.xml +0 -0
  195. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ctest/ctest_list.json +0 -0
  196. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ctest/record_test_result.json +0 -0
  197. {launchable-1.90.0 → launchable-1.90.2}/tests/data/ctest/subset_result.json +0 -0
  198. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cts/record_test_result.json +0 -0
  199. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cts/subset_result.json +0 -0
  200. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cts/test_result.xml +0 -0
  201. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/features/foo/bar.feature +0 -0
  202. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/features/foo/is_it_friday_yet.feature +0 -0
  203. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/features/foo-bar.feature +0 -0
  204. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/features/is_it_friday_yet.feature +0 -0
  205. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/record_test_json_result.json +0 -0
  206. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/record_test_result.json +0 -0
  207. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/report/TEST-features-foo-bar.xml +0 -0
  208. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/report/TEST-features-foo-is_it_friday_yet.xml +0 -0
  209. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/report/TEST-features-is_it_friday_yet.xml +0 -0
  210. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/report/dummy.xml +0 -0
  211. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cucumber/report/result.json +0 -0
  212. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cypress/empty.json +0 -0
  213. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cypress/empty.xml +0 -0
  214. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cypress/record_test_result.json +0 -0
  215. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cypress/subset_result.json +0 -0
  216. {launchable-1.90.0 → launchable-1.90.2}/tests/data/cypress/test-result.xml +0 -0
  217. {launchable-1.90.0 → launchable-1.90.2}/tests/data/dotnet/record_test_result.json +0 -0
  218. {launchable-1.90.0 → launchable-1.90.2}/tests/data/dotnet/test-result.xml +0 -0
  219. {launchable-1.90.0 → launchable-1.90.2}/tests/data/git_log_ingest/sample.out +0 -0
  220. {launchable-1.90.0 → launchable-1.90.2}/tests/data/go_test/record_test_result.json +0 -0
  221. {launchable-1.90.0 → launchable-1.90.2}/tests/data/go_test/reportv1/reportv1.xml +0 -0
  222. {launchable-1.90.0 → launchable-1.90.2}/tests/data/go_test/reportv2/reportv2.xml +0 -0
  223. {launchable-1.90.0 → launchable-1.90.2}/tests/data/go_test/subset_result.json +0 -0
  224. {launchable-1.90.0 → launchable-1.90.2}/tests/data/googletest/fail/output.xml +0 -0
  225. {launchable-1.90.0 → launchable-1.90.2}/tests/data/googletest/fail/record_test_result.json +0 -0
  226. {launchable-1.90.0 → launchable-1.90.2}/tests/data/googletest/output_a.xml +0 -0
  227. {launchable-1.90.0 → launchable-1.90.2}/tests/data/googletest/output_b.xml +0 -0
  228. {launchable-1.90.0 → launchable-1.90.2}/tests/data/googletest/record_test_result.json +0 -0
  229. {launchable-1.90.0 → launchable-1.90.2}/tests/data/googletest/subset_result.json +0 -0
  230. {launchable-1.90.0 → launchable-1.90.2}/tests/data/gradle/java/app/src/test/java/com/launchableinc/rocket_car_gradle/App2Test.java +0 -0
  231. {launchable-1.90.0 → launchable-1.90.2}/tests/data/gradle/java/app/src/test/java/com/launchableinc/rocket_car_gradle/AppTest.java +0 -0
  232. {launchable-1.90.0 → launchable-1.90.2}/tests/data/gradle/java/app/src/test/java/com/launchableinc/rocket_car_gradle/sub/App3Test.java +0 -0
  233. {launchable-1.90.0 → launchable-1.90.2}/tests/data/gradle/recursion/expected.json +0 -0
  234. {launchable-1.90.0 → launchable-1.90.2}/tests/data/gradle/recursion/foo/bar/reports/1.xml +0 -0
  235. {launchable-1.90.0 → launchable-1.90.2}/tests/data/jest/junit.xml +0 -0
  236. {launchable-1.90.0 → launchable-1.90.2}/tests/data/jest/record_test_result.json +0 -0
  237. {launchable-1.90.0 → launchable-1.90.2}/tests/data/jest/subset_result.json +0 -0
  238. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/createdFile_1.lst +0 -0
  239. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/createdFile_2.lst +0 -0
  240. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/App2Test.java +0 -0
  241. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/AppTest.java +0 -0
  242. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/list.lst +0 -0
  243. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/record_test_result.json +0 -0
  244. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/reports/TEST-1.xml +0 -0
  245. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/reports/TEST-2.xml +0 -0
  246. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/reports/dummy.xml +0 -0
  247. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/subset_by_absolute_time_result.json +0 -0
  248. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/subset_by_confidence_result.json +0 -0
  249. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/subset_from_file_result.json +0 -0
  250. {launchable-1.90.0 → launchable-1.90.2}/tests/data/maven/subset_result.json +0 -0
  251. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/TEST-Admin_UserTest.xml +0 -0
  252. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml +0 -0
  253. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/TEST-UserControllerTest.xml +0 -0
  254. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/TEST-UserCopyTest.xml +0 -0
  255. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/TEST-UserTest.xml +0 -0
  256. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/record_test_result.json +0 -0
  257. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/record_test_result_chunk1.json +0 -0
  258. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/record_test_result_chunk2.json +0 -0
  259. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/subset_result.json +0 -0
  260. {launchable-1.90.0 → launchable-1.90.2}/tests/data/minitest/test/example_test.rb +0 -0
  261. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/list.xml +0 -0
  262. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/nunit-reporter-bug-with-nested-type.json +0 -0
  263. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/nunit-reporter-bug-with-nested-type.xml +0 -0
  264. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/output-linux.xml +0 -0
  265. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/output-windows.xml +0 -0
  266. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/record_test_result-linux.json +0 -0
  267. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/record_test_result-windows.json +0 -0
  268. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/src/.gitignore +0 -0
  269. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/src/Program.cs +0 -0
  270. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/src/README.md +0 -0
  271. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/src/Test.cs +0 -0
  272. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/src/calc.csproj +0 -0
  273. {launchable-1.90.0 → launchable-1.90.2}/tests/data/nunit/subset_result.json +0 -0
  274. {launchable-1.90.0 → launchable-1.90.2}/tests/data/playwright/record_test_result.json +0 -0
  275. {launchable-1.90.0 → launchable-1.90.2}/tests/data/playwright/record_test_result_with_json.json +0 -0
  276. {launchable-1.90.0 → launchable-1.90.2}/tests/data/playwright/report.json +0 -0
  277. {launchable-1.90.0 → launchable-1.90.2}/tests/data/playwright/report.xml +0 -0
  278. {launchable-1.90.0 → launchable-1.90.2}/tests/data/prove/record_test_result.json +0 -0
  279. {launchable-1.90.0 → launchable-1.90.2}/tests/data/prove/report.xml +0 -0
  280. {launchable-1.90.0 → launchable-1.90.2}/tests/data/pytest/record_test_result_json.json +0 -0
  281. {launchable-1.90.0 → launchable-1.90.2}/tests/data/pytest/report.json +0 -0
  282. {launchable-1.90.0 → launchable-1.90.2}/tests/data/pytest/subset_result.json +0 -0
  283. {launchable-1.90.0 → launchable-1.90.2}/tests/data/pytest/tests/fooo/__init__.py +0 -0
  284. {launchable-1.90.0 → launchable-1.90.2}/tests/data/pytest/tests/fooo/filenameonly_test.py +0 -0
  285. {launchable-1.90.0 → launchable-1.90.2}/tests/data/pytest/tests/fooo/func4_test.py +0 -0
  286. {launchable-1.90.0 → launchable-1.90.2}/tests/data/pytest/tests/funcs3_test.py +0 -0
  287. {launchable-1.90.0 → launchable-1.90.2}/tests/data/robot/dryrun.xml +0 -0
  288. {launchable-1.90.0 → launchable-1.90.2}/tests/data/robot/output.xml +0 -0
  289. {launchable-1.90.0 → launchable-1.90.2}/tests/data/robot/record_test_executed_only_one_file_result.json +0 -0
  290. {launchable-1.90.0 → launchable-1.90.2}/tests/data/robot/record_test_result.json +0 -0
  291. {launchable-1.90.0 → launchable-1.90.2}/tests/data/robot/single-output.xml +0 -0
  292. {launchable-1.90.0 → launchable-1.90.2}/tests/data/robot/subset_result.json +0 -0
  293. {launchable-1.90.0 → launchable-1.90.2}/tests/data/rspec/record_test_result.json +0 -0
  294. {launchable-1.90.0 → launchable-1.90.2}/tests/data/rspec/rspec.xml +0 -0
  295. {launchable-1.90.0 → launchable-1.90.2}/tests/helper.py +0 -0
  296. {launchable-1.90.0 → launchable-1.90.2}/tests/plugins/foo.py +0 -0
  297. {launchable-1.90.0 → launchable-1.90.2}/tests/test_cli_test_case.py +0 -0
  298. {launchable-1.90.0 → launchable-1.90.2}/tests/test_plugin.py +0 -0
  299. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/__init__.py +0 -0
  300. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_adb.py +0 -0
  301. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_ant.py +0 -0
  302. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_bazel.py +0 -0
  303. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_behave.py +0 -0
  304. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_ctest.py +0 -0
  305. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_cts.py +0 -0
  306. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_cucumber.py +0 -0
  307. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_cypress.py +0 -0
  308. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_dotnet.py +0 -0
  309. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_go_test.py +0 -0
  310. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_googletest.py +0 -0
  311. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_gradle.py +0 -0
  312. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_jest.py +0 -0
  313. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_maven.py +0 -0
  314. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_minitest.py +0 -0
  315. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_nunit.py +0 -0
  316. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_playwright.py +0 -0
  317. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_prove.py +0 -0
  318. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_pytest.py +0 -0
  319. {launchable-1.90.0 → launchable-1.90.2}/tests/test_runners/test_rspec.py +0 -0
  320. {launchable-1.90.0 → launchable-1.90.2}/tests/test_session.py +0 -0
  321. {launchable-1.90.0 → launchable-1.90.2}/tests/test_testpath.py +0 -0
  322. {launchable-1.90.0 → launchable-1.90.2}/tests/test_version.py +0 -0
  323. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/__init__.py +0 -0
  324. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_authentication.py +0 -0
  325. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_click.py +0 -0
  326. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_file_name_pattern.py +0 -0
  327. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_git_log_parser.py +0 -0
  328. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_glob.py +0 -0
  329. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_gzipgen.py +0 -0
  330. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_http_client.py +0 -0
  331. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_key_value_type.py +0 -0
  332. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_link.py +0 -0
  333. {launchable-1.90.0 → launchable-1.90.2}/tests/utils/test_logger.py +0 -0
@@ -0,0 +1 @@
1
+ 7.2.0
@@ -16,7 +16,7 @@ jobs:
16
16
  test:
17
17
  runs-on: ubuntu-latest
18
18
  steps:
19
- - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
19
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
20
20
  - name: Set up JDK 8
21
21
  uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
22
22
  with:
@@ -39,7 +39,7 @@ jobs:
39
39
  python-version: [3.6, 3.7, 3.8, 3.9, "3.10", "3.11", "3.12"]
40
40
 
41
41
  steps:
42
- - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
42
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
43
43
  with:
44
44
  fetch-depth: 0
45
45
  - name: Set up Python ${{ matrix.python-version }}
@@ -19,9 +19,9 @@ jobs:
19
19
  outputs:
20
20
  tag: ${{ steps.run-tagpr.outputs.tag }}
21
21
  steps:
22
- - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
22
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
23
23
  - id: run-tagpr
24
- uses: Songmu/tagpr@4c8e0c433614e5915a7049413885246b854dfd4e # v1.2.0
24
+ uses: Songmu/tagpr@0a9b8e6634db66e773516828c1359dc6e9e8b484 # v1.3.0
25
25
  env:
26
26
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
27
27
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: launchable
3
- Version: 1.90.0
3
+ Version: 1.90.2
4
4
  Summary: Launchable CLI
5
5
  Home-page: https://launchableinc.com/
6
6
  Author: Launchable, Inc.
@@ -15,9 +15,9 @@ wheel = "*"
15
15
  # 2.9.0, < 2.10.0". ref: https://github.com/PyCQA/flake8/pull/1633
16
16
  # The latest autopep8 specifies "pycodestyle >= 2.10.0". This conflict cannot be resolved. Pin the version to resolve this.
17
17
  autopep8 = "<=1.7.0"
18
- importlib-metadata = "<5.0"
18
+ importlib-metadata = "<7.2"
19
19
  isort = "*"
20
- more_itertools = "<10.3"
20
+ more_itertools = "<10.4"
21
21
  mypy = "*"
22
22
  pre-commit = "*"
23
23
  responses = "*"
@@ -26,7 +26,7 @@ types-pkg_resources = "*"
26
26
  types-python-dateutil = "*"
27
27
  types-requests = "*"
28
28
  types-tabulate = "*"
29
- lxml = "<=5.1.0"
29
+ lxml = "<=5.2.2"
30
30
  unittest-xml-reporting = "*"
31
31
 
32
32
  [packages]
@@ -21,9 +21,9 @@ load("@rules_jvm_external//:specs.bzl", "maven")
21
21
  maven_install(
22
22
  artifacts = [
23
23
  "args4j:args4j:2.33", # can't go higher so long as we stay on Java 8
24
- "com.fasterxml.jackson.core:jackson-annotations:2.16.2",
25
- "com.fasterxml.jackson.core:jackson-core:2.16.2",
26
- "com.fasterxml.jackson.core:jackson-databind:2.16.2",
24
+ "com.fasterxml.jackson.core:jackson-annotations:2.17.1",
25
+ "com.fasterxml.jackson.core:jackson-core:2.17.1",
26
+ "com.fasterxml.jackson.core:jackson-databind:2.17.1",
27
27
  "com.google.guava:guava:33.1.0-jre",
28
28
  "org.apache.httpcomponents:httpclient:4.5.14",
29
29
  # This is the last release that produce Java 8 class files.
@@ -5,15 +5,10 @@ import pathlib
5
5
  import subprocess
6
6
  from typing import Generator, List
7
7
 
8
- from junitparser import TestCase
9
-
10
8
  import click
9
+ from junitparser import Properties, TestCase # type: ignore
11
10
 
12
- from launchable.commands.record.case_event import (
13
- CaseEvent,
14
- CaseEventType,
15
- MetadataTestCase,
16
- )
11
+ from launchable.commands.record.case_event import CaseEvent, CaseEventType, MetadataTestCase
17
12
  from launchable.testpath import TestPath
18
13
 
19
14
  from . import launchable
@@ -137,14 +132,31 @@ split_subset = launchable.CommonSplitSubsetImpls(__name__, formatter=_pytest_for
137
132
  def record_tests(client, json_report, source_roots):
138
133
 
139
134
  def data_builder(case: TestCase):
135
+ props = case.child(Properties)
136
+ result = {}
137
+ if props is not None:
138
+ """
139
+ Here is an example of an XML file with markers.
140
+ ```
141
+ <properties>
142
+ <property name="name" value="parametrize" />
143
+ <property name="args" value="('y', [2, 3])" />
144
+ <property name="kwargs" value="{}" />
145
+ <property name="name" value="parametrize" />
146
+ <property name="args" value="('x', [0, 1])" />
147
+ <property name="kwargs" value="{}" />
148
+ </properties>
149
+ ```
150
+ """
151
+ markers = [{"name": prop.name, "value": prop.value} for prop in props]
152
+ result["markers"] = markers if markers else []
153
+
140
154
  metadata = MetadataTestCase.fromelem(case)
141
155
  if metadata and metadata.line is not None:
142
- return {
143
- # Please note that line numbers start from 0.
144
- # https://github.com/pytest-dev/pytest/blob/8.1.1/src/_pytest/_code/source.py#L93
145
- "lineNumber": metadata.line + 1
146
- }
147
- return None
156
+ # Please note that line numbers start from 0.
157
+ # https://github.com/pytest-dev/pytest/blob/8.1.1/src/_pytest/_code/source.py#L93
158
+ result["lineNumber"] = metadata.line + 1
159
+ return result
148
160
 
149
161
  ext = "json" if json_report else "xml"
150
162
  for root in source_roots:
@@ -179,13 +179,20 @@ def record_tests(client, test_result_files):
179
179
  if test_path:
180
180
  test_path_components = parse_test_path(test_path)
181
181
  status = case['status']
182
- duration_secs = case['duration'] or 0
183
- created_at = case['createdAt'] or default_created_at
182
+ duration_secs = case.get('duration', 0)
183
+ if isinstance(duration_secs, str):
184
+ try:
185
+ duration_secs = float(duration_secs)
186
+ except ValueError:
187
+ raise ValueError("The duration of {} in {} isn't a valid format (was {}). Make sure set a valid duration".format(test_path_components, test_result_file, duration_secs)) # noqa
188
+
189
+ created_at = case.get('createdAt', default_created_at)
184
190
 
185
191
  if status not in CaseEvent.STATUS_MAP:
186
192
  raise ValueError(
187
193
  "The status of {} should be one of {} (was {})".format(test_path_components,
188
194
  list(CaseEvent.STATUS_MAP.keys()), status))
195
+
189
196
  if duration_secs < 0:
190
197
  raise ValueError("The duration of {} should be positive (was {})".format(test_path_components, duration_secs))
191
198
  dateutil.parser.parse(created_at)
@@ -195,8 +202,8 @@ def record_tests(client, test_result_files):
195
202
  test_path=test_path_components,
196
203
  duration_secs=duration_secs,
197
204
  status=CaseEvent.STATUS_MAP[status],
198
- stdout=case['stdout'],
199
- stderr=case['stderr'],
205
+ stdout=case.get('stdout', ''),
206
+ stderr=case.get('stderr', ''),
200
207
  timestamp=created_at,
201
208
  data=metadata)
202
209
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: launchable
3
- Version: 1.90.0
3
+ Version: 1.90.2
4
4
  Summary: Launchable CLI
5
5
  Home-page: https://launchableinc.com/
6
6
  Author: Launchable, Inc.
@@ -268,6 +268,7 @@ tests/data/playwright/report.json
268
268
  tests/data/playwright/report.xml
269
269
  tests/data/prove/record_test_result.json
270
270
  tests/data/prove/report.xml
271
+ tests/data/pytest/pytest.ini
271
272
  tests/data/pytest/record_test_result.json
272
273
  tests/data/pytest/record_test_result_json.json
273
274
  tests/data/pytest/report.json
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:base"
5
+ ],
6
+ "packageRules": [
7
+ {"matchPackagePrefixes": ["com.fasterxml.jackson.core"], "groupName": "jackson update group"}
8
+ ]
9
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
3
- "__INPUT_ARTIFACTS_HASH": -1271388741,
4
- "__RESOLVED_ARTIFACTS_HASH": 620884440,
3
+ "__INPUT_ARTIFACTS_HASH": 518001275,
4
+ "__RESOLVED_ARTIFACTS_HASH": 1246364229,
5
5
  "artifacts": {
6
6
  "args4j:args4j": {
7
7
  "shasums": {
@@ -26,24 +26,24 @@
26
26
  },
27
27
  "com.fasterxml.jackson.core:jackson-annotations": {
28
28
  "shasums": {
29
- "jar": "d1cdd269ebaa753d1842933194e17d61958f058952d63e03dbfb3d1d78a6926e",
30
- "sources": "51060e668fd0c7f6abcc75c70cc87d50006c6c541798f13e6105a34f485904e7"
29
+ "jar": "fccad82e13172c0e4384db71577219c9b8631c0820f4b18daaa57016fb661c76",
30
+ "sources": "21fac7bb75d7023f330b21df9b96c6f448740c84249e3ab3a3f1d6adac1f3d10"
31
31
  },
32
- "version": "2.16.2"
32
+ "version": "2.17.1"
33
33
  },
34
34
  "com.fasterxml.jackson.core:jackson-core": {
35
35
  "shasums": {
36
- "jar": "4f43e2f1430b2d2413e8e5a3d79138e57e891d6a961b18c28ac90859639d8664",
37
- "sources": "7b4da571d0a44bd35bc1ec9c97410ce0548c31c9bc6acf69087e1470dae37b9c"
36
+ "jar": "ddb26c8a1f1a84535e8213c48b35b253370434e3287b3cf15777856fc4e58ce6",
37
+ "sources": "c2c97a708be197aae5fee64dcc8b5e8a09c76c79a44c0e8e5b48b235084ec395"
38
38
  },
39
- "version": "2.16.2"
39
+ "version": "2.17.1"
40
40
  },
41
41
  "com.fasterxml.jackson.core:jackson-databind": {
42
42
  "shasums": {
43
- "jar": "53b6025d98c357068296e4b134242443a248c2c582800879f1c4ea93b54bafa6",
44
- "sources": "d119210de6ed8ac9adc1747d5c2d785c802b848d87dd8b65da95f8495c573f46"
43
+ "jar": "b6ca2f7d5b1ab245cec5495ec339773d2d90554c48592590673fb18f4400a948",
44
+ "sources": "4ff287ea4cb7030793be989007aa9b4bf22f88b3722a96cdec54fa9867bcc0be"
45
45
  },
46
- "version": "2.16.2"
46
+ "version": "2.17.1"
47
47
  },
48
48
  "com.google.auto.value:auto-value-annotations": {
49
49
  "shasums": {
@@ -188,27 +188,27 @@ class SplitSubsetTest(CliTestCase):
188
188
  "--split-by-groups-with-rest", "--split-by-groups-output-dir", tmpdir, "file")
189
189
 
190
190
  self.assert_success(result)
191
- with open("{}/subset-e2e.txt".format(tmpdir)) as f:
191
+ with open(os.path.join(tmpdir, "subset-e2e.txt")) as f:
192
192
  self.assertEqual(f.read(), "e2e-aaa.py\ne2e-bbb.py")
193
193
 
194
- with open("{}/rest-e2e.txt".format(tmpdir)) as f:
194
+ with open(os.path.join(tmpdir, "rest-e2e.txt")) as f:
195
195
  self.assertEqual(f.read(), "e2e-ccc.py\ne2e-ddd.py")
196
196
 
197
197
  self.assertFalse(os.path.exists("{}/subset-unit-test.txt".format(tmpdir)))
198
198
 
199
- with open("{}/rest-unit-test.txt".format(tmpdir)) as f:
199
+ with open(os.path.join(tmpdir, "rest-unit-test.txt")) as f:
200
200
  self.assertEqual(f.read(), "unit-test-111.py\nunit-test-222.py")
201
201
 
202
- with open("{}/subset-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME)) as f:
202
+ with open(os.path.join(tmpdir, "subset-{}.txt".format(SPLIT_BY_GROUPS_NO_GROUP_NAME))) as f:
203
203
  self.assertEqual(f.read(), "aaa.py\nbbb.py")
204
204
 
205
- with open("{}/rest-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME)) as f:
205
+ with open(os.path.join(tmpdir, "rest-{}.txt".format(SPLIT_BY_GROUPS_NO_GROUP_NAME))) as f:
206
206
  self.assertEqual(f.read(), "111.py\n222.py")
207
207
 
208
- with open("{}/{}".format(tmpdir, SPLIT_BY_GROUP_SUBSET_GROUPS_FILE_NAME)) as f:
208
+ with open(os.path.join(tmpdir, SPLIT_BY_GROUP_SUBSET_GROUPS_FILE_NAME)) as f:
209
209
  self.assertEqual(f.read(), "e2e")
210
210
 
211
- with open("{}/{}".format(tmpdir, SPLIT_BY_GROUP_REST_GROUPS_FILE_NAME)) as f:
211
+ with open(os.path.join(tmpdir, SPLIT_BY_GROUP_REST_GROUPS_FILE_NAME)) as f:
212
212
  self.assertEqual(f.read(), "unit-test")
213
213
 
214
214
  @responses.activate
@@ -250,8 +250,8 @@ class SubsetTest(CliTestCase):
250
250
  payload = json.loads(gzip.decompress(responses.calls[0].request.body).decode())
251
251
  self.assertEqual(payload.get('dropFlakinessThreshold'), 0.05)
252
252
 
253
- @ responses.activate
254
- @ mock.patch.dict(os.environ, {"LAUNCHABLE_TOKEN": CliTestCase.launchable_token})
253
+ @responses.activate
254
+ @mock.patch.dict(os.environ, {"LAUNCHABLE_TOKEN": CliTestCase.launchable_token})
255
255
  def test_subset_with_get_tests_from_previous_full_runs(self):
256
256
  # check error when input candidates are empty without --get-tests-from-previous-sessions option
257
257
  result = self.cli("subset", "--target", "30%", "--session", self.session, "file")
@@ -303,8 +303,8 @@ class SubsetTest(CliTestCase):
303
303
  rest.close()
304
304
  os.unlink(rest.name)
305
305
 
306
- @ responses.activate
307
- @ mock.patch.dict(os.environ, {"LAUNCHABLE_TOKEN": CliTestCase.launchable_token})
306
+ @responses.activate
307
+ @mock.patch.dict(os.environ, {"LAUNCHABLE_TOKEN": CliTestCase.launchable_token})
308
308
  def test_subset_with_output_exclusion_rules(self):
309
309
  pipe = "test_aaa.py\ntest_111.py\ntest_bbb.py\ntest_222.py\ntest_ccc.py\ntest_333.py\n"
310
310
  responses.replace(
@@ -419,8 +419,8 @@ class SubsetTest(CliTestCase):
419
419
  rest.close()
420
420
  os.unlink(rest.name)
421
421
 
422
- @ responses.activate
423
- @ mock.patch.dict(os.environ, {"LAUNCHABLE_TOKEN": CliTestCase.launchable_token})
422
+ @responses.activate
423
+ @mock.patch.dict(os.environ, {"LAUNCHABLE_TOKEN": CliTestCase.launchable_token})
424
424
  def test_subset_with_observation_and_output_exclusion_rules(self):
425
425
  pipe = "test_aaa.py\ntest_111.py\ntest_bbb.py\ntest_222.py\ntest_ccc.py\ntest_333.py\n"
426
426
  responses.replace(
@@ -0,0 +1,8 @@
1
+ [pytest]
2
+ ; xunit1 is necessary for adding line attribute.
3
+ junit_family = xunit1
4
+ ; Regiter custom markers
5
+ ; https://docs.pytest.org/en/stable/example/markers.html#registering-markers
6
+ markers =
7
+ foo
8
+ bar
@@ -0,0 +1,231 @@
1
+ {
2
+ "events": [
3
+ {
4
+ "type": "case",
5
+ "testPath": [
6
+ { "type": "file", "name": "tests/fooo/filenameonly_test.py" },
7
+ { "type": "class", "name": "tests.fooo.filenameonly_test" },
8
+ { "type": "testcase", "name": "test_x" }
9
+ ],
10
+ "duration": 0.0,
11
+ "status": 1,
12
+ "stdout": "",
13
+ "stderr": "",
14
+ "data": { "lineNumber": 1 }
15
+ },
16
+ {
17
+ "type": "case",
18
+ "testPath": [
19
+ { "type": "file", "name": "tests/fooo/func4_test.py" },
20
+ { "type": "class", "name": "tests.fooo.func4_test" },
21
+ { "type": "testcase", "name": "test_func6" }
22
+ ],
23
+ "duration": 0.0,
24
+ "status": 1,
25
+ "stdout": "",
26
+ "stderr": "",
27
+ "data": { "lineNumber": 1 }
28
+ },
29
+ {
30
+ "type": "case",
31
+ "testPath": [
32
+ { "type": "file", "name": "tests/funcs3_test.py" },
33
+ { "type": "class", "name": "tests.funcs3_test" },
34
+ { "type": "testcase", "name": "test_func4" }
35
+ ],
36
+ "duration": 0.0,
37
+ "status": 1,
38
+ "stdout": "",
39
+ "stderr": "",
40
+ "data": { "lineNumber": 1 }
41
+ },
42
+ {
43
+ "type": "case",
44
+ "testPath": [
45
+ { "type": "file", "name": "tests/funcs3_test.py" },
46
+ { "type": "class", "name": "tests.funcs3_test" },
47
+ { "type": "testcase", "name": "test_func5" }
48
+ ],
49
+ "duration": 0.0,
50
+ "status": 0,
51
+ "stdout": "",
52
+ "stderr": "def test_func5():\n > assert 1 == False # noqa: E712\n E assert 1 == False\n\n tests/funcs3_test.py:6: AssertionError",
53
+ "data": { "lineNumber": 5 }
54
+ },
55
+ {
56
+ "type": "case",
57
+ "testPath": [
58
+ { "type": "file", "name": "tests/test_funcs1.py" },
59
+ { "type": "class", "name": "tests.test_funcs1" },
60
+ { "type": "testcase", "name": "test_func1" }
61
+ ],
62
+ "duration": 0.0,
63
+ "status": 1,
64
+ "stdout": "",
65
+ "stderr": "",
66
+ "data": {
67
+ "markers": [
68
+ { "name": "name", "value": "foo" },
69
+ { "name": "args", "value": "()" },
70
+ { "name": "kwargs", "value": "{}" }
71
+ ],
72
+ "lineNumber": 3
73
+ }
74
+ },
75
+ {
76
+ "type": "case",
77
+ "testPath": [
78
+ { "type": "file", "name": "tests/test_funcs1.py" },
79
+ { "type": "class", "name": "tests.test_funcs1" },
80
+ { "type": "testcase", "name": "test_func2" }
81
+ ],
82
+ "duration": 0.0,
83
+ "status": 0,
84
+ "stdout": "",
85
+ "stderr": "@pytest.mark.bar\n def test_func2():\n > assert 1 == False # noqa: E712\n E assert 1 == False\n\n tests/test_funcs1.py:9: AssertionError",
86
+ "data": {
87
+ "markers": [
88
+ { "name": "name", "value": "bar" },
89
+ { "name": "args", "value": "()" },
90
+ { "name": "kwargs", "value": "{}" }
91
+ ],
92
+ "lineNumber": 7
93
+ }
94
+ },
95
+ {
96
+ "type": "case",
97
+ "testPath": [
98
+ { "type": "file", "name": "tests/test_funcs1.py" },
99
+ { "type": "class", "name": "tests.test_funcs1" },
100
+ { "type": "testcase", "name": "test_foo[2-0]" }
101
+ ],
102
+ "duration": 0.0,
103
+ "status": 0,
104
+ "stdout": "",
105
+ "stderr": "x = 0, y = 2\n\n @pytest.mark.parametrize(\"x\", [0, 1])\n @pytest.mark.parametrize(\"y\", [2, 3])\n def test_foo(x, y):\n > assert x == 1\n E assert 0 == 1\n\n tests/test_funcs1.py:15: AssertionError",
106
+ "data": {
107
+ "markers": [
108
+ { "name": "name", "value": "parametrize" },
109
+ { "name": "args", "value": "('y', [2, 3])" },
110
+ { "name": "kwargs", "value": "{}" },
111
+ { "name": "name", "value": "parametrize" },
112
+ { "name": "args", "value": "('x', [0, 1])" },
113
+ { "name": "kwargs", "value": "{}" }
114
+ ],
115
+ "lineNumber": 12
116
+ }
117
+ },
118
+ {
119
+ "type": "case",
120
+ "testPath": [
121
+ { "type": "file", "name": "tests/test_funcs1.py" },
122
+ { "type": "class", "name": "tests.test_funcs1" },
123
+ { "type": "testcase", "name": "test_foo[2-1]" }
124
+ ],
125
+ "duration": 0.0,
126
+ "status": 1,
127
+ "stdout": "",
128
+ "stderr": "",
129
+ "data": {
130
+ "markers": [
131
+ { "name": "name", "value": "parametrize" },
132
+ { "name": "args", "value": "('y', [2, 3])" },
133
+ { "name": "kwargs", "value": "{}" },
134
+ { "name": "name", "value": "parametrize" },
135
+ { "name": "args", "value": "('x', [0, 1])" },
136
+ { "name": "kwargs", "value": "{}" }
137
+ ],
138
+ "lineNumber": 12
139
+ }
140
+ },
141
+ {
142
+ "type": "case",
143
+ "testPath": [
144
+ { "type": "file", "name": "tests/test_funcs1.py" },
145
+ { "type": "class", "name": "tests.test_funcs1" },
146
+ { "type": "testcase", "name": "test_foo[3-0]" }
147
+ ],
148
+ "duration": 0.0,
149
+ "status": 0,
150
+ "stdout": "",
151
+ "stderr": "x = 0, y = 3\n\n @pytest.mark.parametrize(\"x\", [0, 1])\n @pytest.mark.parametrize(\"y\", [2, 3])\n def test_foo(x, y):\n > assert x == 1\n E assert 0 == 1\n\n tests/test_funcs1.py:15: AssertionError",
152
+ "data": {
153
+ "markers": [
154
+ { "name": "name", "value": "parametrize" },
155
+ { "name": "args", "value": "('y', [2, 3])" },
156
+ { "name": "kwargs", "value": "{}" },
157
+ { "name": "name", "value": "parametrize" },
158
+ { "name": "args", "value": "('x', [0, 1])" },
159
+ { "name": "kwargs", "value": "{}" }
160
+ ],
161
+ "lineNumber": 12
162
+ }
163
+ },
164
+ {
165
+ "type": "case",
166
+ "testPath": [
167
+ { "type": "file", "name": "tests/test_funcs1.py" },
168
+ { "type": "class", "name": "tests.test_funcs1" },
169
+ { "type": "testcase", "name": "test_foo[3-1]" }
170
+ ],
171
+ "duration": 0.0,
172
+ "status": 1,
173
+ "stdout": "",
174
+ "stderr": "",
175
+ "data": {
176
+ "markers": [
177
+ { "name": "name", "value": "parametrize" },
178
+ { "name": "args", "value": "('y', [2, 3])" },
179
+ { "name": "kwargs", "value": "{}" },
180
+ { "name": "name", "value": "parametrize" },
181
+ { "name": "args", "value": "('x', [0, 1])" },
182
+ { "name": "kwargs", "value": "{}" }
183
+ ],
184
+ "lineNumber": 12
185
+ }
186
+ },
187
+ {
188
+ "type": "case",
189
+ "testPath": [
190
+ { "type": "file", "name": "tests/test_funcs2.py" },
191
+ { "type": "class", "name": "tests.test_funcs2" },
192
+ { "type": "testcase", "name": "test_func3" }
193
+ ],
194
+ "duration": 0.0,
195
+ "status": 1,
196
+ "stdout": "",
197
+ "stderr": "",
198
+ "data": {
199
+ "markers": [
200
+ { "name": "name", "value": "foo" },
201
+ { "name": "args", "value": "()" },
202
+ { "name": "kwargs", "value": "{}" }
203
+ ],
204
+ "lineNumber": 3
205
+ }
206
+ },
207
+ {
208
+ "type": "case",
209
+ "testPath": [
210
+ { "type": "file", "name": "tests/test_funcs2.py" },
211
+ { "type": "class", "name": "tests.test_funcs2" },
212
+ { "type": "testcase", "name": "test_func4" }
213
+ ],
214
+ "duration": 0.0,
215
+ "status": 1,
216
+ "stdout": "",
217
+ "stderr": "",
218
+ "data": {
219
+ "markers": [
220
+ { "name": "name", "value": "bar" },
221
+ { "name": "args", "value": "()" },
222
+ { "name": "kwargs", "value": "{}" }
223
+ ],
224
+ "lineNumber": 8
225
+ }
226
+ }
227
+ ],
228
+ "testRunner": "pytest",
229
+ "group": "",
230
+ "noBuild": false
231
+ }