pytest 8.3.2__tar.gz → 8.3.3__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 (608) hide show
  1. {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/deploy.yml +3 -1
  2. {pytest-8.3.2 → pytest-8.3.3}/.pre-commit-config.yaml +13 -5
  3. {pytest-8.3.2 → pytest-8.3.3}/AUTHORS +4 -0
  4. {pytest-8.3.2 → pytest-8.3.3}/CONTRIBUTING.rst +55 -2
  5. {pytest-8.3.2/src/pytest.egg-info → pytest-8.3.3}/PKG-INFO +1 -1
  6. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/index.rst +1 -0
  7. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.0.rst +2 -2
  8. pytest-8.3.3/doc/en/announce/release-8.3.3.rst +31 -0
  9. pytest-8.3.3/doc/en/broken-dep-constraints.txt +6 -0
  10. {pytest-8.3.2 → pytest-8.3.3}/doc/en/builtin.rst +9 -9
  11. {pytest-8.3.2 → pytest-8.3.3}/doc/en/changelog.rst +50 -4
  12. {pytest-8.3.2 → pytest-8.3.3}/doc/en/contact.rst +3 -2
  13. {pytest-8.3.2 → pytest-8.3.3}/doc/en/deprecations.rst +1 -1
  14. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/parametrize.rst +4 -4
  15. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/pythoncollection.rst +2 -2
  16. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/simple.rst +1 -1
  17. {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/fixtures.rst +1 -1
  18. {pytest-8.3.2 → pytest-8.3.3}/doc/en/funcarg_compare.rst +3 -3
  19. {pytest-8.3.2 → pytest-8.3.3}/doc/en/getting-started.rst +1 -1
  20. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/fixtures.rst +2 -2
  21. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/unittest.rst +1 -1
  22. {pytest-8.3.2 → pytest-8.3.3}/doc/en/index.rst +0 -1
  23. {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/reference.rst +3 -3
  24. pytest-8.3.3/doc/en/requirements.txt +10 -0
  25. {pytest-8.3.2 → pytest-8.3.3}/pyproject.toml +5 -0
  26. {pytest-8.3.2 → pytest-8.3.3}/scripts/release.py +15 -4
  27. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_code/code.py +1 -1
  28. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/pprint.py +2 -2
  29. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_version.py +2 -2
  30. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/assertion/rewrite.py +11 -1
  31. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/cacheprovider.py +3 -5
  32. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/capture.py +12 -11
  33. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/__init__.py +8 -4
  34. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/debugging.py +1 -1
  35. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/doctest.py +3 -2
  36. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/faulthandler.py +1 -0
  37. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/fixtures.py +16 -6
  38. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/hookspec.py +11 -0
  39. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/logging.py +11 -13
  40. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/main.py +1 -1
  41. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/monkeypatch.py +2 -2
  42. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/nodes.py +3 -3
  43. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/pathlib.py +3 -1
  44. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/pytester.py +2 -2
  45. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/python.py +6 -6
  46. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/recwarn.py +1 -1
  47. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/runner.py +3 -3
  48. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/skipping.py +1 -1
  49. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/stepwise.py +1 -1
  50. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/terminal.py +2 -2
  51. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/threadexception.py +4 -4
  52. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/tmpdir.py +1 -1
  53. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/unittest.py +2 -2
  54. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/unraisableexception.py +4 -4
  55. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/warnings.py +4 -4
  56. {pytest-8.3.2 → pytest-8.3.3/src/pytest.egg-info}/PKG-INFO +1 -1
  57. {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/SOURCES.txt +2 -0
  58. {pytest-8.3.2 → pytest-8.3.3}/testing/acceptance_test.py +7 -0
  59. {pytest-8.3.2 → pytest-8.3.3}/testing/conftest.py +1 -1
  60. {pytest-8.3.2 → pytest-8.3.3}/testing/io/test_terminalwriter.py +1 -3
  61. {pytest-8.3.2 → pytest-8.3.3}/testing/python/collect.py +37 -0
  62. {pytest-8.3.2 → pytest-8.3.3}/testing/python/fixtures.py +1 -1
  63. {pytest-8.3.2 → pytest-8.3.3}/testing/test_assertion.py +1 -1
  64. {pytest-8.3.2 → pytest-8.3.3}/testing/test_assertrewrite.py +29 -1
  65. {pytest-8.3.2 → pytest-8.3.3}/testing/test_cacheprovider.py +1 -1
  66. {pytest-8.3.2 → pytest-8.3.3}/testing/test_capture.py +1 -1
  67. {pytest-8.3.2 → pytest-8.3.3}/testing/test_config.py +1 -1
  68. {pytest-8.3.2 → pytest-8.3.3}/testing/test_conftest.py +1 -3
  69. {pytest-8.3.2 → pytest-8.3.3}/testing/test_monkeypatch.py +2 -2
  70. {pytest-8.3.2 → pytest-8.3.3}/testing/test_pathlib.py +37 -1
  71. {pytest-8.3.2 → pytest-8.3.3}/testing/test_runner.py +1 -1
  72. {pytest-8.3.2 → pytest-8.3.3}/testing/test_terminal.py +35 -0
  73. pytest-8.3.2/doc/en/requirements.txt +0 -13
  74. {pytest-8.3.2 → pytest-8.3.3}/.coveragerc +0 -0
  75. {pytest-8.3.2 → pytest-8.3.3}/.git-blame-ignore-revs +0 -0
  76. {pytest-8.3.2 → pytest-8.3.3}/.gitattributes +0 -0
  77. {pytest-8.3.2 → pytest-8.3.3}/.github/FUNDING.yml +0 -0
  78. {pytest-8.3.2 → pytest-8.3.3}/.github/ISSUE_TEMPLATE/1_bug_report.md +0 -0
  79. {pytest-8.3.2 → pytest-8.3.3}/.github/ISSUE_TEMPLATE/2_feature_request.md +0 -0
  80. {pytest-8.3.2 → pytest-8.3.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  81. {pytest-8.3.2 → pytest-8.3.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  82. {pytest-8.3.2 → pytest-8.3.3}/.github/chronographer.yml +0 -0
  83. {pytest-8.3.2 → pytest-8.3.3}/.github/config.yml +0 -0
  84. {pytest-8.3.2 → pytest-8.3.3}/.github/dependabot.yml +0 -0
  85. {pytest-8.3.2 → pytest-8.3.3}/.github/labels.toml +0 -0
  86. {pytest-8.3.2 → pytest-8.3.3}/.github/patchback.yml +0 -0
  87. {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/prepare-release-pr.yml +0 -0
  88. {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/stale.yml +0 -0
  89. {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/test.yml +0 -0
  90. {pytest-8.3.2 → pytest-8.3.3}/.github/workflows/update-plugin-list.yml +0 -0
  91. {pytest-8.3.2 → pytest-8.3.3}/.gitignore +0 -0
  92. {pytest-8.3.2 → pytest-8.3.3}/.readthedocs.yaml +0 -0
  93. {pytest-8.3.2 → pytest-8.3.3}/CHANGELOG.rst +0 -0
  94. {pytest-8.3.2 → pytest-8.3.3}/CITATION +0 -0
  95. {pytest-8.3.2 → pytest-8.3.3}/CODE_OF_CONDUCT.md +0 -0
  96. {pytest-8.3.2 → pytest-8.3.3}/LICENSE +0 -0
  97. {pytest-8.3.2 → pytest-8.3.3}/OPENCOLLECTIVE.rst +0 -0
  98. {pytest-8.3.2 → pytest-8.3.3}/README.rst +0 -0
  99. {pytest-8.3.2 → pytest-8.3.3}/RELEASING.rst +0 -0
  100. {pytest-8.3.2 → pytest-8.3.3}/TIDELIFT.rst +0 -0
  101. {pytest-8.3.2 → pytest-8.3.3}/bench/bench.py +0 -0
  102. {pytest-8.3.2 → pytest-8.3.3}/bench/bench_argcomplete.py +0 -0
  103. {pytest-8.3.2 → pytest-8.3.3}/bench/empty.py +0 -0
  104. {pytest-8.3.2 → pytest-8.3.3}/bench/manyparam.py +0 -0
  105. {pytest-8.3.2 → pytest-8.3.3}/bench/skip.py +0 -0
  106. {pytest-8.3.2 → pytest-8.3.3}/bench/unit_test.py +0 -0
  107. {pytest-8.3.2 → pytest-8.3.3}/bench/xunit.py +0 -0
  108. {pytest-8.3.2 → pytest-8.3.3}/changelog/.gitignore +0 -0
  109. {pytest-8.3.2 → pytest-8.3.3}/changelog/README.rst +0 -0
  110. {pytest-8.3.2 → pytest-8.3.3}/changelog/_template.rst +0 -0
  111. {pytest-8.3.2 → pytest-8.3.3}/codecov.yml +0 -0
  112. {pytest-8.3.2 → pytest-8.3.3}/doc/en/Makefile +0 -0
  113. {pytest-8.3.2 → pytest-8.3.3}/doc/en/_static/pytest-custom.css +0 -0
  114. {pytest-8.3.2 → pytest-8.3.3}/doc/en/_static/pytest1.png +0 -0
  115. {pytest-8.3.2 → pytest-8.3.3}/doc/en/_templates/links.html +0 -0
  116. {pytest-8.3.2 → pytest-8.3.3}/doc/en/adopt.rst +0 -0
  117. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.0.0.rst +0 -0
  118. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.0.1.rst +0 -0
  119. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.0.2.rst +0 -0
  120. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.0.3.rst +0 -0
  121. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.1.0.rst +0 -0
  122. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.1.1.rst +0 -0
  123. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.1.2.rst +0 -0
  124. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.1.3.rst +0 -0
  125. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.2.0.rst +0 -0
  126. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.2.1.rst +0 -0
  127. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.2.2.rst +0 -0
  128. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.2.4.rst +0 -0
  129. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.1.rst +0 -0
  130. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.2.rst +0 -0
  131. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.3.rst +0 -0
  132. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.4.rst +0 -0
  133. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.3.5.rst +0 -0
  134. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.4.0.rst +0 -0
  135. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.4.1.rst +0 -0
  136. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.4.2.rst +0 -0
  137. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.5.0.rst +0 -0
  138. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.5.1.rst +0 -0
  139. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.5.2.rst +0 -0
  140. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.6.0.rst +0 -0
  141. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.6.1.rst +0 -0
  142. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.6.2.rst +0 -0
  143. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.6.3.rst +0 -0
  144. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.7.0.rst +0 -0
  145. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.7.1.rst +0 -0
  146. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.7.2.rst +0 -0
  147. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.2.rst +0 -0
  148. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.3.rst +0 -0
  149. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.4.rst +0 -0
  150. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.5.rst +0 -0
  151. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.6.rst +0 -0
  152. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.8.7.rst +0 -0
  153. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.9.0.rst +0 -0
  154. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.9.1.rst +0 -0
  155. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-2.9.2.rst +0 -0
  156. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.0.rst +0 -0
  157. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.1.rst +0 -0
  158. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.2.rst +0 -0
  159. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.3.rst +0 -0
  160. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.4.rst +0 -0
  161. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.5.rst +0 -0
  162. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.6.rst +0 -0
  163. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.0.7.rst +0 -0
  164. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.1.0.rst +0 -0
  165. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.1.1.rst +0 -0
  166. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.1.2.rst +0 -0
  167. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.1.3.rst +0 -0
  168. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.10.0.rst +0 -0
  169. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.10.1.rst +0 -0
  170. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.0.rst +0 -0
  171. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.1.rst +0 -0
  172. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.2.rst +0 -0
  173. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.3.rst +0 -0
  174. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.4.rst +0 -0
  175. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.2.5.rst +0 -0
  176. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.3.0.rst +0 -0
  177. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.3.1.rst +0 -0
  178. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.3.2.rst +0 -0
  179. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.4.0.rst +0 -0
  180. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.4.1.rst +0 -0
  181. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.4.2.rst +0 -0
  182. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.5.0.rst +0 -0
  183. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.5.1.rst +0 -0
  184. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.0.rst +0 -0
  185. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.1.rst +0 -0
  186. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.2.rst +0 -0
  187. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.3.rst +0 -0
  188. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.6.4.rst +0 -0
  189. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.0.rst +0 -0
  190. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.1.rst +0 -0
  191. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.2.rst +0 -0
  192. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.3.rst +0 -0
  193. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.7.4.rst +0 -0
  194. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.8.0.rst +0 -0
  195. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.8.1.rst +0 -0
  196. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.8.2.rst +0 -0
  197. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.9.0.rst +0 -0
  198. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.9.1.rst +0 -0
  199. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.9.2.rst +0 -0
  200. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-3.9.3.rst +0 -0
  201. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.0.0.rst +0 -0
  202. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.0.1.rst +0 -0
  203. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.0.2.rst +0 -0
  204. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.1.0.rst +0 -0
  205. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.1.1.rst +0 -0
  206. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.2.0.rst +0 -0
  207. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.2.1.rst +0 -0
  208. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.3.0.rst +0 -0
  209. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.3.1.rst +0 -0
  210. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.4.0.rst +0 -0
  211. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.4.1.rst +0 -0
  212. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.4.2.rst +0 -0
  213. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.5.0.rst +0 -0
  214. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.0.rst +0 -0
  215. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.1.rst +0 -0
  216. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.2.rst +0 -0
  217. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.3.rst +0 -0
  218. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.4.rst +0 -0
  219. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.5.rst +0 -0
  220. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.6.rst +0 -0
  221. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.7.rst +0 -0
  222. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.8.rst +0 -0
  223. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-4.6.9.rst +0 -0
  224. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.0.0.rst +0 -0
  225. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.0.1.rst +0 -0
  226. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.1.0.rst +0 -0
  227. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.1.1.rst +0 -0
  228. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.1.2.rst +0 -0
  229. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.1.3.rst +0 -0
  230. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.0.rst +0 -0
  231. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.1.rst +0 -0
  232. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.2.rst +0 -0
  233. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.3.rst +0 -0
  234. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.2.4.rst +0 -0
  235. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.0.rst +0 -0
  236. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.1.rst +0 -0
  237. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.2.rst +0 -0
  238. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.3.rst +0 -0
  239. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.4.rst +0 -0
  240. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.3.5.rst +0 -0
  241. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.4.0.rst +0 -0
  242. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.4.1.rst +0 -0
  243. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.4.2.rst +0 -0
  244. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-5.4.3.rst +0 -0
  245. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.0.0.rst +0 -0
  246. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.0.0rc1.rst +0 -0
  247. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.0.1.rst +0 -0
  248. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.0.2.rst +0 -0
  249. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.1.0.rst +0 -0
  250. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.1.1.rst +0 -0
  251. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.1.2.rst +0 -0
  252. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.0.rst +0 -0
  253. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.1.rst +0 -0
  254. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.2.rst +0 -0
  255. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.3.rst +0 -0
  256. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.4.rst +0 -0
  257. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-6.2.5.rst +0 -0
  258. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.0.0.rst +0 -0
  259. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.0.0rc1.rst +0 -0
  260. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.0.1.rst +0 -0
  261. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.1.0.rst +0 -0
  262. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.1.1.rst +0 -0
  263. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.1.2.rst +0 -0
  264. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.1.3.rst +0 -0
  265. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.2.0.rst +0 -0
  266. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.2.1.rst +0 -0
  267. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.2.2.rst +0 -0
  268. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.3.0.rst +0 -0
  269. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.3.1.rst +0 -0
  270. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.3.2.rst +0 -0
  271. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.0.rst +0 -0
  272. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.1.rst +0 -0
  273. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.2.rst +0 -0
  274. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.3.rst +0 -0
  275. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-7.4.4.rst +0 -0
  276. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.0.rst +0 -0
  277. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.0rc1.rst +0 -0
  278. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.0rc2.rst +0 -0
  279. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.1.rst +0 -0
  280. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.0.2.rst +0 -0
  281. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.1.0.rst +0 -0
  282. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.1.1.rst +0 -0
  283. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.1.2.rst +0 -0
  284. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.2.0.rst +0 -0
  285. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.2.1.rst +0 -0
  286. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.2.2.rst +0 -0
  287. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.3.0.rst +0 -0
  288. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.3.1.rst +0 -0
  289. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/release-8.3.2.rst +0 -0
  290. {pytest-8.3.2 → pytest-8.3.3}/doc/en/announce/sprint2016.rst +0 -0
  291. {pytest-8.3.2 → pytest-8.3.3}/doc/en/backwards-compatibility.rst +0 -0
  292. {pytest-8.3.2 → pytest-8.3.3}/doc/en/conf.py +0 -0
  293. {pytest-8.3.2 → pytest-8.3.3}/doc/en/conftest.py +0 -0
  294. {pytest-8.3.2 → pytest-8.3.3}/doc/en/contents.rst +0 -0
  295. {pytest-8.3.2 → pytest-8.3.3}/doc/en/contributing.rst +0 -0
  296. {pytest-8.3.2 → pytest-8.3.3}/doc/en/development_guide.rst +0 -0
  297. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/failure_demo.py +0 -0
  298. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/global_testmodule_config/conftest.py +0 -0
  299. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/global_testmodule_config/test_hello_world.py +0 -0
  300. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/test_failures.py +0 -0
  301. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/assertion/test_setup_flow_example.py +0 -0
  302. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/attic.rst +0 -0
  303. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/conftest.py +0 -0
  304. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/conftest.py +0 -0
  305. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/pytest.ini +0 -0
  306. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/tests/manifest.json +0 -0
  307. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/tests/test_first.py +0 -0
  308. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/tests/test_second.py +0 -0
  309. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory/tests/test_third.py +0 -0
  310. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/customdirectory.rst +0 -0
  311. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/fixture_availability.svg +0 -0
  312. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/fixture_availability_plugins.svg +0 -0
  313. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse.py +0 -0
  314. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse.svg +0 -0
  315. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_flat.svg +0 -0
  316. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_multiple_scopes.py +0 -0
  317. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_multiple_scopes.svg +0 -0
  318. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_temp_effects.py +0 -0
  319. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_autouse_temp_effects.svg +0 -0
  320. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_dependencies.py +0 -0
  321. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_dependencies.svg +0 -0
  322. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_dependencies_flat.svg +0 -0
  323. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_dependencies_unclear.svg +0 -0
  324. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_scope.py +0 -0
  325. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_order_scope.svg +0 -0
  326. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_request_different_scope.py +0 -0
  327. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/fixtures/test_fixtures_request_different_scope.svg +0 -0
  328. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/index.rst +0 -0
  329. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/markers.rst +0 -0
  330. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/multipython.py +0 -0
  331. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/nonpython/__init__.py +0 -0
  332. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/nonpython/conftest.py +0 -0
  333. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/nonpython/test_simple.yaml +0 -0
  334. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/nonpython.rst +0 -0
  335. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/pythoncollection.py +0 -0
  336. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/reportingdemo.rst +0 -0
  337. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/special.rst +0 -0
  338. {pytest-8.3.2 → pytest-8.3.3}/doc/en/example/xfail_demo.py +0 -0
  339. {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/anatomy.rst +0 -0
  340. {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/ci.rst +0 -0
  341. {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/flaky.rst +0 -0
  342. {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/goodpractices.rst +0 -0
  343. {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/index.rst +0 -0
  344. {pytest-8.3.2 → pytest-8.3.3}/doc/en/explanation/pythonpath.rst +0 -0
  345. {pytest-8.3.2 → pytest-8.3.3}/doc/en/funcargs.rst +0 -0
  346. {pytest-8.3.2 → pytest-8.3.3}/doc/en/historical-notes.rst +0 -0
  347. {pytest-8.3.2 → pytest-8.3.3}/doc/en/history.rst +0 -0
  348. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/assert.rst +0 -0
  349. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/bash-completion.rst +0 -0
  350. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/cache.rst +0 -0
  351. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/capture-stdout-stderr.rst +0 -0
  352. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/capture-warnings.rst +0 -0
  353. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/doctest.rst +0 -0
  354. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/existingtestsuite.rst +0 -0
  355. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/failures.rst +0 -0
  356. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/index.rst +0 -0
  357. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/logging.rst +0 -0
  358. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/mark.rst +0 -0
  359. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/monkeypatch.rst +0 -0
  360. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/output.rst +0 -0
  361. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/parametrize.rst +0 -0
  362. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/plugins.rst +0 -0
  363. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/skipping.rst +0 -0
  364. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/tmp_path.rst +0 -0
  365. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/usage.rst +0 -0
  366. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/writing_hook_functions.rst +0 -0
  367. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/writing_plugins.rst +0 -0
  368. {pytest-8.3.2 → pytest-8.3.3}/doc/en/how-to/xunit_setup.rst +0 -0
  369. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/cramer2.png +0 -0
  370. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/favicon.png +0 -0
  371. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/freiburg2.jpg +0 -0
  372. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/gaynor3.png +0 -0
  373. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/keleshev.png +0 -0
  374. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/pullrequest.png +0 -0
  375. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/pylib.png +0 -0
  376. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/pytest_logo_curves.svg +0 -0
  377. {pytest-8.3.2 → pytest-8.3.3}/doc/en/img/theuni.png +0 -0
  378. {pytest-8.3.2 → pytest-8.3.3}/doc/en/license.rst +0 -0
  379. {pytest-8.3.2 → pytest-8.3.3}/doc/en/naming20.rst +0 -0
  380. {pytest-8.3.2 → pytest-8.3.3}/doc/en/proposals/parametrize_with_fixtures.rst +0 -0
  381. {pytest-8.3.2 → pytest-8.3.3}/doc/en/pytest.ini +0 -0
  382. {pytest-8.3.2 → pytest-8.3.3}/doc/en/recwarn.rst +0 -0
  383. {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/customize.rst +0 -0
  384. {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/exit-codes.rst +0 -0
  385. {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/fixtures.rst +0 -0
  386. {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/index.rst +0 -0
  387. {pytest-8.3.2 → pytest-8.3.3}/doc/en/reference/plugin_list.rst +0 -0
  388. {pytest-8.3.2 → pytest-8.3.3}/doc/en/sponsor.rst +0 -0
  389. {pytest-8.3.2 → pytest-8.3.3}/doc/en/talks.rst +0 -0
  390. {pytest-8.3.2 → pytest-8.3.3}/doc/en/tidelift.rst +0 -0
  391. {pytest-8.3.2 → pytest-8.3.3}/doc/en/yieldfixture.rst +0 -0
  392. {pytest-8.3.2 → pytest-8.3.3}/extra/get_issues.py +0 -0
  393. {pytest-8.3.2 → pytest-8.3.3}/scripts/.gitignore +0 -0
  394. {pytest-8.3.2 → pytest-8.3.3}/scripts/generate-gh-release-notes.py +0 -0
  395. {pytest-8.3.2 → pytest-8.3.3}/scripts/prepare-release-pr.py +0 -0
  396. {pytest-8.3.2 → pytest-8.3.3}/scripts/release.major.rst +0 -0
  397. {pytest-8.3.2 → pytest-8.3.3}/scripts/release.minor.rst +0 -0
  398. {pytest-8.3.2 → pytest-8.3.3}/scripts/release.patch.rst +0 -0
  399. {pytest-8.3.2 → pytest-8.3.3}/scripts/release.pre.rst +0 -0
  400. {pytest-8.3.2 → pytest-8.3.3}/scripts/update-plugin-list.py +0 -0
  401. {pytest-8.3.2 → pytest-8.3.3}/setup.cfg +0 -0
  402. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/__init__.py +0 -0
  403. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_argcomplete.py +0 -0
  404. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_code/__init__.py +0 -0
  405. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_code/source.py +0 -0
  406. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/__init__.py +0 -0
  407. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/saferepr.py +0 -0
  408. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/terminalwriter.py +0 -0
  409. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_io/wcwidth.py +0 -0
  410. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_py/__init__.py +0 -0
  411. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_py/error.py +0 -0
  412. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/_py/path.py +0 -0
  413. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/assertion/__init__.py +0 -0
  414. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/assertion/truncate.py +0 -0
  415. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/assertion/util.py +0 -0
  416. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/compat.py +0 -0
  417. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/argparsing.py +0 -0
  418. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/compat.py +0 -0
  419. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/exceptions.py +0 -0
  420. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/config/findpaths.py +0 -0
  421. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/deprecated.py +0 -0
  422. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/freeze_support.py +0 -0
  423. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/helpconfig.py +0 -0
  424. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/junitxml.py +0 -0
  425. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/legacypath.py +0 -0
  426. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/mark/__init__.py +0 -0
  427. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/mark/expression.py +0 -0
  428. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/mark/structures.py +0 -0
  429. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/outcomes.py +0 -0
  430. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/pastebin.py +0 -0
  431. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/py.typed +0 -0
  432. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/pytester_assertions.py +0 -0
  433. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/python_api.py +0 -0
  434. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/python_path.py +0 -0
  435. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/reports.py +0 -0
  436. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/scope.py +0 -0
  437. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/setuponly.py +0 -0
  438. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/setupplan.py +0 -0
  439. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/stash.py +0 -0
  440. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/timing.py +0 -0
  441. {pytest-8.3.2 → pytest-8.3.3}/src/_pytest/warning_types.py +0 -0
  442. {pytest-8.3.2 → pytest-8.3.3}/src/py.py +0 -0
  443. {pytest-8.3.2 → pytest-8.3.3}/src/pytest/__init__.py +0 -0
  444. {pytest-8.3.2 → pytest-8.3.3}/src/pytest/__main__.py +0 -0
  445. {pytest-8.3.2 → pytest-8.3.3}/src/pytest/py.typed +0 -0
  446. {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/dependency_links.txt +0 -0
  447. {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/entry_points.txt +0 -0
  448. {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/requires.txt +0 -0
  449. {pytest-8.3.2 → pytest-8.3.3}/src/pytest.egg-info/top_level.txt +0 -0
  450. {pytest-8.3.2 → pytest-8.3.3}/testing/_py/test_local.py +0 -0
  451. {pytest-8.3.2 → pytest-8.3.3}/testing/code/test_code.py +0 -0
  452. {pytest-8.3.2 → pytest-8.3.3}/testing/code/test_excinfo.py +0 -0
  453. {pytest-8.3.2 → pytest-8.3.3}/testing/code/test_source.py +0 -0
  454. {pytest-8.3.2 → pytest-8.3.3}/testing/deprecated_test.py +0 -0
  455. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/README.rst +0 -0
  456. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/__init__.py +0 -0
  457. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/acceptance/fixture_mock_integration.py +0 -0
  458. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/collect_init_tests/pytest.ini +0 -0
  459. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/collect_init_tests/tests/__init__.py +0 -0
  460. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/collect_init_tests/tests/test_foo.py +0 -0
  461. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_infinite_recursion/__init__.pyi +0 -0
  462. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_infinite_recursion/conftest.py +0 -0
  463. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_infinite_recursion/tests/__init__.py +0 -0
  464. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_infinite_recursion/tests/test_basic.py +0 -0
  465. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_init_given_as_arg/pkg/__init__.py +0 -0
  466. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/collect/package_init_given_as_arg/pkg/test_foo.py +0 -0
  467. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/config/collect_pytest_prefix/__init__.pyi +0 -0
  468. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/config/collect_pytest_prefix/conftest.py +0 -0
  469. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/config/collect_pytest_prefix/test_foo.py +0 -0
  470. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/conftest_usageerror/__init__.pyi +0 -0
  471. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/conftest_usageerror/conftest.py +0 -0
  472. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/conftest.py +0 -0
  473. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/pytest.ini +0 -0
  474. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/tests/manifest.json +0 -0
  475. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/tests/test_first.py +0 -0
  476. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/tests/test_second.py +0 -0
  477. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/customdirectory/tests/test_third.py +0 -0
  478. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_dataclasses.py +0 -0
  479. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_dataclasses_field_comparison_off.py +0 -0
  480. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_dataclasses_verbose.py +0 -0
  481. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_dataclasses_with_custom_eq.py +0 -0
  482. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_initvar.py +0 -0
  483. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_recursive_dataclasses.py +0 -0
  484. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/dataclasses/test_compare_two_different_dataclasses.py +0 -0
  485. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/doctest/main_py/__main__.py +0 -0
  486. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/doctest/main_py/test_normal_module.py +0 -0
  487. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/custom_item/__init__.pyi +0 -0
  488. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/custom_item/conftest.py +0 -0
  489. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/custom_item/foo/__init__.py +0 -0
  490. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/custom_item/foo/test_foo.py +0 -0
  491. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/__init__.py +0 -0
  492. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/conftest.py +0 -0
  493. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/test_in_sub1.py +0 -0
  494. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/__init__.py +0 -0
  495. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/conftest.py +0 -0
  496. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/test_in_sub2.py +0 -0
  497. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_detect_recursive_dependency_error.py +0 -0
  498. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/__init__.pyi +0 -0
  499. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/conftest.py +0 -0
  500. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/__init__.py +0 -0
  501. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/conftest.py +0 -0
  502. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/test_spam.py +0 -0
  503. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/__init__.pyi +0 -0
  504. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/conftest.py +0 -0
  505. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/test_extend_fixture_conftest_module.py +0 -0
  506. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_module_class.py +0 -0
  507. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_basic.py +0 -0
  508. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_classlevel.py +0 -0
  509. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_modulelevel.py +0 -0
  510. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookupfails.py +0 -0
  511. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/test_fixture_named_request.py +0 -0
  512. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/fixtures/test_getfixturevalue_dynamic.py +0 -0
  513. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/issue88_initial_file_multinodes/__init__.pyi +0 -0
  514. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/issue88_initial_file_multinodes/conftest.py +0 -0
  515. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/issue88_initial_file_multinodes/test_hello.py +0 -0
  516. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/issue_519.py +0 -0
  517. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/junit-10.xsd +0 -0
  518. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/marks/marks_considered_keywords/__init__.pyi +0 -0
  519. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/marks/marks_considered_keywords/conftest.py +0 -0
  520. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/marks/marks_considered_keywords/test_marks_as_keywords.py +0 -0
  521. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/perf_examples/collect_stats/.gitignore +0 -0
  522. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/perf_examples/collect_stats/generate_folders.py +0 -0
  523. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/perf_examples/collect_stats/template_test.py +0 -0
  524. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/pytest.ini +0 -0
  525. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/tmpdir/tmp_path_fixture.py +0 -0
  526. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_parametrized_fixture_error_message.py +0 -0
  527. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_setup_skip.py +0 -0
  528. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_setup_skip_class.py +0 -0
  529. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_setup_skip_module.py +0 -0
  530. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_unittest_asyncio.py +0 -0
  531. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_unittest_asynctest.py +0 -0
  532. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/unittest/test_unittest_plain_async.py +0 -0
  533. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/warnings/test_group_warnings_by_message.py +0 -0
  534. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_1.py +0 -0
  535. {pytest-8.3.2 → pytest-8.3.3}/testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_2.py +0 -0
  536. {pytest-8.3.2 → pytest-8.3.3}/testing/examples/test_issue519.py +0 -0
  537. {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/.gitignore +0 -0
  538. {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/create_executable.py +0 -0
  539. {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/runtests_script.py +0 -0
  540. {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/tests/test_doctest.txt +0 -0
  541. {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/tests/test_trivial.py +0 -0
  542. {pytest-8.3.2 → pytest-8.3.3}/testing/freeze/tox_run.py +0 -0
  543. {pytest-8.3.2 → pytest-8.3.3}/testing/io/test_pprint.py +0 -0
  544. {pytest-8.3.2 → pytest-8.3.3}/testing/io/test_saferepr.py +0 -0
  545. {pytest-8.3.2 → pytest-8.3.3}/testing/io/test_wcwidth.py +0 -0
  546. {pytest-8.3.2 → pytest-8.3.3}/testing/logging/test_fixture.py +0 -0
  547. {pytest-8.3.2 → pytest-8.3.3}/testing/logging/test_formatter.py +0 -0
  548. {pytest-8.3.2 → pytest-8.3.3}/testing/logging/test_reporting.py +0 -0
  549. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/.gitignore +0 -0
  550. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/README.rst +0 -0
  551. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/bdd_wallet.feature +0 -0
  552. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/bdd_wallet.py +0 -0
  553. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/django_settings.py +0 -0
  554. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest.ini +0 -0
  555. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_anyio_integration.py +0 -0
  556. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_asyncio_integration.py +0 -0
  557. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_mock_integration.py +0 -0
  558. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_rerunfailures_integration.py +0 -0
  559. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_trio_integration.py +0 -0
  560. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/pytest_twisted_integration.py +0 -0
  561. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/requirements.txt +0 -0
  562. {pytest-8.3.2 → pytest-8.3.3}/testing/plugins_integration/simple_integration.py +0 -0
  563. {pytest-8.3.2 → pytest-8.3.3}/testing/python/approx.py +0 -0
  564. {pytest-8.3.2 → pytest-8.3.3}/testing/python/integration.py +0 -0
  565. {pytest-8.3.2 → pytest-8.3.3}/testing/python/metafunc.py +0 -0
  566. {pytest-8.3.2 → pytest-8.3.3}/testing/python/raises.py +0 -0
  567. {pytest-8.3.2 → pytest-8.3.3}/testing/python/show_fixtures_per_test.py +0 -0
  568. {pytest-8.3.2 → pytest-8.3.3}/testing/test_argcomplete.py +0 -0
  569. {pytest-8.3.2 → pytest-8.3.3}/testing/test_collection.py +0 -0
  570. {pytest-8.3.2 → pytest-8.3.3}/testing/test_compat.py +0 -0
  571. {pytest-8.3.2 → pytest-8.3.3}/testing/test_debugging.py +0 -0
  572. {pytest-8.3.2 → pytest-8.3.3}/testing/test_doctest.py +0 -0
  573. {pytest-8.3.2 → pytest-8.3.3}/testing/test_entry_points.py +0 -0
  574. {pytest-8.3.2 → pytest-8.3.3}/testing/test_error_diffs.py +0 -0
  575. {pytest-8.3.2 → pytest-8.3.3}/testing/test_faulthandler.py +0 -0
  576. {pytest-8.3.2 → pytest-8.3.3}/testing/test_findpaths.py +0 -0
  577. {pytest-8.3.2 → pytest-8.3.3}/testing/test_helpconfig.py +0 -0
  578. {pytest-8.3.2 → pytest-8.3.3}/testing/test_junitxml.py +0 -0
  579. {pytest-8.3.2 → pytest-8.3.3}/testing/test_legacypath.py +0 -0
  580. {pytest-8.3.2 → pytest-8.3.3}/testing/test_link_resolve.py +0 -0
  581. {pytest-8.3.2 → pytest-8.3.3}/testing/test_main.py +0 -0
  582. {pytest-8.3.2 → pytest-8.3.3}/testing/test_mark.py +0 -0
  583. {pytest-8.3.2 → pytest-8.3.3}/testing/test_mark_expression.py +0 -0
  584. {pytest-8.3.2 → pytest-8.3.3}/testing/test_meta.py +0 -0
  585. {pytest-8.3.2 → pytest-8.3.3}/testing/test_nodes.py +0 -0
  586. {pytest-8.3.2 → pytest-8.3.3}/testing/test_parseopt.py +0 -0
  587. {pytest-8.3.2 → pytest-8.3.3}/testing/test_pastebin.py +0 -0
  588. {pytest-8.3.2 → pytest-8.3.3}/testing/test_pluginmanager.py +0 -0
  589. {pytest-8.3.2 → pytest-8.3.3}/testing/test_pytester.py +0 -0
  590. {pytest-8.3.2 → pytest-8.3.3}/testing/test_python_path.py +0 -0
  591. {pytest-8.3.2 → pytest-8.3.3}/testing/test_recwarn.py +0 -0
  592. {pytest-8.3.2 → pytest-8.3.3}/testing/test_reports.py +0 -0
  593. {pytest-8.3.2 → pytest-8.3.3}/testing/test_runner_xunit.py +0 -0
  594. {pytest-8.3.2 → pytest-8.3.3}/testing/test_scope.py +0 -0
  595. {pytest-8.3.2 → pytest-8.3.3}/testing/test_session.py +0 -0
  596. {pytest-8.3.2 → pytest-8.3.3}/testing/test_setuponly.py +0 -0
  597. {pytest-8.3.2 → pytest-8.3.3}/testing/test_setupplan.py +0 -0
  598. {pytest-8.3.2 → pytest-8.3.3}/testing/test_skipping.py +0 -0
  599. {pytest-8.3.2 → pytest-8.3.3}/testing/test_stash.py +0 -0
  600. {pytest-8.3.2 → pytest-8.3.3}/testing/test_stepwise.py +0 -0
  601. {pytest-8.3.2 → pytest-8.3.3}/testing/test_threadexception.py +0 -0
  602. {pytest-8.3.2 → pytest-8.3.3}/testing/test_tmpdir.py +0 -0
  603. {pytest-8.3.2 → pytest-8.3.3}/testing/test_unittest.py +0 -0
  604. {pytest-8.3.2 → pytest-8.3.3}/testing/test_unraisableexception.py +0 -0
  605. {pytest-8.3.2 → pytest-8.3.3}/testing/test_warning_types.py +0 -0
  606. {pytest-8.3.2 → pytest-8.3.3}/testing/test_warnings.py +0 -0
  607. {pytest-8.3.2 → pytest-8.3.3}/testing/typing_checks.py +0 -0
  608. {pytest-8.3.2 → pytest-8.3.3}/tox.ini +0 -0
@@ -54,7 +54,9 @@ jobs:
54
54
  path: dist
55
55
 
56
56
  - name: Publish package to PyPI
57
- uses: pypa/gh-action-pypi-publish@v1.9.0
57
+ uses: pypa/gh-action-pypi-publish@v1.10.1
58
+ with:
59
+ attestations: true
58
60
 
59
61
  - name: Push tag
60
62
  run: |
@@ -1,6 +1,6 @@
1
1
  repos:
2
2
  - repo: https://github.com/astral-sh/ruff-pre-commit
3
- rev: "v0.5.2"
3
+ rev: "v0.6.2"
4
4
  hooks:
5
5
  - id: ruff
6
6
  args: ["--fix"]
@@ -16,35 +16,43 @@ repos:
16
16
  hooks:
17
17
  - id: blacken-docs
18
18
  additional_dependencies: [black==24.1.1]
19
+ - repo: https://github.com/codespell-project/codespell
20
+ rev: v2.3.0
21
+ hooks:
22
+ - id: codespell
23
+ args: ["--toml=pyproject.toml"]
24
+ additional_dependencies:
25
+ - tomli
19
26
  - repo: https://github.com/pre-commit/pygrep-hooks
20
27
  rev: v1.10.0
21
28
  hooks:
22
29
  - id: python-use-type-annotations
23
30
  - repo: https://github.com/pre-commit/mirrors-mypy
24
- rev: v1.10.1
31
+ rev: v1.11.2
25
32
  hooks:
26
33
  - id: mypy
27
34
  files: ^(src/|testing/|scripts/)
28
35
  args: []
36
+ language_version: "3.8"
29
37
  additional_dependencies:
30
38
  - iniconfig>=1.1.0
31
39
  - attrs>=19.2.0
32
40
  - pluggy>=1.5.0
33
41
  - packaging
34
42
  - tomli
35
- - types-pkg_resources
43
+ - types-setuptools
36
44
  - types-tabulate
37
45
  # for mypy running on python>=3.11 since exceptiongroup is only a dependency
38
46
  # on <3.11
39
47
  - exceptiongroup>=1.0.0rc8
40
48
  - repo: https://github.com/tox-dev/pyproject-fmt
41
- rev: "2.1.4"
49
+ rev: "2.2.1"
42
50
  hooks:
43
51
  - id: pyproject-fmt
44
52
  # https://pyproject-fmt.readthedocs.io/en/latest/#calculating-max-supported-python-version
45
53
  additional_dependencies: ["tox>=4.9"]
46
54
  - repo: https://github.com/asottile/pyupgrade
47
- rev: v3.16.0
55
+ rev: v3.17.0
48
56
  hooks:
49
57
  - id: pyupgrade
50
58
  stages: [manual]
@@ -85,6 +85,7 @@ Chris NeJame
85
85
  Chris Rose
86
86
  Chris Wheeler
87
87
  Christian Boelsen
88
+ Christian Clauss
88
89
  Christian Fetzer
89
90
  Christian Neumüller
90
91
  Christian Theunert
@@ -299,6 +300,7 @@ mrbean-bremen
299
300
  Nathan Goldbaum
300
301
  Nathaniel Compton
301
302
  Nathaniel Waisbrot
303
+ Nauman Ahmed
302
304
  Ned Batchelder
303
305
  Neil Martin
304
306
  Neven Mundar
@@ -351,6 +353,7 @@ Rafal Semik
351
353
  Raquel Alegre
352
354
  Ravi Chandra
353
355
  Reagan Lee
356
+ Rob Arrow
354
357
  Robert Holt
355
358
  Roberto Aldera
356
359
  Roberto Polli
@@ -411,6 +414,7 @@ Ted Xiao
411
414
  Terje Runde
412
415
  Thomas Grainger
413
416
  Thomas Hisch
417
+ Tianyu Dongfang
414
418
  Tim Hoffmann
415
419
  Tim Strazny
416
420
  TJ Bruno
@@ -380,6 +380,57 @@ pull requests from other contributors yourself after having reviewed
380
380
  them.
381
381
 
382
382
 
383
+ Merge/squash guidelines
384
+ -----------------------
385
+
386
+ When a PR is approved and ready to be integrated to the ``main`` branch, one has the option to *merge* the commits unchanged, or *squash* all the commits into a single commit.
387
+
388
+ Here are some guidelines on how to proceed, based on examples of a single PR commit history:
389
+
390
+ 1. Miscellaneous commits:
391
+
392
+ * ``Implement X``
393
+ * ``Fix test_a``
394
+ * ``Add myself to AUTHORS``
395
+ * ``fixup! Fix test_a``
396
+ * ``Update tests/test_integration.py``
397
+ * ``Merge origin/main into PR branch``
398
+ * ``Update tests/test_integration.py``
399
+
400
+ In this case, prefer to use the **Squash** merge strategy: the commit history is a bit messy (not in a derogatory way, often one just commits changes because they know the changes will eventually be squashed together), so squashing everything into a single commit is best. You must clean up the commit message, making sure it contains useful details.
401
+
402
+ 2. Separate commits related to the same topic:
403
+
404
+ * ``Implement X``
405
+ * ``Add myself to AUTHORS``
406
+ * ``Update CHANGELOG for X``
407
+
408
+ In this case, prefer to use the **Squash** merge strategy: while the commit history is not "messy" as in the example above, the individual commits do not bring much value overall, specially when looking at the changes a few months/years down the line.
409
+
410
+ 3. Separate commits, each with their own topic (refactorings, renames, etc), but still have a larger topic/purpose.
411
+
412
+ * ``Refactor class X in preparation for feature Y``
413
+ * ``Remove unused method``
414
+ * ``Implement feature Y``
415
+
416
+ In this case, prefer to use the **Merge** strategy: each commit is valuable on its own, even if they serve a common topic overall. Looking at the history later, it is useful to have the removal of the unused method separately on its own commit, along with more information (such as how it became unused in the first place).
417
+
418
+ 4. Separate commits, each with their own topic, but without a larger topic/purpose other than improve the code base (using more modern techniques, improve typing, removing clutter, etc).
419
+
420
+ * ``Improve internal names in X``
421
+ * ``Add type annotations to Y``
422
+ * ``Remove unnecessary dict access``
423
+ * ``Remove unreachable code due to EOL Python``
424
+
425
+ In this case, prefer to use the **Merge** strategy: each commit is valuable on its own, and the information on each is valuable in the long term.
426
+
427
+
428
+ As mentioned, those are overall guidelines, not rules cast in stone. This topic was discussed in `#12633 <https://github.com/pytest-dev/pytest/discussions/12633>`_.
429
+
430
+
431
+ *Backport PRs* (as those created automatically from a ``backport`` label) should always be **squashed**, as they preserve the original PR author.
432
+
433
+
383
434
  Backporting bug fixes for the next patch release
384
435
  ------------------------------------------------
385
436
 
@@ -438,6 +489,8 @@ above?
438
489
  All the above are not rules, but merely some guidelines/suggestions on what we should expect
439
490
  about backports.
440
491
 
492
+ Backports should be **squashed** (rather than **merged**), as doing so preserves the original PR author correctly.
493
+
441
494
  Handling stale issues/PRs
442
495
  -------------------------
443
496
 
@@ -485,9 +538,9 @@ When closing a Pull Request, it needs to be acknowledging the time, effort, and
485
538
 
486
539
  <bye>
487
540
 
488
- Closing Issues
541
+ Closing issues
489
542
  --------------
490
543
 
491
544
  When a pull request is submitted to fix an issue, add text like ``closes #XYZW`` to the PR description and/or commits (where ``XYZW`` is the issue number). See the `GitHub docs <https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword>`_ for more information.
492
545
 
493
- When an issue is due to user error (e.g. misunderstanding of a functionality), please politely explain to the user why the issue raised is really a non-issue and ask them to close the issue if they have no further questions. If the original requestor is unresponsive, the issue will be handled as described in the section `Handling stale issues/PRs`_ above.
546
+ When an issue is due to user error (e.g. misunderstanding of a functionality), please politely explain to the user why the issue raised is really a non-issue and ask them to close the issue if they have no further questions. If the original requester is unresponsive, the issue will be handled as described in the section `Handling stale issues/PRs`_ above.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pytest
3
- Version: 8.3.2
3
+ Version: 8.3.3
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
@@ -6,6 +6,7 @@ Release announcements
6
6
  :maxdepth: 2
7
7
 
8
8
 
9
+ release-8.3.3
9
10
  release-8.3.2
10
11
  release-8.3.1
11
12
  release-8.3.0
@@ -6,10 +6,10 @@ and parametrized testing in Python. It is now easier, more efficient and
6
6
  more predictable to re-run the same tests with different fixture
7
7
  instances. Also, you can directly declare the caching "scope" of
8
8
  fixtures so that dependent tests throughout your whole test suite can
9
- re-use database or other expensive fixture objects with ease. Lastly,
9
+ reuse database or other expensive fixture objects with ease. Lastly,
10
10
  it's possible for fixture functions (formerly known as funcarg
11
11
  factories) to use other fixtures, allowing for a completely modular and
12
- re-usable fixture design.
12
+ reusable fixture design.
13
13
 
14
14
  For detailed info and tutorial-style examples, see:
15
15
 
@@ -0,0 +1,31 @@
1
+ pytest-8.3.3
2
+ =======================================
3
+
4
+ pytest 8.3.3 has just been released to PyPI.
5
+
6
+ This is a bug-fix release, being a drop-in replacement. To upgrade::
7
+
8
+ pip install --upgrade pytest
9
+
10
+ The full changelog is available at https://docs.pytest.org/en/stable/changelog.html.
11
+
12
+ Thanks to all of the contributors to this release:
13
+
14
+ * Anthony Sottile
15
+ * Avasam
16
+ * Bruno Oliveira
17
+ * Christian Clauss
18
+ * Eugene Mwangi
19
+ * Florian Bruhin
20
+ * GTowers1
21
+ * Nauman Ahmed
22
+ * Pierre Sassoulas
23
+ * Reagan Lee
24
+ * Ronny Pfannschmidt
25
+ * Stefaan Lippens
26
+ * Sviatoslav Sydorenko (Святослав Сидоренко)
27
+ * dongfangtianyu
28
+
29
+
30
+ Happy testing,
31
+ The pytest Development Team
@@ -0,0 +1,6 @@
1
+ # This file contains transitive dependencies that need to be pinned for some reason.
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
@@ -22,7 +22,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
22
22
  cachedir: .pytest_cache
23
23
  rootdir: /home/sweet/project
24
24
  collected 0 items
25
- cache -- .../_pytest/cacheprovider.py:558
25
+ cache -- .../_pytest/cacheprovider.py:556
26
26
  Return a cache object that can persist state between testing sessions.
27
27
 
28
28
  cache.get(key, default)
@@ -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:1005
36
+ capsysbinary -- .../_pytest/capture.py:1006
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:1033
54
+ capfd -- .../_pytest/capture.py:1034
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:1061
72
+ capfdbinary -- .../_pytest/capture.py:1062
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:977
90
+ capsys -- .../_pytest/capture.py:978
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
@@ -105,7 +105,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
105
105
  captured = capsys.readouterr()
106
106
  assert captured.out == "hello\n"
107
107
 
108
- doctest_namespace [session scope] -- .../_pytest/doctest.py:740
108
+ doctest_namespace [session scope] -- .../_pytest/doctest.py:741
109
109
  Fixture that returns a :py:class:`dict` that will be injected into the
110
110
  namespace of doctests.
111
111
 
@@ -119,14 +119,14 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
119
119
 
120
120
  For more details: :ref:`doctest_namespace`.
121
121
 
122
- pytestconfig [session scope] -- .../_pytest/fixtures.py:1344
122
+ pytestconfig [session scope] -- .../_pytest/fixtures.py:1345
123
123
  Session-scoped fixture that returns the session's :class:`pytest.Config`
124
124
  object.
125
125
 
126
126
  Example::
127
127
 
128
128
  def test_foo(pytestconfig):
129
- if pytestconfig.getoption("verbose") > 0:
129
+ if pytestconfig.get_verbosity() > 0:
130
130
  ...
131
131
 
132
132
  record_property -- .../_pytest/junitxml.py:280
@@ -196,7 +196,7 @@ For information about fixtures, see :ref:`fixtures`. To see a complete list of a
196
196
 
197
197
  .. _legacy_path: https://py.readthedocs.io/en/latest/path.html
198
198
 
199
- caplog -- .../_pytest/logging.py:600
199
+ caplog -- .../_pytest/logging.py:598
200
200
  Access and control log capturing.
201
201
 
202
202
  Captured logs are available through the following properties/methods::
@@ -31,6 +31,52 @@ with advance notice in the **Deprecations** section of releases.
31
31
 
32
32
  .. towncrier release notes start
33
33
 
34
+ pytest 8.3.3 (2024-09-09)
35
+ =========================
36
+
37
+ Bug fixes
38
+ ---------
39
+
40
+ - `#12446 <https://github.com/pytest-dev/pytest/issues/12446>`_: Avoid calling ``@property`` (and other instance descriptors) during fixture discovery -- by :user:`asottile`
41
+
42
+
43
+ - `#12659 <https://github.com/pytest-dev/pytest/issues/12659>`_: Fixed the issue of not displaying assertion failure differences when using the parameter ``--import-mode=importlib`` in pytest>=8.1.
44
+
45
+
46
+ - `#12667 <https://github.com/pytest-dev/pytest/issues/12667>`_: Fixed a regression where type change in `ExceptionInfo.errisinstance` caused `mypy` to fail.
47
+
48
+
49
+ - `#12744 <https://github.com/pytest-dev/pytest/issues/12744>`_: Fixed typing compatibility with Python 3.9 or less -- replaced `typing.Self` with `typing_extensions.Self` -- by :user:`Avasam`
50
+
51
+
52
+ - `#12745 <https://github.com/pytest-dev/pytest/issues/12745>`_: Fixed an issue with backslashes being incorrectly converted in nodeid paths on Windows, ensuring consistent path handling across environments.
53
+
54
+
55
+ - `#6682 <https://github.com/pytest-dev/pytest/issues/6682>`_: Fixed bug where the verbosity levels where not being respected when printing the "msg" part of failed assertion (as in ``assert condition, msg``).
56
+
57
+
58
+ - `#9422 <https://github.com/pytest-dev/pytest/issues/9422>`_: Fix bug where disabling the terminal plugin via ``-p no:terminal`` would cause crashes related to missing the ``verbose`` option.
59
+
60
+ -- by :user:`GTowers1`
61
+
62
+
63
+
64
+ Improved documentation
65
+ ----------------------
66
+
67
+ - `#12663 <https://github.com/pytest-dev/pytest/issues/12663>`_: Clarify that the `pytest_deselected` hook should be called from `pytest_collection_modifyitems` hook implementations when items are deselected.
68
+
69
+
70
+ - `#12678 <https://github.com/pytest-dev/pytest/issues/12678>`_: Remove erroneous quotes from `tmp_path_retention_policy` example in docs.
71
+
72
+
73
+
74
+ Miscellaneous internal changes
75
+ ------------------------------
76
+
77
+ - `#12769 <https://github.com/pytest-dev/pytest/issues/12769>`_: Fix typos discovered by codespell and add codespell to pre-commit hooks.
78
+
79
+
34
80
  pytest 8.3.2 (2024-07-24)
35
81
  =========================
36
82
 
@@ -215,7 +261,7 @@ Improved documentation
215
261
  -- by :user:`webknjaz`
216
262
 
217
263
 
218
- - `#12577 <https://github.com/pytest-dev/pytest/issues/12577>`_: `CI` and `BUILD_NUMBER` environment variables role is discribed in
264
+ - `#12577 <https://github.com/pytest-dev/pytest/issues/12577>`_: `CI` and `BUILD_NUMBER` environment variables role is described in
219
265
  the reference doc. They now also appear when doing `pytest -h`
220
266
  -- by :user:`MarcBresson`.
221
267
 
@@ -319,7 +365,7 @@ Bug Fixes
319
365
  - `#12367 <https://github.com/pytest-dev/pytest/issues/12367>`_: Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown.
320
366
 
321
367
 
322
- - `#12381 <https://github.com/pytest-dev/pytest/issues/12381>`_: Fix possible "Directory not empty" crashes arising from concurent cache dir (``.pytest_cache``) creation. Regressed in pytest 8.2.0.
368
+ - `#12381 <https://github.com/pytest-dev/pytest/issues/12381>`_: Fix possible "Directory not empty" crashes arising from concurrent cache dir (``.pytest_cache``) creation. Regressed in pytest 8.2.0.
323
369
 
324
370
 
325
371
 
@@ -330,7 +376,7 @@ Improved Documentation
330
376
 
331
377
 
332
378
  - `#12356 <https://github.com/pytest-dev/pytest/issues/12356>`_: Added a subsection to the documentation for debugging flaky tests to mention
333
- lack of thread safety in pytest as a possible source of flakyness.
379
+ lack of thread safety in pytest as a possible source of flakiness.
334
380
 
335
381
 
336
382
  - `#12363 <https://github.com/pytest-dev/pytest/issues/12363>`_: The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results.
@@ -676,7 +722,7 @@ Bug Fixes
676
722
  This bug was introduced in pytest 8.0.0rc1.
677
723
 
678
724
 
679
- - `#9765 <https://github.com/pytest-dev/pytest/issues/9765>`_, `#11816 <https://github.com/pytest-dev/pytest/issues/11816>`_: Fixed a frustrating bug that afflicted some users with the only error being ``assert mod not in mods``. The issue was caused by the fact that ``str(Path(mod))`` and ``mod.__file__`` don't necessarily produce the same string, and was being erroneously used interchangably in some places in the code.
725
+ - `#9765 <https://github.com/pytest-dev/pytest/issues/9765>`_, `#11816 <https://github.com/pytest-dev/pytest/issues/11816>`_: Fixed a frustrating bug that afflicted some users with the only error being ``assert mod not in mods``. The issue was caused by the fact that ``str(Path(mod))`` and ``mod.__file__`` don't necessarily produce the same string, and was being erroneously used interchangeably in some places in the code.
680
726
 
681
727
  This fix also broke the internal API of ``PytestPluginManager.consider_conftest`` by introducing a new parameter -- we mention this in case it is being used by external code, even if marked as *private*.
682
728
 
@@ -33,10 +33,11 @@ Mail
33
33
  discussed in public. Mails sent there will be distributed among the members
34
34
  in the pytest core team, who can also be contacted individually:
35
35
 
36
- * Ronny Pfannschmidt (:user:`RonnyPfannschmidt`, `ronny@pytest.org <mailto:ronny@pytest.org>`_)
37
- * Florian Bruhin (:user:`The-Compiler`, `florian@pytest.org <mailto:florian@pytest.org>`_)
38
36
  * Bruno Oliveira (:user:`nicoddemus`, `bruno@pytest.org <mailto:bruno@pytest.org>`_)
37
+ * Florian Bruhin (:user:`The-Compiler`, `florian@pytest.org <mailto:florian@pytest.org>`_)
38
+ * Pierre Sassoulas (:user:`Pierre-Sassoulas`, `pierre@pytest.org <mailto:pierre@pytest.org>`_)
39
39
  * Ran Benita (:user:`bluetech`, `ran@pytest.org <mailto:ran@pytest.org>`_)
40
+ * Ronny Pfannschmidt (:user:`RonnyPfannschmidt`, `ronny@pytest.org <mailto:ronny@pytest.org>`_)
40
41
  * Zac Hatfield-Dodds (:user:`Zac-HD`, `zac@pytest.org <mailto:zac@pytest.org>`_)
41
42
 
42
43
  Other
@@ -43,7 +43,7 @@ If the import attempt raises :class:`ModuleNotFoundError` (the usual case), then
43
43
  warning is emitted.
44
44
 
45
45
  This way, the usual cases will keep working the same way, while unexpected errors will now issue a warning, with
46
- users being able to supress the warning by passing ``exc_type=ImportError`` explicitly.
46
+ users being able to suppress the warning by passing ``exc_type=ImportError`` explicitly.
47
47
 
48
48
  In ``9.0``, the warning will turn into an error, and in ``9.1`` :func:`pytest.importorskip` will only capture
49
49
  :class:`ModuleNotFoundError` by default and no warnings will be issued anymore -- but users can still capture
@@ -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-203>
165
+ <Dir parametrize.rst-204>
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-203>
242
+ <Dir parametrize.rst-204>
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-203>
321
+ <Dir parametrize.rst-204>
322
322
  <Module test_backends.py>
323
323
  <Function test_db_initialized[d1]>
324
324
  <Function test_db_initialized[d2]>
@@ -686,5 +686,5 @@ For example:
686
686
  assert (6 / example_input) == e
687
687
 
688
688
  In the example above, the first three test cases should run without any
689
- exceptions, while the fourth should raise a``ZeroDivisionError`` exception,
689
+ exceptions, while the fourth should raise a ``ZeroDivisionError`` exception,
690
690
  which is expected by pytest.
@@ -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-204>
155
+ <Dir pythoncollection.rst-205>
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-204>
218
+ <Dir pythoncollection.rst-205>
219
219
  <Dir CWD>
220
220
  <Module pythoncollection.py>
221
221
  <Function test_function>
@@ -460,7 +460,7 @@ display more information if applicable:
460
460
 
461
461
 
462
462
  def pytest_report_header(config):
463
- if config.getoption("verbose") > 0:
463
+ if config.get_verbosity() > 0:
464
464
  return ["info1: did you know that ...", "did you?"]
465
465
 
466
466
  which will add info only when run with "--v":
@@ -75,7 +75,7 @@ style of setup/teardown functions:
75
75
 
76
76
  * fixture management scales from simple unit to complex
77
77
  functional testing, allowing to parametrize fixtures and tests according
78
- to configuration and component options, or to re-use fixtures
78
+ to configuration and component options, or to reuse fixtures
79
79
  across function, class, module or whole test session scopes.
80
80
 
81
81
  * teardown logic can be easily, and safely managed, no matter how many fixtures
@@ -16,7 +16,7 @@ Shortcomings of the previous ``pytest_funcarg__`` mechanism
16
16
 
17
17
  The pre pytest-2.3 funcarg mechanism calls a factory each time a
18
18
  funcarg for a test function is required. If a factory wants to
19
- re-use a resource across different scopes, it often used
19
+ reuse a resource across different scopes, it often used
20
20
  the ``request.cached_setup()`` helper to manage caching of
21
21
  resources. Here is a basic example how we could implement
22
22
  a per-session Database object:
@@ -107,7 +107,7 @@ the tests requiring "db" will run twice as well. The "mysql" and
107
107
  "pg" values will also be used for reporting the test-invocation variants.
108
108
 
109
109
  This new way of parametrizing funcarg factories should in many cases
110
- allow to re-use already written factories because effectively
110
+ allow to reuse already written factories because effectively
111
111
  ``request.param`` was already used when test functions/classes were
112
112
  parametrized via
113
113
  :py:func:`metafunc.parametrize(indirect=True) <pytest.Metafunc.parametrize>` calls.
@@ -164,7 +164,7 @@ hook which are often used to setup global resources. This suffers from
164
164
  several problems:
165
165
 
166
166
  1. in distributed testing the managing process would setup test resources
167
- that are never needed because it only co-ordinates the test run
167
+ that are never needed because it only coordinates the test run
168
168
  activities of the worker processes.
169
169
 
170
170
  2. if you only perform a collection (with "--collect-only")
@@ -22,7 +22,7 @@ Install ``pytest``
22
22
  .. code-block:: bash
23
23
 
24
24
  $ pytest --version
25
- pytest 8.3.2
25
+ pytest 8.3.3
26
26
 
27
27
  .. _`simpletest`:
28
28
 
@@ -1418,7 +1418,7 @@ Running the above tests results in the following test IDs being used:
1418
1418
  rootdir: /home/sweet/project
1419
1419
  collected 12 items
1420
1420
 
1421
- <Dir fixtures.rst-223>
1421
+ <Dir fixtures.rst-224>
1422
1422
  <Module test_anothersmtp.py>
1423
1423
  <Function test_showhelo[smtp.gmail.com]>
1424
1424
  <Function test_showhelo[mail.python.org]>
@@ -1487,7 +1487,7 @@ Modularity: using fixtures from a fixture function
1487
1487
 
1488
1488
  In addition to using fixtures in test functions, fixture functions
1489
1489
  can use other fixtures themselves. This contributes to a modular design
1490
- of your fixtures and allows re-use of framework-specific fixtures across
1490
+ of your fixtures and allows reuse of framework-specific fixtures across
1491
1491
  many projects. As a simple example, we can extend the previous example
1492
1492
  and instantiate an object ``app`` where we stick the already defined
1493
1493
  ``smtp_connection`` resource into it:
@@ -109,7 +109,7 @@ achieves this by receiving a special ``request`` object which gives
109
109
  access to :ref:`the requesting test context <request-context>` such
110
110
  as the ``cls`` attribute, denoting the class from which the fixture
111
111
  is used. This architecture de-couples fixture writing from actual test
112
- code and allows re-use of the fixture by a minimal reference, the fixture
112
+ code and allows reuse of the fixture by a minimal reference, the fixture
113
113
  name. So let's write an actual ``unittest.TestCase`` class using our
114
114
  fixture definition:
115
115
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  .. sidebar:: **Next Open Trainings and Events**
4
4
 
5
- - `pytest: Professionelles Testen (nicht nur) für Python <https://pretalx.com/workshoptage-2024/talk/9VUHYB/>`_, at `CH Open Workshoptage <https://workshoptage.ch/>`_, **September 2nd 2024**, HSLU Rotkreuz (CH)
6
5
  - `Professional Testing with Python <https://python-academy.com/courses/python_course_testing.html>`_, via `Python Academy <https://www.python-academy.com/>`_ (3 day in-depth training), **March 4th -- 6th 2025**, Leipzig (DE) / Remote
7
6
 
8
7
  Also see :doc:`previous talks and blogposts <talks>`
@@ -1287,10 +1287,10 @@ passed multiple times. The expected format is ``name=value``. For example::
1287
1287
 
1288
1288
  .. confval:: cache_dir
1289
1289
 
1290
- Sets a directory where stores content of cache plugin. Default directory is
1290
+ Sets the directory where the cache plugin's content is stored. Default directory is
1291
1291
  ``.pytest_cache`` which is created in :ref:`rootdir <rootdir>`. Directory may be
1292
1292
  relative or absolute path. If setting relative path, then directory is created
1293
- relative to :ref:`rootdir <rootdir>`. Additionally path may contain environment
1293
+ relative to :ref:`rootdir <rootdir>`. Additionally, a path may contain environment
1294
1294
  variables, that will be expanded. For more information about cache plugin
1295
1295
  please refer to :ref:`cache_provider`.
1296
1296
 
@@ -1866,7 +1866,7 @@ passed multiple times. The expected format is ``name=value``. For example::
1866
1866
  .. code-block:: ini
1867
1867
 
1868
1868
  [pytest]
1869
- tmp_path_retention_policy = "all"
1869
+ tmp_path_retention_policy = all
1870
1870
 
1871
1871
  Default: ``all``
1872
1872
 
@@ -0,0 +1,10 @@
1
+ -c broken-dep-constraints.txt
2
+ pluggy>=1.5.0
3
+ pygments-pytest>=2.3.0
4
+ sphinx-removed-in>=0.2.0
5
+ sphinx>=7
6
+ sphinxcontrib-trio
7
+ sphinxcontrib-svg2pdfconverter
8
+ furo
9
+ sphinxcontrib-towncrier
10
+ sphinx-issues
@@ -306,6 +306,11 @@ disable = [
306
306
  "wrong-import-position", # handled by isort / ruff
307
307
  ]
308
308
 
309
+ [tool.codespell]
310
+ ignore-words-list = "afile,asser,assertio,feld,hove,ned,noes,notin,paramete,parth,socio-economic,tesults,varius,wil"
311
+ skip = "*/plugin_list.rst"
312
+ write-changes = true
313
+
309
314
  [tool.check-wheel-contents]
310
315
  # check-wheel-contents is executed by the build-and-inspect-python-package action.
311
316
  # W009: Wheel contains multiple toplevel library entries