Warren Markham
ff23347f1f
Fix platform-dependent type-check errors ( #11345 )
...
Use more explicit `sys.platform` checks, instead of the previous check using `in`, which mypy understands.
Fixes #11343
2023-08-27 09:40:24 -03:00
Ran Benita
77f7f59b2a
Fixes for typed pluggy
...
Since version 1.3 pluggy added typing, which requires some fixes to
please mypy.
2023-08-26 22:13:24 +03:00
Jon Parise
7500fe44b2
Correct the spelling of ArgSource.INVOCATION_DIR ( #11333 )
...
Config.ArgsSource.INCOVATION_DIR remains as a backwards compatibility
alias.
2023-08-23 09:21:17 +00:00
Ran Benita
43d1398fc7
Merge pull request #11334 from WarrenTheRabbit/fix-docstring-spelling-in-pytester-1
...
doc: fix docstring spelling in pytester
2023-08-22 14:44:06 +03:00
Zac Hatfield-Dodds
03832fa31e
Merge pull request #11326 from DetachHead/DetachHead-patch-1
...
use `if not TYPE_CHECKING` on `pytest.__getattr__` to prevent type checkers from using it
2023-08-22 03:53:46 -07:00
WarrenTheRabbit
3f446b68fd
doc: fix docstring spelling in pytester
2023-08-22 14:36:39 +10:00
Zac Hatfield-Dodds
050f402816
Merge pull request #11308 from reaganjlee/iter-reporting
...
Improve reporting from __iter__ exceptions
2023-08-21 16:27:42 -07:00
pre-commit-ci[bot]
dd5ae0c3b8
[pre-commit.ci] auto fixes from pre-commit.com hooks
...
for more information, see https://pre-commit.ci
2023-08-21 08:03:06 +00:00
DetachHead
fc653d0d12
use if not TYPE_CHECKING on pytest.__getattr__ to prevent type checkers from using it
2023-08-21 18:00:28 +10:00
Tyler Smart
a357c7abc8
Ignore dip in branch coverage (since py3.13+ isn't tested in CI)
2023-08-20 20:55:30 -06:00
Reagan Lee
61133ba83d
un-iterable fix
2023-08-20 14:46:09 -07:00
Reagan Lee
049eec8474
Revert iter raises checks
...
This reverts commit e938580257 .
Revert "improve error msg and test"
This reverts commit c0cf822ca1 .
Revert "error msg"
This reverts commit ec1053cc16 .
Revert "changelog"
This reverts commit d2dc8a70b5 .
Revert "simplify code / take out user-gen typeerror case"
This reverts commit b9cb87d862 .
2023-08-20 14:06:42 -07:00
Tyler Smart
7a625481da
PR suggestions
2023-08-19 22:20:40 -06:00
Tyler Smart
ebd571bb18
Move _from_module override to pre-existsing DocTestFinder subclass
2023-08-19 12:04:59 -06:00
Tyler Smart
d4fb6ac9f7
Fix doctest collection of functools.cached_property objects.
2023-08-16 00:55:16 -06:00
Ran Benita
15fadd8c5c
Merge pull request #11219 from bluetech/fixtures2
...
fixtures: make FixtureRequest abstract, add TopRequest subclass
2023-08-15 21:52:46 +03:00
Ran Benita
1827d8d5f9
doc: fix a few pytest.mark.xfail nits
...
Refs #9027 , #10094 .
2023-08-12 18:30:58 +03:00
Ran Benita
9e164fc4fe
fixtures: make FixtureRequest abstract, add TopRequest subclass
...
Fix #11218 .
2023-08-12 11:55:08 +03:00
Reagan Lee
c0cf822ca1
improve error msg and test
2023-08-11 10:33:34 -07:00
Reagan Lee
ec1053cc16
error msg
2023-08-11 10:03:19 -07:00
Reagan Lee
b9cb87d862
simplify code / take out user-gen typeerror case
2023-08-10 17:43:01 -07:00
Reagan Lee
e938580257
check for user-generated exceptions
2023-08-10 17:37:48 -07:00
Ran Benita
3ad3fc6b8f
python: use clearer terminology for _resolve_arg_value_types
2023-08-09 20:36:24 +03:00
Sadra Barikbin
09b78737a5
Move fixtures.py::add_funcarg_pseudo_fixture_def to Metafunc.parametrize ( #11220 )
...
To remove fixtures.py::add_funcargs_pseudo_fixture_def and add its logic
i.e. registering funcargs as params and making corresponding fixturedefs,
right to Metafunc.parametrize in which parametrization takes place.
To remove funcargs from metafunc attributes as we populate metafunc
params and make pseudo fixturedefs simultaneously and there's no need to
keep funcargs separately.
2023-08-09 17:13:45 +00:00
Ran Benita
b2186e2455
Merge pull request #11268 from bluetech/conftest-load
...
config: split `_getconftestmodules` and `_loadconftestmodules`
2023-08-08 14:44:29 +03:00
Bruno Oliveira
24c9aa6c30
Merge pull request #11291 from calestyo/improve-duplicate-values-documentation
...
Improve duplicate values documentation
2023-08-07 08:14:39 -03:00
Christoph Anton Mitterer
1cc58ed67f
improve exception message on duplicate parametrization
...
Signed-off-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.name >
2023-08-06 17:43:37 +02:00
Christoph Anton Mitterer
84a342e27c
doc: parametrize() can be called multiple times only on different args
...
Signed-off-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.name >
2023-08-06 17:39:31 +02:00
Sadra Barikbin
e8a8a5f320
python: fix scope assignment for indirect parameter sets ( #11277 )
...
Previously, when assigning a scope for a fully-indirect parameter set,
when there are multiple fixturedefs for a param (i.e. same-name fixture
chain), the highest scope was used, but it should be the lowest scope,
since that's the effective scope of the fixture.
2023-08-06 13:59:54 +00:00
Sadra Barikbin
4797deab99
Add FixtureArgKey class to represent fixture deps in fixtures.py ( #11231 )
2023-08-02 14:28:31 +03:00
pre-commit-ci[bot]
c9163402e0
[pre-commit.ci] pre-commit autoupdate ( #11269 )
...
* [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/PyCQA/flake8: 6.0.0 → 6.1.0](https://github.com/PyCQA/flake8/compare/6.0.0...6.1.0 )
- [github.com/asottile/pyupgrade: v3.9.0 → v3.10.1](https://github.com/asottile/pyupgrade/compare/v3.9.0...v3.10.1 )
* Use is instead of type comparison with equal to appease the linter
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com >
2023-08-01 23:52:09 +02:00
Ran Benita
01ac13a77d
config: split _getconftestmodules and _loadconftestmodules
...
Previously, the `_getconftestmodules` function was used both to load
conftest modules for a path (during `pytest_load_initial_conftests`),
and to retrieve conftest modules for a path (during hook dispatch and
for fetching `collect_ignore`). This made things muddy - it is usually
nicer to have clear separation between "command" and "query" functions,
when they occur in separate phases.
So split into "load" and "get".
Currently, `gethookproxy` still loads conftest itself. I hope to change
this in the future.
2023-08-01 09:46:17 +03:00
Ran Benita
a21fb87a90
python: change Package to no longer be a Module/File
...
Fix #11137 .
2023-07-28 22:49:24 +03:00
Ran Benita
71e627aa8f
fixtures: fix crash when parametrize(scope="package") is used without a Package
...
There as handling for `scope="class"` without a class, but not for
`scope="package"` without a package. It would fail the assert.
2023-07-28 16:13:02 +03:00
Sadra Barikbin
e8aa906e06
fixtures: move _get_direct_parametrize_args to a standalone function
...
So it can be used independently of the FixtureManager.
2023-07-27 09:38:42 +03:00
Sadra Barikbin
12054a4972
config: avoid list[], set[], dict[]
...
Should wait with this until Python 3.8 is dropped.
2023-07-27 09:33:34 +03:00
Ran Benita
13e2b00258
config: don't pass the entire Config to determine_setup()
...
Seems better to make the function a bit more pure, and avoids the
circular import.
2023-07-24 00:00:34 +03:00
Ran Benita
4e42421ebf
config: fix an incorrect type
...
Was a mistake in d97d44a97a .
2023-07-24 00:00:34 +03:00
bowugit
0b4a557087
Extend pytest.raises to support Exception having __repr__ method and initialized with kwargs ( #11073 )
...
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com >
2023-07-20 13:29:29 -03:00
Isaac Virshup
1de0923e83
Have pytest.raises match against exception __notes__ ( #11227 )
...
The doctest is skipped because add_note is only available in 3.11,
Closes #11223
2023-07-18 08:39:39 -03:00
Ran Benita
02ba39bfcd
Merge pull request #11215 from bluetech/fixtures-tweaks2
...
fixtures: minor tweaks
2023-07-17 17:30:24 +03:00
Ran Benita
c5262b0c42
fixtures: show test as skip location if skipped from an xunit setup function
...
Fix #11216 .
2023-07-16 23:26:04 +03:00
Ran Benita
ff6e110161
fixtures: remove inaccurate comment
...
unittest TestCases can also use `usefixtures`. Just remove this comment,
it's not very helpful.
2023-07-16 23:19:33 +03:00
Ran Benita
0e0ed2af95
fixtures: some code comments and minor improvements
2023-07-16 23:19:33 +03:00
Ran Benita
a3fbf24389
unittest: hide access to _request
...
Let the parent class (Function) do this. Tiny bit better abstraction.
There seems to be no reason for the `hasattr` bit.
2023-07-16 23:19:33 +03:00
Ran Benita
04e0db7e48
Use typing.Literal without TYPE_CHECKING checks
...
Literal was added in Python 3.8 which we now require so can use it
freely.
2023-07-16 01:11:21 +03:00
Ran Benita
32f480814c
Merge pull request #11209 from bluetech/fixtures-doc-comments
...
fixtures: some tweaks & improvements
2023-07-15 19:40:48 +03:00
Ran Benita
40ed678885
fixtures: remove two unused functions
...
Not used since 310b67b227 .
2023-07-15 10:06:06 +03:00
Ran Benita
fb55615d5e
Export FixtureDef
...
FixtureDef is used in the `pytest_fixture_setup` hook so needs to be
public. However since its current internals are quite dubious (and not
all marked with `_` prefix) I've added an explicit note that only
documented fields/methods are considered public.
Refs #7469 .
2023-07-15 10:06:06 +03:00
Ran Benita
9d0ddb4625
fixtures: change FixtureDef.cached_result[2] from exception triplet to exception
...
Fix #11208 .
2023-07-15 10:06:06 +03:00