pytest 8.3.4__tar.gz → 8.3.5__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 (610) hide show
  1. {pytest-8.3.4 → pytest-8.3.5}/.github/workflows/deploy.yml +11 -5
  2. {pytest-8.3.4 → pytest-8.3.5}/.github/workflows/prepare-release-pr.yml +9 -2
  3. {pytest-8.3.4 → pytest-8.3.5}/.github/workflows/test.yml +11 -11
  4. {pytest-8.3.4 → pytest-8.3.5}/.github/workflows/update-plugin-list.yml +4 -2
  5. {pytest-8.3.4 → pytest-8.3.5}/.pre-commit-config.yaml +4 -0
  6. {pytest-8.3.4 → pytest-8.3.5}/AUTHORS +2 -0
  7. {pytest-8.3.4/src/pytest.egg-info → pytest-8.3.5}/PKG-INFO +4 -3
  8. {pytest-8.3.4 → pytest-8.3.5}/RELEASING.rst +5 -1
  9. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/index.rst +1 -0
  10. pytest-8.3.5/doc/en/announce/release-8.3.5.rst +26 -0
  11. {pytest-8.3.4 → pytest-8.3.5}/doc/en/broken-dep-constraints.txt +0 -4
  12. {pytest-8.3.4 → pytest-8.3.5}/doc/en/builtin.rst +4 -4
  13. {pytest-8.3.4 → pytest-8.3.5}/doc/en/changelog.rst +41 -0
  14. {pytest-8.3.4 → pytest-8.3.5}/doc/en/contact.rst +7 -0
  15. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/parametrize.rst +8 -7
  16. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/pythoncollection.rst +2 -2
  17. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/reportingdemo.rst +9 -9
  18. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/simple.rst +1 -1
  19. {pytest-8.3.4 → pytest-8.3.5}/doc/en/explanation/flaky.rst +12 -2
  20. {pytest-8.3.4 → pytest-8.3.5}/doc/en/explanation/index.rst +1 -0
  21. {pytest-8.3.4 → pytest-8.3.5}/doc/en/explanation/pythonpath.rst +2 -2
  22. pytest-8.3.5/doc/en/explanation/types.rst +89 -0
  23. {pytest-8.3.4 → pytest-8.3.5}/doc/en/getting-started.rst +1 -1
  24. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/capture-stdout-stderr.rst +1 -1
  25. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/fixtures.rst +1 -1
  26. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/parametrize.rst +0 -4
  27. {pytest-8.3.4 → pytest-8.3.5}/doc/en/index.rst +1 -1
  28. {pytest-8.3.4 → pytest-8.3.5}/doc/en/reference/reference.rst +8 -6
  29. {pytest-8.3.4 → pytest-8.3.5}/pyproject.toml +2 -1
  30. {pytest-8.3.4 → pytest-8.3.5}/scripts/release.patch.rst +1 -3
  31. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_version.py +9 -4
  32. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/assertion/rewrite.py +3 -0
  33. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/capture.py +18 -0
  34. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/hookspec.py +1 -1
  35. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/pathlib.py +24 -7
  36. {pytest-8.3.4 → pytest-8.3.5/src/pytest.egg-info}/PKG-INFO +4 -3
  37. {pytest-8.3.4 → pytest-8.3.5}/src/pytest.egg-info/SOURCES.txt +2 -0
  38. {pytest-8.3.4 → pytest-8.3.5}/testing/conftest.py +7 -0
  39. {pytest-8.3.4 → pytest-8.3.5}/testing/test_capture.py +30 -0
  40. {pytest-8.3.4 → pytest-8.3.5}/testing/test_pathlib.py +83 -0
  41. {pytest-8.3.4 → pytest-8.3.5}/testing/test_terminal.py +34 -5
  42. {pytest-8.3.4 → pytest-8.3.5}/tox.ini +0 -6
  43. {pytest-8.3.4 → pytest-8.3.5}/.coveragerc +0 -0
  44. {pytest-8.3.4 → pytest-8.3.5}/.git-blame-ignore-revs +0 -0
  45. {pytest-8.3.4 → pytest-8.3.5}/.gitattributes +0 -0
  46. {pytest-8.3.4 → pytest-8.3.5}/.github/FUNDING.yml +0 -0
  47. {pytest-8.3.4 → pytest-8.3.5}/.github/ISSUE_TEMPLATE/1_bug_report.md +0 -0
  48. {pytest-8.3.4 → pytest-8.3.5}/.github/ISSUE_TEMPLATE/2_feature_request.md +0 -0
  49. {pytest-8.3.4 → pytest-8.3.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  50. {pytest-8.3.4 → pytest-8.3.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  51. {pytest-8.3.4 → pytest-8.3.5}/.github/chronographer.yml +0 -0
  52. {pytest-8.3.4 → pytest-8.3.5}/.github/config.yml +0 -0
  53. {pytest-8.3.4 → pytest-8.3.5}/.github/dependabot.yml +0 -0
  54. {pytest-8.3.4 → pytest-8.3.5}/.github/labels.toml +0 -0
  55. {pytest-8.3.4 → pytest-8.3.5}/.github/patchback.yml +0 -0
  56. {pytest-8.3.4 → pytest-8.3.5}/.github/workflows/stale.yml +0 -0
  57. {pytest-8.3.4 → pytest-8.3.5}/.gitignore +0 -0
  58. {pytest-8.3.4 → pytest-8.3.5}/.readthedocs.yaml +0 -0
  59. {pytest-8.3.4 → pytest-8.3.5}/CHANGELOG.rst +0 -0
  60. {pytest-8.3.4 → pytest-8.3.5}/CITATION +0 -0
  61. {pytest-8.3.4 → pytest-8.3.5}/CODE_OF_CONDUCT.md +0 -0
  62. {pytest-8.3.4 → pytest-8.3.5}/CONTRIBUTING.rst +0 -0
  63. {pytest-8.3.4 → pytest-8.3.5}/LICENSE +0 -0
  64. {pytest-8.3.4 → pytest-8.3.5}/OPENCOLLECTIVE.rst +0 -0
  65. {pytest-8.3.4 → pytest-8.3.5}/README.rst +0 -0
  66. {pytest-8.3.4 → pytest-8.3.5}/TIDELIFT.rst +0 -0
  67. {pytest-8.3.4 → pytest-8.3.5}/bench/bench.py +0 -0
  68. {pytest-8.3.4 → pytest-8.3.5}/bench/bench_argcomplete.py +0 -0
  69. {pytest-8.3.4 → pytest-8.3.5}/bench/empty.py +0 -0
  70. {pytest-8.3.4 → pytest-8.3.5}/bench/manyparam.py +0 -0
  71. {pytest-8.3.4 → pytest-8.3.5}/bench/skip.py +0 -0
  72. {pytest-8.3.4 → pytest-8.3.5}/bench/unit_test.py +0 -0
  73. {pytest-8.3.4 → pytest-8.3.5}/bench/xunit.py +0 -0
  74. {pytest-8.3.4 → pytest-8.3.5}/changelog/.gitignore +0 -0
  75. {pytest-8.3.4 → pytest-8.3.5}/changelog/README.rst +0 -0
  76. {pytest-8.3.4 → pytest-8.3.5}/changelog/_template.rst +0 -0
  77. {pytest-8.3.4 → pytest-8.3.5}/codecov.yml +0 -0
  78. {pytest-8.3.4 → pytest-8.3.5}/doc/en/Makefile +0 -0
  79. {pytest-8.3.4 → pytest-8.3.5}/doc/en/_static/pytest-custom.css +0 -0
  80. {pytest-8.3.4 → pytest-8.3.5}/doc/en/_static/pytest1.png +0 -0
  81. {pytest-8.3.4 → pytest-8.3.5}/doc/en/_templates/links.html +0 -0
  82. {pytest-8.3.4 → pytest-8.3.5}/doc/en/adopt.rst +0 -0
  83. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.0.0.rst +0 -0
  84. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.0.1.rst +0 -0
  85. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.0.2.rst +0 -0
  86. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.0.3.rst +0 -0
  87. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.1.0.rst +0 -0
  88. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.1.1.rst +0 -0
  89. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.1.2.rst +0 -0
  90. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.1.3.rst +0 -0
  91. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.2.0.rst +0 -0
  92. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.2.1.rst +0 -0
  93. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.2.2.rst +0 -0
  94. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.2.4.rst +0 -0
  95. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.3.0.rst +0 -0
  96. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.3.1.rst +0 -0
  97. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.3.2.rst +0 -0
  98. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.3.3.rst +0 -0
  99. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.3.4.rst +0 -0
  100. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.3.5.rst +0 -0
  101. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.4.0.rst +0 -0
  102. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.4.1.rst +0 -0
  103. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.4.2.rst +0 -0
  104. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.5.0.rst +0 -0
  105. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.5.1.rst +0 -0
  106. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.5.2.rst +0 -0
  107. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.6.0.rst +0 -0
  108. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.6.1.rst +0 -0
  109. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.6.2.rst +0 -0
  110. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.6.3.rst +0 -0
  111. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.7.0.rst +0 -0
  112. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.7.1.rst +0 -0
  113. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.7.2.rst +0 -0
  114. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.8.2.rst +0 -0
  115. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.8.3.rst +0 -0
  116. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.8.4.rst +0 -0
  117. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.8.5.rst +0 -0
  118. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.8.6.rst +0 -0
  119. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.8.7.rst +0 -0
  120. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.9.0.rst +0 -0
  121. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.9.1.rst +0 -0
  122. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-2.9.2.rst +0 -0
  123. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.0.0.rst +0 -0
  124. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.0.1.rst +0 -0
  125. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.0.2.rst +0 -0
  126. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.0.3.rst +0 -0
  127. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.0.4.rst +0 -0
  128. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.0.5.rst +0 -0
  129. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.0.6.rst +0 -0
  130. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.0.7.rst +0 -0
  131. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.1.0.rst +0 -0
  132. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.1.1.rst +0 -0
  133. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.1.2.rst +0 -0
  134. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.1.3.rst +0 -0
  135. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.10.0.rst +0 -0
  136. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.10.1.rst +0 -0
  137. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.2.0.rst +0 -0
  138. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.2.1.rst +0 -0
  139. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.2.2.rst +0 -0
  140. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.2.3.rst +0 -0
  141. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.2.4.rst +0 -0
  142. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.2.5.rst +0 -0
  143. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.3.0.rst +0 -0
  144. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.3.1.rst +0 -0
  145. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.3.2.rst +0 -0
  146. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.4.0.rst +0 -0
  147. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.4.1.rst +0 -0
  148. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.4.2.rst +0 -0
  149. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.5.0.rst +0 -0
  150. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.5.1.rst +0 -0
  151. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.6.0.rst +0 -0
  152. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.6.1.rst +0 -0
  153. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.6.2.rst +0 -0
  154. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.6.3.rst +0 -0
  155. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.6.4.rst +0 -0
  156. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.7.0.rst +0 -0
  157. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.7.1.rst +0 -0
  158. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.7.2.rst +0 -0
  159. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.7.3.rst +0 -0
  160. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.7.4.rst +0 -0
  161. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.8.0.rst +0 -0
  162. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.8.1.rst +0 -0
  163. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.8.2.rst +0 -0
  164. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.9.0.rst +0 -0
  165. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.9.1.rst +0 -0
  166. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.9.2.rst +0 -0
  167. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-3.9.3.rst +0 -0
  168. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.0.0.rst +0 -0
  169. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.0.1.rst +0 -0
  170. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.0.2.rst +0 -0
  171. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.1.0.rst +0 -0
  172. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.1.1.rst +0 -0
  173. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.2.0.rst +0 -0
  174. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.2.1.rst +0 -0
  175. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.3.0.rst +0 -0
  176. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.3.1.rst +0 -0
  177. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.4.0.rst +0 -0
  178. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.4.1.rst +0 -0
  179. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.4.2.rst +0 -0
  180. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.5.0.rst +0 -0
  181. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.0.rst +0 -0
  182. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.1.rst +0 -0
  183. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.2.rst +0 -0
  184. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.3.rst +0 -0
  185. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.4.rst +0 -0
  186. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.5.rst +0 -0
  187. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.6.rst +0 -0
  188. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.7.rst +0 -0
  189. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.8.rst +0 -0
  190. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-4.6.9.rst +0 -0
  191. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.0.0.rst +0 -0
  192. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.0.1.rst +0 -0
  193. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.1.0.rst +0 -0
  194. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.1.1.rst +0 -0
  195. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.1.2.rst +0 -0
  196. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.1.3.rst +0 -0
  197. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.2.0.rst +0 -0
  198. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.2.1.rst +0 -0
  199. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.2.2.rst +0 -0
  200. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.2.3.rst +0 -0
  201. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.2.4.rst +0 -0
  202. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.3.0.rst +0 -0
  203. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.3.1.rst +0 -0
  204. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.3.2.rst +0 -0
  205. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.3.3.rst +0 -0
  206. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.3.4.rst +0 -0
  207. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.3.5.rst +0 -0
  208. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.4.0.rst +0 -0
  209. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.4.1.rst +0 -0
  210. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.4.2.rst +0 -0
  211. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-5.4.3.rst +0 -0
  212. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.0.0.rst +0 -0
  213. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.0.0rc1.rst +0 -0
  214. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.0.1.rst +0 -0
  215. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.0.2.rst +0 -0
  216. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.1.0.rst +0 -0
  217. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.1.1.rst +0 -0
  218. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.1.2.rst +0 -0
  219. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.2.0.rst +0 -0
  220. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.2.1.rst +0 -0
  221. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.2.2.rst +0 -0
  222. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.2.3.rst +0 -0
  223. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.2.4.rst +0 -0
  224. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-6.2.5.rst +0 -0
  225. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.0.0.rst +0 -0
  226. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.0.0rc1.rst +0 -0
  227. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.0.1.rst +0 -0
  228. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.1.0.rst +0 -0
  229. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.1.1.rst +0 -0
  230. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.1.2.rst +0 -0
  231. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.1.3.rst +0 -0
  232. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.2.0.rst +0 -0
  233. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.2.1.rst +0 -0
  234. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.2.2.rst +0 -0
  235. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.3.0.rst +0 -0
  236. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.3.1.rst +0 -0
  237. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.3.2.rst +0 -0
  238. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.4.0.rst +0 -0
  239. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.4.1.rst +0 -0
  240. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.4.2.rst +0 -0
  241. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.4.3.rst +0 -0
  242. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-7.4.4.rst +0 -0
  243. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.0.0.rst +0 -0
  244. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.0.0rc1.rst +0 -0
  245. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.0.0rc2.rst +0 -0
  246. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.0.1.rst +0 -0
  247. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.0.2.rst +0 -0
  248. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.1.0.rst +0 -0
  249. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.1.1.rst +0 -0
  250. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.1.2.rst +0 -0
  251. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.2.0.rst +0 -0
  252. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.2.1.rst +0 -0
  253. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.2.2.rst +0 -0
  254. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.3.0.rst +0 -0
  255. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.3.1.rst +0 -0
  256. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.3.2.rst +0 -0
  257. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.3.3.rst +0 -0
  258. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/release-8.3.4.rst +0 -0
  259. {pytest-8.3.4 → pytest-8.3.5}/doc/en/announce/sprint2016.rst +0 -0
  260. {pytest-8.3.4 → pytest-8.3.5}/doc/en/backwards-compatibility.rst +0 -0
  261. {pytest-8.3.4 → pytest-8.3.5}/doc/en/conf.py +0 -0
  262. {pytest-8.3.4 → pytest-8.3.5}/doc/en/conftest.py +0 -0
  263. {pytest-8.3.4 → pytest-8.3.5}/doc/en/contents.rst +0 -0
  264. {pytest-8.3.4 → pytest-8.3.5}/doc/en/contributing.rst +0 -0
  265. {pytest-8.3.4 → pytest-8.3.5}/doc/en/deprecations.rst +0 -0
  266. {pytest-8.3.4 → pytest-8.3.5}/doc/en/development_guide.rst +0 -0
  267. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/assertion/failure_demo.py +0 -0
  268. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/assertion/global_testmodule_config/conftest.py +0 -0
  269. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/assertion/global_testmodule_config/test_hello_world.py +0 -0
  270. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/assertion/test_failures.py +0 -0
  271. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/assertion/test_setup_flow_example.py +0 -0
  272. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/attic.rst +0 -0
  273. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/conftest.py +0 -0
  274. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/customdirectory/conftest.py +0 -0
  275. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/customdirectory/pytest.ini +0 -0
  276. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/customdirectory/tests/manifest.json +0 -0
  277. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/customdirectory/tests/test_first.py +0 -0
  278. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/customdirectory/tests/test_second.py +0 -0
  279. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/customdirectory/tests/test_third.py +0 -0
  280. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/customdirectory.rst +0 -0
  281. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/fixture_availability.svg +0 -0
  282. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/fixture_availability_plugins.svg +0 -0
  283. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_autouse.py +0 -0
  284. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_autouse.svg +0 -0
  285. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_autouse_flat.svg +0 -0
  286. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_autouse_multiple_scopes.py +0 -0
  287. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_autouse_multiple_scopes.svg +0 -0
  288. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_autouse_temp_effects.py +0 -0
  289. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_autouse_temp_effects.svg +0 -0
  290. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_dependencies.py +0 -0
  291. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_dependencies.svg +0 -0
  292. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_dependencies_flat.svg +0 -0
  293. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_dependencies_unclear.svg +0 -0
  294. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_scope.py +0 -0
  295. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_order_scope.svg +0 -0
  296. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_request_different_scope.py +0 -0
  297. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/fixtures/test_fixtures_request_different_scope.svg +0 -0
  298. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/index.rst +0 -0
  299. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/markers.rst +0 -0
  300. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/multipython.py +0 -0
  301. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/nonpython/__init__.py +0 -0
  302. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/nonpython/conftest.py +0 -0
  303. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/nonpython/test_simple.yaml +0 -0
  304. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/nonpython.rst +0 -0
  305. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/pythoncollection.py +0 -0
  306. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/special.rst +0 -0
  307. {pytest-8.3.4 → pytest-8.3.5}/doc/en/example/xfail_demo.py +0 -0
  308. {pytest-8.3.4 → pytest-8.3.5}/doc/en/explanation/anatomy.rst +0 -0
  309. {pytest-8.3.4 → pytest-8.3.5}/doc/en/explanation/ci.rst +0 -0
  310. {pytest-8.3.4 → pytest-8.3.5}/doc/en/explanation/fixtures.rst +0 -0
  311. {pytest-8.3.4 → pytest-8.3.5}/doc/en/explanation/goodpractices.rst +0 -0
  312. {pytest-8.3.4 → pytest-8.3.5}/doc/en/funcarg_compare.rst +0 -0
  313. {pytest-8.3.4 → pytest-8.3.5}/doc/en/funcargs.rst +0 -0
  314. {pytest-8.3.4 → pytest-8.3.5}/doc/en/historical-notes.rst +0 -0
  315. {pytest-8.3.4 → pytest-8.3.5}/doc/en/history.rst +0 -0
  316. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/assert.rst +0 -0
  317. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/bash-completion.rst +0 -0
  318. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/cache.rst +0 -0
  319. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/capture-warnings.rst +0 -0
  320. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/doctest.rst +0 -0
  321. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/existingtestsuite.rst +0 -0
  322. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/failures.rst +0 -0
  323. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/index.rst +0 -0
  324. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/logging.rst +0 -0
  325. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/mark.rst +0 -0
  326. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/monkeypatch.rst +0 -0
  327. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/output.rst +0 -0
  328. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/plugins.rst +0 -0
  329. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/skipping.rst +0 -0
  330. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/tmp_path.rst +0 -0
  331. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/unittest.rst +0 -0
  332. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/usage.rst +0 -0
  333. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/writing_hook_functions.rst +0 -0
  334. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/writing_plugins.rst +0 -0
  335. {pytest-8.3.4 → pytest-8.3.5}/doc/en/how-to/xunit_setup.rst +0 -0
  336. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/cramer2.png +0 -0
  337. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/favicon.png +0 -0
  338. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/freiburg2.jpg +0 -0
  339. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/gaynor3.png +0 -0
  340. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/keleshev.png +0 -0
  341. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/pullrequest.png +0 -0
  342. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/pylib.png +0 -0
  343. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/pytest_logo_curves.svg +0 -0
  344. {pytest-8.3.4 → pytest-8.3.5}/doc/en/img/theuni.png +0 -0
  345. {pytest-8.3.4 → pytest-8.3.5}/doc/en/license.rst +0 -0
  346. {pytest-8.3.4 → pytest-8.3.5}/doc/en/naming20.rst +0 -0
  347. {pytest-8.3.4 → pytest-8.3.5}/doc/en/proposals/parametrize_with_fixtures.rst +0 -0
  348. {pytest-8.3.4 → pytest-8.3.5}/doc/en/pytest.ini +0 -0
  349. {pytest-8.3.4 → pytest-8.3.5}/doc/en/recwarn.rst +0 -0
  350. {pytest-8.3.4 → pytest-8.3.5}/doc/en/reference/customize.rst +0 -0
  351. {pytest-8.3.4 → pytest-8.3.5}/doc/en/reference/exit-codes.rst +0 -0
  352. {pytest-8.3.4 → pytest-8.3.5}/doc/en/reference/fixtures.rst +0 -0
  353. {pytest-8.3.4 → pytest-8.3.5}/doc/en/reference/index.rst +0 -0
  354. {pytest-8.3.4 → pytest-8.3.5}/doc/en/reference/plugin_list.rst +0 -0
  355. {pytest-8.3.4 → pytest-8.3.5}/doc/en/requirements.txt +0 -0
  356. {pytest-8.3.4 → pytest-8.3.5}/doc/en/sponsor.rst +0 -0
  357. {pytest-8.3.4 → pytest-8.3.5}/doc/en/talks.rst +0 -0
  358. {pytest-8.3.4 → pytest-8.3.5}/doc/en/tidelift.rst +0 -0
  359. {pytest-8.3.4 → pytest-8.3.5}/doc/en/yieldfixture.rst +0 -0
  360. {pytest-8.3.4 → pytest-8.3.5}/extra/get_issues.py +0 -0
  361. {pytest-8.3.4 → pytest-8.3.5}/scripts/.gitignore +0 -0
  362. {pytest-8.3.4 → pytest-8.3.5}/scripts/generate-gh-release-notes.py +0 -0
  363. {pytest-8.3.4 → pytest-8.3.5}/scripts/prepare-release-pr.py +0 -0
  364. {pytest-8.3.4 → pytest-8.3.5}/scripts/release.major.rst +0 -0
  365. {pytest-8.3.4 → pytest-8.3.5}/scripts/release.minor.rst +0 -0
  366. {pytest-8.3.4 → pytest-8.3.5}/scripts/release.pre.rst +0 -0
  367. {pytest-8.3.4 → pytest-8.3.5}/scripts/release.py +0 -0
  368. {pytest-8.3.4 → pytest-8.3.5}/scripts/update-plugin-list.py +0 -0
  369. {pytest-8.3.4 → pytest-8.3.5}/setup.cfg +0 -0
  370. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/__init__.py +0 -0
  371. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_argcomplete.py +0 -0
  372. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_code/__init__.py +0 -0
  373. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_code/code.py +0 -0
  374. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_code/source.py +0 -0
  375. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_io/__init__.py +0 -0
  376. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_io/pprint.py +0 -0
  377. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_io/saferepr.py +0 -0
  378. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_io/terminalwriter.py +0 -0
  379. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_io/wcwidth.py +0 -0
  380. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_py/__init__.py +0 -0
  381. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_py/error.py +0 -0
  382. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/_py/path.py +0 -0
  383. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/assertion/__init__.py +0 -0
  384. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/assertion/truncate.py +0 -0
  385. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/assertion/util.py +0 -0
  386. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/cacheprovider.py +0 -0
  387. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/compat.py +0 -0
  388. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/config/__init__.py +0 -0
  389. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/config/argparsing.py +0 -0
  390. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/config/compat.py +0 -0
  391. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/config/exceptions.py +0 -0
  392. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/config/findpaths.py +0 -0
  393. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/debugging.py +0 -0
  394. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/deprecated.py +0 -0
  395. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/doctest.py +0 -0
  396. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/faulthandler.py +0 -0
  397. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/fixtures.py +0 -0
  398. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/freeze_support.py +0 -0
  399. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/helpconfig.py +0 -0
  400. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/junitxml.py +0 -0
  401. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/legacypath.py +0 -0
  402. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/logging.py +0 -0
  403. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/main.py +0 -0
  404. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/mark/__init__.py +0 -0
  405. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/mark/expression.py +0 -0
  406. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/mark/structures.py +0 -0
  407. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/monkeypatch.py +0 -0
  408. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/nodes.py +0 -0
  409. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/outcomes.py +0 -0
  410. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/pastebin.py +0 -0
  411. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/py.typed +0 -0
  412. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/pytester.py +0 -0
  413. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/pytester_assertions.py +0 -0
  414. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/python.py +0 -0
  415. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/python_api.py +0 -0
  416. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/python_path.py +0 -0
  417. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/recwarn.py +0 -0
  418. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/reports.py +0 -0
  419. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/runner.py +0 -0
  420. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/scope.py +0 -0
  421. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/setuponly.py +0 -0
  422. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/setupplan.py +0 -0
  423. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/skipping.py +0 -0
  424. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/stash.py +0 -0
  425. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/stepwise.py +0 -0
  426. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/terminal.py +0 -0
  427. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/threadexception.py +0 -0
  428. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/timing.py +0 -0
  429. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/tmpdir.py +0 -0
  430. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/unittest.py +0 -0
  431. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/unraisableexception.py +0 -0
  432. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/warning_types.py +0 -0
  433. {pytest-8.3.4 → pytest-8.3.5}/src/_pytest/warnings.py +0 -0
  434. {pytest-8.3.4 → pytest-8.3.5}/src/py.py +0 -0
  435. {pytest-8.3.4 → pytest-8.3.5}/src/pytest/__init__.py +0 -0
  436. {pytest-8.3.4 → pytest-8.3.5}/src/pytest/__main__.py +0 -0
  437. {pytest-8.3.4 → pytest-8.3.5}/src/pytest/py.typed +0 -0
  438. {pytest-8.3.4 → pytest-8.3.5}/src/pytest.egg-info/dependency_links.txt +0 -0
  439. {pytest-8.3.4 → pytest-8.3.5}/src/pytest.egg-info/entry_points.txt +0 -0
  440. {pytest-8.3.4 → pytest-8.3.5}/src/pytest.egg-info/requires.txt +0 -0
  441. {pytest-8.3.4 → pytest-8.3.5}/src/pytest.egg-info/top_level.txt +0 -0
  442. {pytest-8.3.4 → pytest-8.3.5}/testing/_py/test_local.py +0 -0
  443. {pytest-8.3.4 → pytest-8.3.5}/testing/acceptance_test.py +0 -0
  444. {pytest-8.3.4 → pytest-8.3.5}/testing/code/test_code.py +0 -0
  445. {pytest-8.3.4 → pytest-8.3.5}/testing/code/test_excinfo.py +0 -0
  446. {pytest-8.3.4 → pytest-8.3.5}/testing/code/test_source.py +0 -0
  447. {pytest-8.3.4 → pytest-8.3.5}/testing/deprecated_test.py +0 -0
  448. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/README.rst +0 -0
  449. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/__init__.py +0 -0
  450. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/acceptance/fixture_mock_integration.py +0 -0
  451. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/collect_init_tests/pytest.ini +0 -0
  452. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/collect_init_tests/tests/__init__.py +0 -0
  453. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/collect_init_tests/tests/test_foo.py +0 -0
  454. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/package_infinite_recursion/__init__.pyi +0 -0
  455. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/package_infinite_recursion/conftest.py +0 -0
  456. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/package_infinite_recursion/tests/__init__.py +0 -0
  457. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/package_infinite_recursion/tests/test_basic.py +0 -0
  458. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/package_init_given_as_arg/pkg/__init__.py +0 -0
  459. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/collect/package_init_given_as_arg/pkg/test_foo.py +0 -0
  460. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/config/collect_pytest_prefix/__init__.pyi +0 -0
  461. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/config/collect_pytest_prefix/conftest.py +0 -0
  462. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/config/collect_pytest_prefix/test_foo.py +0 -0
  463. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/conftest_usageerror/__init__.pyi +0 -0
  464. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/conftest_usageerror/conftest.py +0 -0
  465. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/customdirectory/conftest.py +0 -0
  466. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/customdirectory/pytest.ini +0 -0
  467. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/customdirectory/tests/manifest.json +0 -0
  468. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/customdirectory/tests/test_first.py +0 -0
  469. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/customdirectory/tests/test_second.py +0 -0
  470. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/customdirectory/tests/test_third.py +0 -0
  471. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/dataclasses/test_compare_dataclasses.py +0 -0
  472. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/dataclasses/test_compare_dataclasses_field_comparison_off.py +0 -0
  473. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/dataclasses/test_compare_dataclasses_verbose.py +0 -0
  474. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/dataclasses/test_compare_dataclasses_with_custom_eq.py +0 -0
  475. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/dataclasses/test_compare_initvar.py +0 -0
  476. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/dataclasses/test_compare_recursive_dataclasses.py +0 -0
  477. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/dataclasses/test_compare_two_different_dataclasses.py +0 -0
  478. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/doctest/main_py/__main__.py +0 -0
  479. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/doctest/main_py/test_normal_module.py +0 -0
  480. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/custom_item/__init__.pyi +0 -0
  481. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/custom_item/conftest.py +0 -0
  482. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/custom_item/foo/__init__.py +0 -0
  483. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/custom_item/foo/test_foo.py +0 -0
  484. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/__init__.py +0 -0
  485. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/conftest.py +0 -0
  486. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/test_in_sub1.py +0 -0
  487. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/__init__.py +0 -0
  488. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/conftest.py +0 -0
  489. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/test_in_sub2.py +0 -0
  490. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_detect_recursive_dependency_error.py +0 -0
  491. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/__init__.pyi +0 -0
  492. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/conftest.py +0 -0
  493. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/__init__.py +0 -0
  494. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/conftest.py +0 -0
  495. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/test_spam.py +0 -0
  496. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/__init__.pyi +0 -0
  497. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/conftest.py +0 -0
  498. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/test_extend_fixture_conftest_module.py +0 -0
  499. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_module_class.py +0 -0
  500. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_basic.py +0 -0
  501. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_classlevel.py +0 -0
  502. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_modulelevel.py +0 -0
  503. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookupfails.py +0 -0
  504. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/test_fixture_named_request.py +0 -0
  505. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/fixtures/test_getfixturevalue_dynamic.py +0 -0
  506. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/issue88_initial_file_multinodes/__init__.pyi +0 -0
  507. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/issue88_initial_file_multinodes/conftest.py +0 -0
  508. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/issue88_initial_file_multinodes/test_hello.py +0 -0
  509. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/issue_519.py +0 -0
  510. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/junit-10.xsd +0 -0
  511. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/marks/marks_considered_keywords/__init__.pyi +0 -0
  512. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/marks/marks_considered_keywords/conftest.py +0 -0
  513. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/marks/marks_considered_keywords/test_marks_as_keywords.py +0 -0
  514. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/perf_examples/collect_stats/.gitignore +0 -0
  515. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/perf_examples/collect_stats/generate_folders.py +0 -0
  516. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/perf_examples/collect_stats/template_test.py +0 -0
  517. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/pytest.ini +0 -0
  518. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/tmpdir/tmp_path_fixture.py +0 -0
  519. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/unittest/test_parametrized_fixture_error_message.py +0 -0
  520. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/unittest/test_setup_skip.py +0 -0
  521. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/unittest/test_setup_skip_class.py +0 -0
  522. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/unittest/test_setup_skip_module.py +0 -0
  523. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/unittest/test_unittest_asyncio.py +0 -0
  524. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/unittest/test_unittest_asynctest.py +0 -0
  525. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/unittest/test_unittest_plain_async.py +0 -0
  526. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/warnings/test_group_warnings_by_message.py +0 -0
  527. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_1.py +0 -0
  528. {pytest-8.3.4 → pytest-8.3.5}/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_2.py +0 -0
  529. {pytest-8.3.4 → pytest-8.3.5}/testing/examples/test_issue519.py +0 -0
  530. {pytest-8.3.4 → pytest-8.3.5}/testing/freeze/.gitignore +0 -0
  531. {pytest-8.3.4 → pytest-8.3.5}/testing/freeze/create_executable.py +0 -0
  532. {pytest-8.3.4 → pytest-8.3.5}/testing/freeze/runtests_script.py +0 -0
  533. {pytest-8.3.4 → pytest-8.3.5}/testing/freeze/tests/test_doctest.txt +0 -0
  534. {pytest-8.3.4 → pytest-8.3.5}/testing/freeze/tests/test_trivial.py +0 -0
  535. {pytest-8.3.4 → pytest-8.3.5}/testing/freeze/tox_run.py +0 -0
  536. {pytest-8.3.4 → pytest-8.3.5}/testing/io/test_pprint.py +0 -0
  537. {pytest-8.3.4 → pytest-8.3.5}/testing/io/test_saferepr.py +0 -0
  538. {pytest-8.3.4 → pytest-8.3.5}/testing/io/test_terminalwriter.py +0 -0
  539. {pytest-8.3.4 → pytest-8.3.5}/testing/io/test_wcwidth.py +0 -0
  540. {pytest-8.3.4 → pytest-8.3.5}/testing/logging/test_fixture.py +0 -0
  541. {pytest-8.3.4 → pytest-8.3.5}/testing/logging/test_formatter.py +0 -0
  542. {pytest-8.3.4 → pytest-8.3.5}/testing/logging/test_reporting.py +0 -0
  543. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/.gitignore +0 -0
  544. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/README.rst +0 -0
  545. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/bdd_wallet.feature +0 -0
  546. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/bdd_wallet.py +0 -0
  547. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/django_settings.py +0 -0
  548. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/pytest.ini +0 -0
  549. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/pytest_anyio_integration.py +0 -0
  550. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/pytest_asyncio_integration.py +0 -0
  551. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/pytest_mock_integration.py +0 -0
  552. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/pytest_rerunfailures_integration.py +0 -0
  553. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/pytest_trio_integration.py +0 -0
  554. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/pytest_twisted_integration.py +0 -0
  555. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/requirements.txt +0 -0
  556. {pytest-8.3.4 → pytest-8.3.5}/testing/plugins_integration/simple_integration.py +0 -0
  557. {pytest-8.3.4 → pytest-8.3.5}/testing/python/approx.py +0 -0
  558. {pytest-8.3.4 → pytest-8.3.5}/testing/python/collect.py +0 -0
  559. {pytest-8.3.4 → pytest-8.3.5}/testing/python/fixtures.py +0 -0
  560. {pytest-8.3.4 → pytest-8.3.5}/testing/python/integration.py +0 -0
  561. {pytest-8.3.4 → pytest-8.3.5}/testing/python/metafunc.py +0 -0
  562. {pytest-8.3.4 → pytest-8.3.5}/testing/python/raises.py +0 -0
  563. {pytest-8.3.4 → pytest-8.3.5}/testing/python/show_fixtures_per_test.py +0 -0
  564. {pytest-8.3.4 → pytest-8.3.5}/testing/test_argcomplete.py +0 -0
  565. {pytest-8.3.4 → pytest-8.3.5}/testing/test_assertion.py +0 -0
  566. {pytest-8.3.4 → pytest-8.3.5}/testing/test_assertrewrite.py +0 -0
  567. {pytest-8.3.4 → pytest-8.3.5}/testing/test_cacheprovider.py +0 -0
  568. {pytest-8.3.4 → pytest-8.3.5}/testing/test_collection.py +0 -0
  569. {pytest-8.3.4 → pytest-8.3.5}/testing/test_compat.py +0 -0
  570. {pytest-8.3.4 → pytest-8.3.5}/testing/test_config.py +0 -0
  571. {pytest-8.3.4 → pytest-8.3.5}/testing/test_conftest.py +0 -0
  572. {pytest-8.3.4 → pytest-8.3.5}/testing/test_debugging.py +0 -0
  573. {pytest-8.3.4 → pytest-8.3.5}/testing/test_doctest.py +0 -0
  574. {pytest-8.3.4 → pytest-8.3.5}/testing/test_entry_points.py +0 -0
  575. {pytest-8.3.4 → pytest-8.3.5}/testing/test_error_diffs.py +0 -0
  576. {pytest-8.3.4 → pytest-8.3.5}/testing/test_faulthandler.py +0 -0
  577. {pytest-8.3.4 → pytest-8.3.5}/testing/test_findpaths.py +0 -0
  578. {pytest-8.3.4 → pytest-8.3.5}/testing/test_helpconfig.py +0 -0
  579. {pytest-8.3.4 → pytest-8.3.5}/testing/test_junitxml.py +0 -0
  580. {pytest-8.3.4 → pytest-8.3.5}/testing/test_legacypath.py +0 -0
  581. {pytest-8.3.4 → pytest-8.3.5}/testing/test_link_resolve.py +0 -0
  582. {pytest-8.3.4 → pytest-8.3.5}/testing/test_main.py +0 -0
  583. {pytest-8.3.4 → pytest-8.3.5}/testing/test_mark.py +0 -0
  584. {pytest-8.3.4 → pytest-8.3.5}/testing/test_mark_expression.py +0 -0
  585. {pytest-8.3.4 → pytest-8.3.5}/testing/test_meta.py +0 -0
  586. {pytest-8.3.4 → pytest-8.3.5}/testing/test_monkeypatch.py +0 -0
  587. {pytest-8.3.4 → pytest-8.3.5}/testing/test_nodes.py +0 -0
  588. {pytest-8.3.4 → pytest-8.3.5}/testing/test_parseopt.py +0 -0
  589. {pytest-8.3.4 → pytest-8.3.5}/testing/test_pastebin.py +0 -0
  590. {pytest-8.3.4 → pytest-8.3.5}/testing/test_pluginmanager.py +0 -0
  591. {pytest-8.3.4 → pytest-8.3.5}/testing/test_pytester.py +0 -0
  592. {pytest-8.3.4 → pytest-8.3.5}/testing/test_python_path.py +0 -0
  593. {pytest-8.3.4 → pytest-8.3.5}/testing/test_recwarn.py +0 -0
  594. {pytest-8.3.4 → pytest-8.3.5}/testing/test_reports.py +0 -0
  595. {pytest-8.3.4 → pytest-8.3.5}/testing/test_runner.py +0 -0
  596. {pytest-8.3.4 → pytest-8.3.5}/testing/test_runner_xunit.py +0 -0
  597. {pytest-8.3.4 → pytest-8.3.5}/testing/test_scope.py +0 -0
  598. {pytest-8.3.4 → pytest-8.3.5}/testing/test_session.py +0 -0
  599. {pytest-8.3.4 → pytest-8.3.5}/testing/test_setuponly.py +0 -0
  600. {pytest-8.3.4 → pytest-8.3.5}/testing/test_setupplan.py +0 -0
  601. {pytest-8.3.4 → pytest-8.3.5}/testing/test_skipping.py +0 -0
  602. {pytest-8.3.4 → pytest-8.3.5}/testing/test_stash.py +0 -0
  603. {pytest-8.3.4 → pytest-8.3.5}/testing/test_stepwise.py +0 -0
  604. {pytest-8.3.4 → pytest-8.3.5}/testing/test_threadexception.py +0 -0
  605. {pytest-8.3.4 → pytest-8.3.5}/testing/test_tmpdir.py +0 -0
  606. {pytest-8.3.4 → pytest-8.3.5}/testing/test_unittest.py +0 -0
  607. {pytest-8.3.4 → pytest-8.3.5}/testing/test_unraisableexception.py +0 -0
  608. {pytest-8.3.4 → pytest-8.3.5}/testing/test_warning_types.py +0 -0
  609. {pytest-8.3.4 → pytest-8.3.5}/testing/test_warnings.py +0 -0
  610. {pytest-8.3.4 → pytest-8.3.5}/testing/typing_checks.py +0 -0
@@ -31,7 +31,7 @@ jobs:
31
31
  persist-credentials: false
32
32
 
33
33
  - name: Build and Check Package
34
- uses: hynek/build-and-inspect-python-package@v2.6.0
34
+ uses: hynek/build-and-inspect-python-package@v2.12.0
35
35
  with:
36
36
  attest-build-provenance-github: 'true'
37
37
 
@@ -46,6 +46,8 @@ jobs:
46
46
  contents: write
47
47
  steps:
48
48
  - uses: actions/checkout@v4
49
+ with:
50
+ persist-credentials: true
49
51
 
50
52
  - name: Download Package
51
53
  uses: actions/download-artifact@v4
@@ -54,16 +56,18 @@ jobs:
54
56
  path: dist
55
57
 
56
58
  - name: Publish package to PyPI
57
- uses: pypa/gh-action-pypi-publish@v1.12.2
59
+ uses: pypa/gh-action-pypi-publish@v1.12.3
58
60
  with:
59
61
  attestations: true
60
62
 
61
63
  - name: Push tag
64
+ env:
65
+ VERSION: ${{ github.event.inputs.version }}
62
66
  run: |
63
67
  git config user.name "pytest bot"
64
68
  git config user.email "pytestbot@gmail.com"
65
- git tag --annotate --message=v${{ github.event.inputs.version }} ${{ github.event.inputs.version }} ${{ github.sha }}
66
- git push origin ${{ github.event.inputs.version }}
69
+ git tag --annotate --message=v"$VERSION" "$VERSION" ${{ github.sha }}
70
+ git push origin "$VERSION"
67
71
 
68
72
  release-notes:
69
73
 
@@ -98,9 +102,11 @@ jobs:
98
102
  pip install --upgrade tox
99
103
 
100
104
  - name: Generate release notes
105
+ env:
106
+ VERSION: ${{ github.event.inputs.version }}
101
107
  run: |
102
108
  sudo apt-get install pandoc
103
- tox -e generate-gh-release-notes -- ${{ github.event.inputs.version }} scripts/latest-release-notes.md
109
+ tox -e generate-gh-release-notes -- "$VERSION" scripts/latest-release-notes.md
104
110
 
105
111
  - name: Publish GitHub Release
106
112
  uses: softprops/action-gh-release@v2
@@ -30,6 +30,7 @@ jobs:
30
30
  - uses: actions/checkout@v4
31
31
  with:
32
32
  fetch-depth: 0
33
+ persist-credentials: false
33
34
 
34
35
  - name: Set up Python
35
36
  uses: actions/setup-python@v5
@@ -43,10 +44,16 @@ jobs:
43
44
 
44
45
  - name: Prepare release PR (minor/patch release)
45
46
  if: github.event.inputs.major == 'no'
47
+ env:
48
+ BRANCH: ${{ github.event.inputs.branch }}
49
+ PRERELEASE: ${{ github.event.inputs.prerelease }}
46
50
  run: |
47
- tox -e prepare-release-pr -- ${{ github.event.inputs.branch }} ${{ github.token }} --prerelease='${{ github.event.inputs.prerelease }}'
51
+ tox -e prepare-release-pr -- "$BRANCH" ${{ github.token }} --prerelease="$PRERELEASE"
48
52
 
49
53
  - name: Prepare release PR (major release)
50
54
  if: github.event.inputs.major == 'yes'
55
+ env:
56
+ BRANCH: ${{ github.event.inputs.branch }}
57
+ PRERELEASE: ${{ github.event.inputs.prerelease }}
51
58
  run: |
52
- tox -e prepare-release-pr -- ${{ github.event.inputs.branch }} ${{ github.token }} --major --prerelease='${{ github.event.inputs.prerelease }}'
59
+ tox -e prepare-release-pr -- "$BRANCH" ${{ github.token }} --major --prerelease="$PRERELEASE"
@@ -40,7 +40,7 @@ jobs:
40
40
  fetch-depth: 0
41
41
  persist-credentials: false
42
42
  - name: Build and Check Package
43
- uses: hynek/build-and-inspect-python-package@v2.6.0
43
+ uses: hynek/build-and-inspect-python-package@v2.12.0
44
44
 
45
45
  build:
46
46
  needs: [package]
@@ -55,7 +55,7 @@ jobs:
55
55
  matrix:
56
56
  name: [
57
57
  "windows-py38",
58
- "windows-py38-pluggy",
58
+ "windows-py39-pluggy",
59
59
  "windows-py39",
60
60
  "windows-py310",
61
61
  "windows-py311",
@@ -63,7 +63,7 @@ jobs:
63
63
  "windows-py313",
64
64
 
65
65
  "ubuntu-py38",
66
- "ubuntu-py38-pluggy",
66
+ "ubuntu-py39-pluggy",
67
67
  "ubuntu-py38-freeze",
68
68
  "ubuntu-py39",
69
69
  "ubuntu-py310",
@@ -88,10 +88,10 @@ jobs:
88
88
  os: windows-latest
89
89
  tox_env: "py38-unittestextras"
90
90
  use_coverage: true
91
- - name: "windows-py38-pluggy"
92
- python: "3.8"
91
+ - name: "windows-py39-pluggy"
92
+ python: "3.9"
93
93
  os: windows-latest
94
- tox_env: "py38-pluggymain-pylib-xdist"
94
+ tox_env: "py39-pluggymain-pylib-xdist"
95
95
  - name: "windows-py39"
96
96
  python: "3.9"
97
97
  os: windows-latest
@@ -118,10 +118,10 @@ jobs:
118
118
  os: ubuntu-latest
119
119
  tox_env: "py38-lsof-numpy-pexpect"
120
120
  use_coverage: true
121
- - name: "ubuntu-py38-pluggy"
122
- python: "3.8"
121
+ - name: "ubuntu-py39-pluggy"
122
+ python: "3.9"
123
123
  os: ubuntu-latest
124
- tox_env: "py38-pluggymain-pylib-xdist"
124
+ tox_env: "py39-pluggymain-pylib-xdist"
125
125
  - name: "ubuntu-py38-freeze"
126
126
  python: "3.8"
127
127
  os: ubuntu-latest
@@ -192,9 +192,9 @@ jobs:
192
192
  contains(
193
193
  fromJSON(
194
194
  '[
195
- "windows-py38-pluggy",
195
+ "windows-py39-pluggy",
196
196
  "windows-py313",
197
- "ubuntu-py38-pluggy",
197
+ "ubuntu-py39-pluggy",
198
198
  "ubuntu-py38-freeze",
199
199
  "ubuntu-py313",
200
200
  "macos-py38",
@@ -23,12 +23,14 @@ jobs:
23
23
  uses: actions/checkout@v4
24
24
  with:
25
25
  fetch-depth: 0
26
+ persist-credentials: false
26
27
 
27
28
  - name: Setup Python
28
29
  uses: actions/setup-python@v5
29
30
  with:
30
31
  python-version: "3.11"
31
32
  cache: pip
33
+
32
34
  - name: requests-cache
33
35
  uses: actions/cache@v4
34
36
  with:
@@ -41,7 +43,6 @@ jobs:
41
43
  python -m pip install --upgrade pip
42
44
  pip install packaging requests tabulate[widechars] tqdm requests-cache platformdirs
43
45
 
44
-
45
46
  - name: Update Plugin List
46
47
  run: python scripts/update-plugin-list.py
47
48
 
@@ -61,8 +62,9 @@ jobs:
61
62
  - name: Instruct the maintainers to trigger CI by undrafting the PR
62
63
  env:
63
64
  GITHUB_TOKEN: ${{ github.token }}
65
+ PULL_REQUEST_NUMBER: ${{ steps.pr.outputs.pull-request-number }}
64
66
  run: >-
65
67
  gh pr comment
66
68
  --body 'Please mark the PR as ready for review to trigger PR checks.'
67
69
  --repo '${{ github.repository }}'
68
- '${{ steps.pr.outputs.pull-request-number }}'
70
+ "$PULL_REQUEST_NUMBER"
@@ -11,6 +11,10 @@ repos:
11
11
  - id: trailing-whitespace
12
12
  - id: end-of-file-fixer
13
13
  - id: check-yaml
14
+ - repo: https://github.com/woodruffw/zizmor-pre-commit
15
+ rev: v0.9.2
16
+ hooks:
17
+ - id: zizmor
14
18
  - repo: https://github.com/adamchainz/blacken-docs
15
19
  rev: 1.18.0
16
20
  hooks:
@@ -255,6 +255,7 @@ lovetheguitar
255
255
  Lukas Bednar
256
256
  Luke Murphy
257
257
  Maciek Fijalkowski
258
+ Maggie Chung
258
259
  Maho
259
260
  Maik Figura
260
261
  Mandeep Bhutani
@@ -353,6 +354,7 @@ Ran Benita
353
354
  Raphael Castaneda
354
355
  Raphael Pierzina
355
356
  Rafal Semik
357
+ Reza Mousavi
356
358
  Raquel Alegre
357
359
  Ravi Chandra
358
360
  Reagan Lee
@@ -1,14 +1,15 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: pytest
3
- Version: 8.3.4
3
+ Version: 8.3.5
4
4
  Summary: pytest: simple powerful testing with Python
5
5
  Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin, Others (See AUTHORS)
6
6
  License: MIT
7
7
  Project-URL: Changelog, https://docs.pytest.org/en/stable/changelog.html
8
+ Project-URL: Contact, https://docs.pytest.org/en/stable/contact.html
9
+ Project-URL: Funding, https://docs.pytest.org/en/stable/sponsor.html
8
10
  Project-URL: Homepage, https://docs.pytest.org/en/latest/
9
11
  Project-URL: Source, https://github.com/pytest-dev/pytest
10
12
  Project-URL: Tracker, https://github.com/pytest-dev/pytest/issues
11
- Project-URL: Twitter, https://twitter.com/pytestdotorg
12
13
  Keywords: test,unittest
13
14
  Classifier: Development Status :: 6 - Mature
14
15
  Classifier: Intended Audience :: Developers
@@ -170,4 +170,8 @@ Both automatic and manual processes described above follow the same steps from t
170
170
  * python-announce-list@python.org (all releases)
171
171
  * testing-in-python@lists.idyll.org (only major/minor releases)
172
172
 
173
- And announce it on `Twitter <https://twitter.com/>`_ with the ``#pytest`` hashtag.
173
+ And announce it with the ``#pytest`` hashtag on:
174
+
175
+ * `Bluesky <https://bsky.app>`_
176
+ * `Fosstodon <https://fosstodon.org>`_
177
+ * `Twitter/X <https://x.com>`_
@@ -6,6 +6,7 @@ Release announcements
6
6
  :maxdepth: 2
7
7
 
8
8
 
9
+ release-8.3.5
9
10
  release-8.3.4
10
11
  release-8.3.3
11
12
  release-8.3.2
@@ -0,0 +1,26 @@
1
+ pytest-8.3.5
2
+ =======================================
3
+
4
+ pytest 8.3.5 has just been released to PyPI.
5
+
6
+ This is a bug-fix release, being a drop-in replacement.
7
+
8
+ The full changelog is available at https://docs.pytest.org/en/stable/changelog.html.
9
+
10
+ Thanks to all of the contributors to this release:
11
+
12
+ * Bruno Oliveira
13
+ * Florian Bruhin
14
+ * John Litborn
15
+ * Kenny Y
16
+ * Ran Benita
17
+ * Sadra Barikbin
18
+ * Vincent (Wen Yu) Ge
19
+ * delta87
20
+ * dongfangtianyu
21
+ * mwychung
22
+ * 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко)
23
+
24
+
25
+ Happy testing,
26
+ The pytest Development Team
@@ -1,6 +1,2 @@
1
1
  # This file contains transitive dependencies that need to be pinned for some reason.
2
2
  # Eventually this file will be empty, but in this case keep it around for future use.
3
-
4
- # Pin towncrier temporarily due to incompatibility with sphinxcontrib-towncrier:
5
- # https://github.com/sphinx-contrib/sphinxcontrib-towncrier/issues/92
6
- towncrier<24.7
@@ -33,7 +33,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
33
33
 
34
34
  Values can be any object handled by the json stdlib module.
35
35
 
36
- capsysbinary -- .../_pytest/capture.py:1006
36
+ capsysbinary -- .../_pytest/capture.py:1024
37
37
  Enable bytes capturing of writes to ``sys.stdout`` and ``sys.stderr``.
38
38
 
39
39
  The captured output is made available via ``capsysbinary.readouterr()``
@@ -51,7 +51,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
51
51
  captured = capsysbinary.readouterr()
52
52
  assert captured.out == b"hello\n"
53
53
 
54
- capfd -- .../_pytest/capture.py:1034
54
+ capfd -- .../_pytest/capture.py:1052
55
55
  Enable text capturing of writes to file descriptors ``1`` and ``2``.
56
56
 
57
57
  The captured output is made available via ``capfd.readouterr()`` method
@@ -69,7 +69,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
69
69
  captured = capfd.readouterr()
70
70
  assert captured.out == "hello\n"
71
71
 
72
- capfdbinary -- .../_pytest/capture.py:1062
72
+ capfdbinary -- .../_pytest/capture.py:1080
73
73
  Enable bytes capturing of writes to file descriptors ``1`` and ``2``.
74
74
 
75
75
  The captured output is made available via ``capfd.readouterr()`` method
@@ -87,7 +87,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
87
87
  captured = capfdbinary.readouterr()
88
88
  assert captured.out == b"hello\n"
89
89
 
90
- capsys -- .../_pytest/capture.py:978
90
+ capsys -- .../_pytest/capture.py:996
91
91
  Enable text capturing of writes to ``sys.stdout`` and ``sys.stderr``.
92
92
 
93
93
  The captured output is made available via ``capsys.readouterr()`` method
@@ -31,6 +31,47 @@ with advance notice in the **Deprecations** section of releases.
31
31
 
32
32
  .. towncrier release notes start
33
33
 
34
+ pytest 8.3.5 (2025-03-02)
35
+ =========================
36
+
37
+ Bug fixes
38
+ ---------
39
+
40
+ - `#11777 <https://github.com/pytest-dev/pytest/issues/11777>`_: Fixed issue where sequences were still being shortened even with ``-vv`` verbosity.
41
+
42
+
43
+ - `#12888 <https://github.com/pytest-dev/pytest/issues/12888>`_: Fixed broken input when using Python 3.13+ and a ``libedit`` build of Python, such as on macOS or with uv-managed Python binaries from the ``python-build-standalone`` project. This could manifest e.g. by a broken prompt when using ``Pdb``, or seeing empty inputs with manual usage of ``input()`` and suspended capturing.
44
+
45
+
46
+ - `#13026 <https://github.com/pytest-dev/pytest/issues/13026>`_: Fixed :class:`AttributeError` crash when using ``--import-mode=importlib`` when top-level directory same name as another module of the standard library.
47
+
48
+
49
+ - `#13053 <https://github.com/pytest-dev/pytest/issues/13053>`_: Fixed a regression in pytest 8.3.4 where, when using ``--import-mode=importlib``, a directory containing py file with the same name would cause an ``ImportError``
50
+
51
+
52
+ - `#13083 <https://github.com/pytest-dev/pytest/issues/13083>`_: Fixed issue where pytest could crash if one of the collected directories got removed during collection.
53
+
54
+
55
+
56
+ Improved documentation
57
+ ----------------------
58
+
59
+ - `#12842 <https://github.com/pytest-dev/pytest/issues/12842>`_: Added dedicated page about using types with pytest.
60
+
61
+ See :ref:`types` for detailed usage.
62
+
63
+
64
+
65
+ Contributor-facing changes
66
+ --------------------------
67
+
68
+ - `#13112 <https://github.com/pytest-dev/pytest/issues/13112>`_: Fixed selftest failures in ``test_terminal.py`` with Pygments >= 2.19.0
69
+
70
+
71
+ - `#13256 <https://github.com/pytest-dev/pytest/issues/13256>`_: Support for Towncier versions released in 2024 has been re-enabled
72
+ when building Sphinx docs -- by :user:`webknjaz`.
73
+
74
+
34
75
  pytest 8.3.4 (2024-12-01)
35
76
  =========================
36
77
 
@@ -24,6 +24,13 @@ Chat
24
24
  <https://web.libera.chat/#pytest>`_)
25
25
  - ``#pytest`` `on Matrix <https://matrix.to/#/#pytest:matrix.org>`_.
26
26
 
27
+ Microblogging
28
+ -------------
29
+
30
+ - Bluesky: `@pytest.org <https://bsky.app/profile/pytest.org>`_
31
+ - Mastodon: `@pytest@fosstodon.org <https://fosstodon.org/@pytest>`_
32
+ - Twitter/X: `@pytestdotorg <https://x.com/pytestdotorg>`_
33
+
27
34
  Mail
28
35
  ----
29
36
 
@@ -162,7 +162,7 @@ objects, they are still using the default pytest representation:
162
162
  rootdir: /home/sweet/project
163
163
  collected 8 items
164
164
 
165
- <Dir parametrize.rst-205>
165
+ <Dir parametrize.rst-206>
166
166
  <Module test_time.py>
167
167
  <Function test_timedistance_v0[a0-b0-expected0]>
168
168
  <Function test_timedistance_v0[a1-b1-expected1]>
@@ -239,7 +239,7 @@ If you just collect tests you'll also nicely see 'advanced' and 'basic' as varia
239
239
  rootdir: /home/sweet/project
240
240
  collected 4 items
241
241
 
242
- <Dir parametrize.rst-205>
242
+ <Dir parametrize.rst-206>
243
243
  <Module test_scenarios.py>
244
244
  <Class TestSampleWithScenarios>
245
245
  <Function test_demo1[basic]>
@@ -318,7 +318,7 @@ Let's first see how it looks like at collection time:
318
318
  rootdir: /home/sweet/project
319
319
  collected 2 items
320
320
 
321
- <Dir parametrize.rst-205>
321
+ <Dir parametrize.rst-206>
322
322
  <Module test_backends.py>
323
323
  <Function test_db_initialized[d1]>
324
324
  <Function test_db_initialized[d2]>
@@ -503,11 +503,12 @@ Running it results in some skips if we don't have all the python interpreters in
503
503
  .. code-block:: pytest
504
504
 
505
505
  . $ pytest -rs -q multipython.py
506
- ssssssssssss...ssssssssssss [100%]
506
+ sssssssssssssssssssssssssss [100%]
507
507
  ========================= short test summary info ==========================
508
- SKIPPED [12] multipython.py:67: 'python3.9' not found
509
- SKIPPED [12] multipython.py:67: 'python3.11' not found
510
- 3 passed, 24 skipped in 0.12s
508
+ SKIPPED [9] multipython.py:67: 'python3.9' not found
509
+ SKIPPED [9] multipython.py:67: 'python3.10' not found
510
+ SKIPPED [9] multipython.py:67: 'python3.11' not found
511
+ 27 skipped in 0.12s
511
512
 
512
513
  Parametrization of optional implementations/imports
513
514
  ---------------------------------------------------
@@ -152,7 +152,7 @@ The test collection would look like this:
152
152
  configfile: pytest.ini
153
153
  collected 2 items
154
154
 
155
- <Dir pythoncollection.rst-206>
155
+ <Dir pythoncollection.rst-207>
156
156
  <Module check_myapp.py>
157
157
  <Class CheckMyApp>
158
158
  <Function simple_check>
@@ -215,7 +215,7 @@ You can always peek at the collection tree without running tests like this:
215
215
  configfile: pytest.ini
216
216
  collected 3 items
217
217
 
218
- <Dir pythoncollection.rst-206>
218
+ <Dir pythoncollection.rst-207>
219
219
  <Dir CWD>
220
220
  <Module pythoncollection.py>
221
221
  <Function test_function>
@@ -568,12 +568,12 @@ Here is a nice run of several failures and how ``pytest`` presents things:
568
568
  E + where False = <built-in method startswith of str object at 0xdeadbeef0027>('456')
569
569
  E + where <built-in method startswith of str object at 0xdeadbeef0027> = '123'.startswith
570
570
  E + where '123' = <function TestMoreErrors.test_startswith_nested.<locals>.f at 0xdeadbeef0029>()
571
- E + and '456' = <function TestMoreErrors.test_startswith_nested.<locals>.g at 0xdeadbeef002a>()
571
+ E + and '456' = <function TestMoreErrors.test_startswith_nested.<locals>.g at 0xdeadbeef0003>()
572
572
 
573
573
  failure_demo.py:237: AssertionError
574
574
  _____________________ TestMoreErrors.test_global_func ______________________
575
575
 
576
- self = <failure_demo.TestMoreErrors object at 0xdeadbeef002b>
576
+ self = <failure_demo.TestMoreErrors object at 0xdeadbeef002a>
577
577
 
578
578
  def test_global_func(self):
579
579
  > assert isinstance(globf(42), float)
@@ -584,18 +584,18 @@ Here is a nice run of several failures and how ``pytest`` presents things:
584
584
  failure_demo.py:240: AssertionError
585
585
  _______________________ TestMoreErrors.test_instance _______________________
586
586
 
587
- self = <failure_demo.TestMoreErrors object at 0xdeadbeef002c>
587
+ self = <failure_demo.TestMoreErrors object at 0xdeadbeef002b>
588
588
 
589
589
  def test_instance(self):
590
590
  self.x = 6 * 7
591
591
  > assert self.x != 42
592
592
  E assert 42 != 42
593
- E + where 42 = <failure_demo.TestMoreErrors object at 0xdeadbeef002c>.x
593
+ E + where 42 = <failure_demo.TestMoreErrors object at 0xdeadbeef002b>.x
594
594
 
595
595
  failure_demo.py:244: AssertionError
596
596
  _______________________ TestMoreErrors.test_compare ________________________
597
597
 
598
- self = <failure_demo.TestMoreErrors object at 0xdeadbeef002d>
598
+ self = <failure_demo.TestMoreErrors object at 0xdeadbeef002c>
599
599
 
600
600
  def test_compare(self):
601
601
  > assert globf(10) < 5
@@ -605,7 +605,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
605
605
  failure_demo.py:247: AssertionError
606
606
  _____________________ TestMoreErrors.test_try_finally ______________________
607
607
 
608
- self = <failure_demo.TestMoreErrors object at 0xdeadbeef002e>
608
+ self = <failure_demo.TestMoreErrors object at 0xdeadbeef002d>
609
609
 
610
610
  def test_try_finally(self):
611
611
  x = 1
@@ -616,7 +616,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
616
616
  failure_demo.py:252: AssertionError
617
617
  ___________________ TestCustomAssertMsg.test_single_line ___________________
618
618
 
619
- self = <failure_demo.TestCustomAssertMsg object at 0xdeadbeef002f>
619
+ self = <failure_demo.TestCustomAssertMsg object at 0xdeadbeef002e>
620
620
 
621
621
  def test_single_line(self):
622
622
  class A:
@@ -631,7 +631,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
631
631
  failure_demo.py:263: AssertionError
632
632
  ____________________ TestCustomAssertMsg.test_multiline ____________________
633
633
 
634
- self = <failure_demo.TestCustomAssertMsg object at 0xdeadbeef0030>
634
+ self = <failure_demo.TestCustomAssertMsg object at 0xdeadbeef002f>
635
635
 
636
636
  def test_multiline(self):
637
637
  class A:
@@ -650,7 +650,7 @@ Here is a nice run of several failures and how ``pytest`` presents things:
650
650
  failure_demo.py:270: AssertionError
651
651
  ___________________ TestCustomAssertMsg.test_custom_repr ___________________
652
652
 
653
- self = <failure_demo.TestCustomAssertMsg object at 0xdeadbeef0031>
653
+ self = <failure_demo.TestCustomAssertMsg object at 0xdeadbeef0030>
654
654
 
655
655
  def test_custom_repr(self):
656
656
  class JSON:
@@ -164,7 +164,7 @@ Now we'll get feedback on a bad argument:
164
164
 
165
165
  $ pytest -q --cmdopt=type3
166
166
  ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
167
- pytest: error: argument --cmdopt: invalid choice: 'type3' (choose from 'type1', 'type2')
167
+ pytest: error: argument --cmdopt: invalid choice: 'type3' (choose from type1, type2)
168
168
 
169
169
 
170
170
  If you need to provide more detailed error messages, you can use the
@@ -117,8 +117,11 @@ This is a limited list, please submit an issue or pull request to expand it!
117
117
 
118
118
  * Gao, Zebao, Yalan Liang, Myra B. Cohen, Atif M. Memon, and Zhen Wang. "Making system user interactive tests repeatable: When and what should we control?." In *Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on*, vol. 1, pp. 55-65. IEEE, 2015. `PDF <http://www.cs.umd.edu/~atif/pubs/gao-icse15.pdf>`__
119
119
  * Palomba, Fabio, and Andy Zaidman. "Does refactoring of test smells induce fixing flaky tests?." In *Software Maintenance and Evolution (ICSME), 2017 IEEE International Conference on*, pp. 1-12. IEEE, 2017. `PDF in Google Drive <https://drive.google.com/file/d/10HdcCQiuQVgW3yYUJD-TSTq1NbYEprl0/view>`__
120
- * Bell, Jonathan, Owolabi Legunsen, Michael Hilton, Lamyaa Eloussi, Tifany Yung, and Darko Marinov. "DeFlaker: Automatically detecting flaky tests." In *Proceedings of the 2018 International Conference on Software Engineering*. 2018. `PDF <https://www.jonbell.net/icse18-deflaker.pdf>`__
121
- * Dutta, Saikat and Shi, August and Choudhary, Rutvik and Zhang, Zhekun and Jain, Aryaman and Misailovic, Sasa. "Detecting flaky tests in probabilistic and machine learning applications." In *Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)*, pp. 211-224. ACM, 2020. `PDF <https://www.cs.cornell.edu/~saikatd/papers/flash-issta20.pdf>`__
120
+ * Bell, Jonathan, Owolabi Legunsen, Michael Hilton, Lamyaa Eloussi, Tifany Yung, and Darko Marinov. "DeFlaker: Automatically detecting flaky tests." In *Proceedings of the 2018 International Conference on Software Engineering*. 2018. `PDF <https://www.jonbell.net/icse18-deflaker.pdf#section-Research>`__
121
+ * Dutta, Saikat and Shi, August and Choudhary, Rutvik and Zhang, Zhekun and Jain, Aryaman and Misailovic, Sasa. "Detecting flaky tests in probabilistic and machine learning applications." In *Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)*, pp. 211-224. ACM, 2020. `PDF <https://www.cs.cornell.edu/~saikatd/papers/flash-issta20.pdf>`__
122
+ * Habchi, Sarra and Haben, Guillaume and Sohn, Jeongju and Franci, Adriano and Papadakis, Mike and Cordy, Maxime and Le Traon, Yves. "What Made This Test Flake? Pinpointing Classes Responsible for Test Flakiness." In Proceedings of the 38th IEEE International Conference on Software Maintenance and Evolution (ICSME), IEEE, 2022. `PDF <https://arxiv.org/abs/2207.10143>`__
123
+ * Lamprou, Sokrates. "Non-deterministic tests and where to find them: Empirically investigating the relationship between flaky tests and test smells by examining test order dependency." Bachelor thesis, Department of Computer and Information Science, Linköping University, 2022. LIU-IDA/LITH-EX-G–19/056–SE. `PDF <https://www.diva-portal.org/smash/get/diva2:1713691/FULLTEXT01.pdf>`__
124
+ * Leinen, Fabian and Elsner, Daniel and Pretschner, Alexander and Stahlbauer, Andreas and Sailer, Michael and Jürgens, Elmar. "Cost of Flaky Tests in Continuous Integration: An Industrial Case Study." Technical University of Munich and CQSE GmbH, Munich, Germany, 2023. `PDF <https://mediatum.ub.tum.de/doc/1730194/1730194.pdf>`__
122
125
 
123
126
  Resources
124
127
  ^^^^^^^^^
@@ -137,5 +140,12 @@ Resources
137
140
  * `Flaky Tests at Google and How We Mitigate Them <https://testing.googleblog.com/2016/05/flaky-tests-at-google-and-how-we.html>`_ by John Micco, 2016
138
141
  * `Where do Google's flaky tests come from? <https://testing.googleblog.com/2017/04/where-do-our-flaky-tests-come-from.html>`_ by Jeff Listfield, 2017
139
142
 
143
+ * Dropbox:
144
+ * `Athena: Our automated build health management system <https://dropbox.tech/infrastructure/athena-our-automated-build-health-management-system>`_ by Utsav Shah, 2019
145
+ * `How To Manage Flaky Tests in your CI Workflows <https://mill-build.org/blog/4-flaky-tests.html>`_ by Li Haoyi, 2025
146
+
147
+ * Uber:
148
+ * `Handling Flaky Unit Tests in Java <https://www.uber.com/blog/handling-flaky-tests-java/>`_ by Uber Engineering, 2021
149
+ * `Flaky Tests Overhaul at Uber <https://www.uber.com/blog/flaky-tests-overhaul/>`_ by Uber Engineering, 2024
140
150
 
141
151
  .. _pytest-xdist: https://github.com/pytest-dev/pytest-xdist
@@ -12,5 +12,6 @@ Explanation
12
12
  fixtures
13
13
  goodpractices
14
14
  pythonpath
15
+ types
15
16
  ci
16
17
  flaky
@@ -8,7 +8,7 @@ pytest import mechanisms and ``sys.path``/``PYTHONPATH``
8
8
  Import modes
9
9
  ------------
10
10
 
11
- pytest as a testing framework that needs to import test modules and ``conftest.py`` files for execution.
11
+ pytest as a testing framework needs to import test modules and ``conftest.py`` files for execution.
12
12
 
13
13
  Importing files in Python is a non-trivial process, so aspects of the
14
14
  import process can be controlled through the ``--import-mode`` command-line flag, which can assume
@@ -78,7 +78,7 @@ these values:
78
78
 
79
79
  For non-test modules, this will work if they are accessible via :py:data:`sys.path`. So
80
80
  for example, ``.env/lib/site-packages/app/core.py`` will be importable as ``app.core``.
81
- This is happens when plugins import non-test modules (for example doctesting).
81
+ This happens when plugins import non-test modules (for example doctesting).
82
82
 
83
83
  If this step succeeds, the module is returned.
84
84