Pierre Sassoulas
52fba25ff9
[flake8-bugbear] Fix all the useless expressions that are justified
2024-02-04 19:27:23 +01:00
Pierre Sassoulas
fcb818b73c
[flake8-bugbear] Re-raise all exceptions with proper exception chaining
2024-02-04 19:27:23 +01:00
Pierre Sassoulas
7eef4619d5
[flake8-bugbear] Add checks from flake8 bugbear
2024-02-04 19:27:16 +01:00
Ran Benita
e28f35c296
Merge pull request #11915 from bluetech/compat-string-types
...
compat: a couple of minor cleanups
2024-02-04 16:51:43 +02:00
Ran Benita
3ba4095400
compat: inline helpers into `ascii_escaped`
...
The helpers don't add much.
2024-02-03 18:42:05 +02:00
Ran Benita
99e8129ba3
compat: get rid of STRING_TYPES
...
I think it only obfuscates the code, also calling `bytes` a string type
is pretty misleading in Python 3.
2024-02-03 18:38:38 +02:00
Ran Benita
20b18f0f9a
Merge pull request #11913 from bluetech/ruff-version-ignore
...
Ignore isort on _version.py
2024-02-02 21:55:40 +02:00
Ran Benita
cb5f738858
Ignore isort on _version.py
...
The file is generated. This makes `ruff src/` run cleanly (when not
running through pre-commit).
2024-02-02 21:29:30 +02:00
Pierre Sassoulas
5be64c31cb
Merge pull request #11912 from Pierre-Sassoulas/activate-ruff-checks
...
[pre-commit] Activate ruff checks and fix existing issues
2024-02-02 20:22:18 +01:00
Pierre Sassoulas
233ab89f13
[ruff] Fix all consider [*cats, garfield] instead of cats + [garfield]
2024-02-02 15:18:38 +01:00
Pierre Sassoulas
8967c527ff
[ruff] Activate use next(iter(x)) instead of list(x)[0] and fix issue
2024-02-02 15:18:38 +01:00
Pierre Sassoulas
180a16a344
[ruff] Fix ambiguous characters found in string and comment
2024-02-02 15:18:38 +01:00
Pierre Sassoulas
514376fe29
[ruff] Add ruff's check and autofix existing issues
2024-02-02 15:18:38 +01:00
Pierre Sassoulas
bdfc5c80d8
Merge pull request #11901 from Pierre-Sassoulas/migrate-from-isort-to-ruff
...
Migrate from ``autoflake``, ``black``, ``isort``, ``pyupgrade``, ``flake8`` and ``pydocstyle``, to ``ruff``
2024-02-02 09:42:07 +01:00
Pierre Sassoulas
9ef905e7a0
[.git-blame-ignore-revs] Add migration to ruff/ruff format and blacken-docs 2024's style
2024-02-02 09:28:09 +01:00
Pierre Sassoulas
4588653b24
Migrate from autoflake, black, isort, pyupgrade, flake8 and pydocstyle, to ruff
...
ruff is faster and handle everything we had prior.
isort configuration done based on the indication from
https://github.com/astral-sh/ruff/issues/4670 , previousely based on
reorder-python-import (#11896 )
flake8-docstrings was a wrapper around pydocstyle (now archived) that
explicitly asks to use ruff in https://github.com/PyCQA/pydocstyle/pull/658 .
flake8-typing-import is useful mainly for project that support python 3.7
and the one useful check will be implemented in https://github.com/astral-sh/ruff/issues/2302
We need to keep blacken-doc because ruff does not handle detection
of python code inside .md and .rst. The direct link to the repo is
now used to avoid a redirection.
Manual fixes:
- Lines that became too long
- % formatting that was not done automatically
- type: ignore that were moved around
- noqa of hard to fix issues (UP031 generally)
- fmt: off and fmt: on that is not really identical
between black and ruff
- autofix re-order in pre-commit from faster to slower
Co-authored-by: Ran Benita <ran@unusedvar.com>
2024-02-02 09:27:00 +01:00
Pierre Sassoulas
046f64751b
Fix a duplicate assignment in test_config.py
...
Taken from https://github.com/pytest-dev/pytest/pull/11885 that was closed.
2024-01-31 13:59:25 +01:00
Pierre Sassoulas
4546d5445a
Upgrade blacken-doc to black's 2024 style ( #11899 )
2024-01-31 13:53:21 +01:00
Bruno Oliveira
de161f8791
Merge pull request #11896 from nicoddemus/isort
...
Replace reorder-python-imports by isort due to black incompatibility
2024-01-31 08:04:39 -03:00
Bruno Oliveira
3be2a9d655
Update and rename .gitblameignore to .git-blame-ignore-revs
...
Seems like `.git-blame-ignore-revs` is the standard used and also automatically detected by GitHub:
https://github.blog/changelog/2022-03-24-ignore-commits-in-the-blame-view-beta/
2024-01-31 07:50:49 -03:00
John Litborn
e885013c6b
fix incorrect example for group_contains ( #11892 )
2024-01-30 12:00:38 -08:00
Bruno Oliveira
8b54596639
Run pre-commit on all files
...
Running pre-commit on all files after replacing reorder-python-imports by isort.
2024-01-30 16:35:46 -03:00
Bruno Oliveira
899a6cf2ce
Replace reorder-python-imports by isort due to black incompatibility
...
Unfortunately black and reorder-python-imports are no longer compatible, and from the looks of it probably will not be compatible anytime soon:
https://github.com/asottile/reorder-python-imports/issues/367
https://github.com/asottile/reorder-python-imports/issues/366
https://github.com/psf/black/issues/4175
This replaces `reorder-python-imports` by `isort` configured in a way to yield roughtly the same results.
Closes #11885
2024-01-30 16:35:45 -03:00
Clément Robert
407d984142
Fix an edge case where ExceptionInfo._stringify_exception could crash pytest.raises ( #11879 )
...
Co-authored-by: Bruno Oliveira <bruno@soliv.dev>
Co-authored-by: Zac Hatfield-Dodds <zac.hatfield.dodds@gmail.com>
2024-01-30 17:20:30 +02:00
Bruno Oliveira
21bec6cfbe
Add changelog entry about FixtureManager.getfixtureclosure changing ( #11887 )
...
As discussed in #11868 .
2024-01-30 09:41:18 -03:00
Bruno Oliveira
cb57bf50b1
Pin back pytest-asyncio to 8.0.0 compatible release ( #11889 )
...
The current version (0.23.4) explicitly does not support pytest 8 yet, so we fallback to the previous release in the hope that at least our integration tests pass.
2024-01-30 06:58:22 -03:00
dependabot[bot]
c0dfc45186
build(deps): Bump hynek/build-and-inspect-python-package ( #11877 )
...
Bumps [hynek/build-and-inspect-python-package](https://github.com/hynek/build-and-inspect-python-package ) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/hynek/build-and-inspect-python-package/releases )
- [Changelog](https://github.com/hynek/build-and-inspect-python-package/blob/main/CHANGELOG.md )
- [Commits](https://github.com/hynek/build-and-inspect-python-package/compare/v2.0.0...v2.0.1 )
---
updated-dependencies:
- dependency-name: hynek/build-and-inspect-python-package
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-29 10:42:51 -03:00
dependabot[bot]
5855f65d0f
build(deps): Bump pytest-asyncio in /testing/plugins_integration ( #11878 )
...
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio ) from 0.23.3 to 0.23.4.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases )
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.3...v0.23.4 )
---
updated-dependencies:
- dependency-name: pytest-asyncio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-29 10:42:27 -03:00
Russell Martin
14d3707818
Catch `OSError` from `getpass.getuser()` ( #11875 )
...
- Previously, `getpass.getuser()` would leak an ImportError if the
USERNAME environment variable was not set on Windows because the `pwd`
module cannot be imported.
- Starting in Python 3.13.0a3, it only raises `OSError`.
Fixes #11874
2024-01-28 23:07:18 -03:00
github-actions[bot]
8853a57532
[automated] Update plugin list ( #11867 )
...
Co-authored-by: pytest bot <pytestbot@users.noreply.github.com>
2024-01-28 13:28:28 +00:00
Bruno Oliveira
878af85aef
mypy: disallow untyped defs by default ( #11862 )
...
Change our mypy configuration to disallow untyped defs by default, which ensures *new* files added to the code base are fully typed.
To avoid having to type-annotate everything now, add `# mypy: allow-untyped-defs` to files which are not fully type annotated yet.
As we fully type annotate those modules, we can then just remove that directive from the top.
2024-01-28 10:12:42 -03:00
Ran Benita
e7b43b2121
Merge pull request #11859 from bluetech/numbered-dir-scandir
...
pathlib: speed up `make_numbered_dir` given a large tmp root
2024-01-28 00:05:39 +02:00
Ran Benita
d0f427aec4
Merge pull request #11865 from bluetech/cherry-pick-release
...
Cherry pick 8.0.0 release notes
2024-01-28 00:03:06 +02:00
Ran Benita
c6da0d20d2
Merge pull request #11864 from bluetech/release-8.0.0
...
Prepare release version 8.0.0
(cherry picked from commit 24c681d4eeaad22ba26c5bcf6958e0476ae37a89)
2024-01-28 00:00:15 +02:00
Dương Quốc Khánh
a164ed6400
logging: avoid rounding microsecond to `1_000_000` ( #11861 )
...
Rounding microsecond might cause it to reach `1_000_000`, which raises a TypeError.
2024-01-27 10:40:31 -03:00
Ran Benita
eb9013d42c
pathlib: speed up `make_numbered_dir` given a large tmp root
...
The function currently uses `find_suffixes` which iterates the entire
directory searching for files with the given suffix. In some cases
though, like in pytest's selftest, the directory can get big:
$ ls /tmp/pytest-of-ran/pytest-0/
7686
and iterating it many times can get slow.
This doesn't fix the underlying issue (iterating the directory) but at
least speeds it up a bit by using `os.scandir` instead of
`path.iterdir`. So `make_numbered_dir` is still slow for pytest's
selftests, but reduces ~10s for me.
2024-01-25 19:19:02 +02:00
Ran Benita
ac2cd72e5f
Merge pull request #11856 from bluetech/pluggy-unblock
...
config: use `pluginmanager.unblock` instead of accessing pluggy's internals
2024-01-25 10:42:13 +02:00
Ran Benita
bca4bb0738
config: use `pluginmanager.unblock` instead of accessing pluggy's internals
...
The function was added in pluggy 1.4.0.
2024-01-25 10:20:44 +02:00
Ran Benita
2a77f8d88b
Merge pull request #11854 from bluetech/runner-inline-2
...
runner: inline `call_runtest_hook`
2024-01-24 10:36:28 +02:00
Ran Benita
d972957303
hookspec: document conftest behavior for all hooks ( #9496 )
...
Have each hook explain how implementing it in conftests works. This is part of the functional specification of a hook.
2024-01-23 16:08:16 +02:00
Joachim B Haga
44bf7a2ec0
Mark some xfails from #10042 as non-strict ( #11832 )
...
Related to #10042 , some tests in `test_debugging.py` are actually flaky and should not be considered strict xfailures.
2024-01-22 18:29:14 -03:00
Ran Benita
5ab8972bb5
runner: inline `call_runtest_hook`
...
- Reduce the common stacktrace by an entry - this is mostly for benefit
of devs looking at crash logs.
- Reduce 6 slow `ihook` calls per test to 3.
2024-01-22 16:26:55 +02:00
github-actions[bot]
21440521fa
[automated] Update plugin list ( #11848 )
...
Co-authored-by: pytest bot <pytestbot@users.noreply.github.com>
2024-01-22 10:14:58 -03:00
dependabot[bot]
79ae968131
build(deps): Bump actions/cache from 3 to 4 ( #11852 )
...
Bumps [actions/cache](https://github.com/actions/cache ) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases )
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md )
- [Commits](https://github.com/actions/cache/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-22 10:11:09 -03:00
Ran Benita
c3fc717ff7
Merge pull request #11843 from bluetech/writing-plugins
...
doc/writing_plugins: correct inaccuracies re. initial conftest loading
2024-01-19 14:30:20 +02:00
clee2000
d71ef04f11
Escape skip reason in junitxml ( #11842 )
...
Co-authored-by: Bruno Oliveira <bruno@soliv.dev>
2024-01-18 22:08:26 -03:00
Ran Benita
111ad26f71
doc/writing_plugins: correct inaccuracies re. initial conftest loading
2024-01-18 22:17:55 +02:00
Ran Benita
2178ee86d7
Merge pull request #11826 from bluetech/no-cwd
...
Prefer using the invocation dir over CWD
2024-01-18 19:02:37 +02:00
Ran Benita
a6dd90a414
python: use invocation dir instead of cwd in fixture-printing code
...
We should aim to remove all `cwd()` calls except one, otherwise things
will go bad if the working directory changes. Use the invocation dir
instead.
2024-01-18 12:35:32 +02:00
Ran Benita
676f38d04a
findpaths: rely on invocation_dir instead of cwd
...
We should aim to remove all `cwd()` calls except one, otherwise things
will go bad if the working directory changes. Use the invocation dir
instead.
2024-01-18 12:35:32 +02:00