Commit Graph

2670 Commits

Author SHA1 Message Date
eduardo naufel schettino aefb2193fa [7.0.x] Fix count of selected tests on terminal collection summary 2022-02-15 11:40:19 +00:00
Bruno Oliveira 68db4e3292 [7.0.x] Try to import module before creating dummy modules with 'importmode=importlib' 2022-02-14 15:01:57 +00:00
Bruno Oliveira 057a057d4a [7.0.x] Add autoflake to pre-commit configuration 2022-02-11 17:34:30 +00:00
Bruno Oliveira 37d434f5fc [7.0.x] Delay warning about collector/item diamond inheritance 2022-02-10 17:12:02 +00:00
github-actions[bot] 6684110408
[7.0.x] unittest: restore `UnitTestFunction.obj` to return unbound rather than bound method (#9656)
Co-authored-by: Ran Benita <ran@unusedvar.com>
2022-02-09 23:20:31 +01:00
Ran Benita 453bcb1b83 [7.0.x] Rename ``pythonpath`` plugin to ``python_path`` 2022-02-09 11:20:53 +00:00
Anthony Sottile 4bf8aff5b7 [7.0.x] allow running testids which contain :: in the parametrized portion 2022-02-08 16:09:06 +00:00
Ran Benita c588a4720e [7.0.x] importlib.readers not valid until python 3.10 2022-02-08 17:36:38 +02:00
github-actions[bot] b304499925
[7.0.x] Make 'warnings' and 'deselected' in assert_outcomes optional (#9566)
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2022-01-27 14:18:54 +00:00
github-actions[bot] 28e5b3b8b7
[7.0.x] Add additional docs for uncooperative ctor deprecation (#9552)
Co-authored-by: Florian Bruhin <me@the-compiler.org>
2022-01-27 11:54:34 +00:00
Ran Benita 6639d6c7d8 Merge pull request #9532 from bluetech/getdir-cache
config: avoid stat storm in _getconftestmodules

(cherry picked from commit 5c69eced6c)

Conflicts:
	src/_pytest/config/__init__.py
2022-01-25 18:46:16 +02:00
Olga Matoula 94bcd2ce0f [7.0.x] Add docs on pytest.warns(None) deprecation 2022-01-13 19:51:06 +00:00
Ran Benita d0ae12ca76 [7.0.x] python: add back `instance` accessor to all python nodes, not just Function 2022-01-10 19:09:14 +00:00
Ran Benita 41cb93b549 [7.0.x] config: fix incorrect cache hit check in _getconftestmodules 2022-01-07 11:28:12 +00:00
Bruno Oliveira 1a04121f2f [7.0.x] Ensure Config.inifile is available during pytest_cmdline_main 2022-01-04 13:24:11 +00:00
Ran Benita c76989352f
Merge pull request #9450 from bluetech/backport-9438
[7.0.x] Backport "pytest: bring back direct imports of TempdirFactory, Testdir"
2021-12-27 16:54:01 +02:00
Ran Benita 5171327e3b Merge pull request #9438 from bluetech/pytest-legacypath-imports
pytest: bring back direct imports of TempdirFactory, Testdir
(cherry picked from commit 69da199f6e)
2021-12-27 15:11:45 +02:00
Ran Benita 9274fa5610 Merge pull request #9447 from bluetech/code-cut-pathlike
code: accept any `os.PathLike[str]` in `Traceback.cut`
(cherry picked from commit fcef7e49fd)
2021-12-27 15:10:13 +02:00
Kian Meng, Ang e62daed8c4 Fix typos (#9424) 2021-12-27 09:26:25 -03:00
Ran Benita 41e424b172 Merge pull request #9441 from bluetech/nose-setup-callable
python: skip nose setup/teardown fixtures if non-callable
(cherry picked from commit 7fc2cf51c2)
2021-12-27 11:13:12 +02:00
Ran Benita 74b9f46e40 Merge pull request #9401 from bluetech/doc-hooks-ref
doc: add a `hook` crossref type
(cherry picked from commit 8040cfd965)
2021-12-12 18:05:19 +02:00
Bruno Oliveira 76e108d06c Hide internal stack when using pytest.approx() in bool context (#9394)
This makes the error traceback point directly to the offending usage, rather
than to the internal `Approx.__bool__` method.

(cherry picked from commit 3ba9c01f9b)
2021-12-08 10:54:47 +01:00
Yuval Shimon 9bfa02ea07 Fixed error message prints function decorators when using assert in Python 3.9 and above. (#9359) 2021-12-07 07:08:48 -03:00
Bruno Oliveira 70d3d0f390
Drop readline workaround introduced in #1281 (#8848)
Fix #8733
Closes #8847
2021-12-06 19:50:11 +01:00
Florian Bruhin 663be09723
Improve reference and path/fspath docs (#9341)
* Improve reference and path/fspath docs

Closes #9283

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fixups

* Add explanation

* Update wording after #9363

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-12-06 11:25:05 +01:00
Bruno Oliveira a335ade1f5
Rename pathlib hook parameters (#9363)
* Rename pytest_ignore_collect fspath parameter to collection_path

* Rename pytest_collect_file fspath parameter to file_path

* Rename pytest_pycollect_makemodule fspath parameter to module_path

* Rename pytest_report_header startpath parameter to start_path

* Rename pytest_report_collectionfinish startpath parameter to start_path

* Update docs with the renamed parameters

* Use pytest-flakes fork temporarily to prove it works

* Use pytest-flakes 4.0.5
2021-12-03 13:14:09 +01:00
GergelyKalmar 1bcc2f87a2 Do not display empty worker info 2021-11-30 18:59:46 +01:00
Ran Benita a172a4141b Change PytestRemovedIn7Warning to error by default
Per our backward compatibility policy.

Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2021-11-14 23:57:10 +02:00
Ran Benita 128f29ee35 Categorize deprecation warnings to `PytestRemovedInXWarning`
Closes #7480.

This allows us to more easily follow our deprecation policy of turning
warnings into errors for the X.0 releases before complete removal in
X.1.

It also makes the deprecation timeline clear to both the users and
pytest developers -- it can be hard to keep track.

Note that the designation is not meant to be a binding contract - if the
time comes for removal of a specific deprecation but we decide it's too
soon, can just bump it to the next major.

Inspired by Django:
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/submitting-patches/#deprecating-a-feature
2021-11-14 23:57:10 +02:00
Ran Benita 062d91ab47
python: remove the `Instance` collector node 2021-11-13 14:03:44 +02:00
Florian Bruhin 5d87a27434
Elide pytest-internal paths for --fixtures (#9281)
* Elide pytest-internal paths for --fixtures

Fixes #8822

* Make flake8 happy
2021-11-10 15:16:41 +01:00
Ran Benita 63899c76a4 legacypath: support late-loading of pytester plugin
Fixes #9280.

Previous approach didn't support pytester being loaded using
`pytest_plugins = "pytester"` in a conftest.
2021-11-08 21:56:40 +02:00
Ran Benita f87df9c52e
nodes: keep plugins which subclass Item, File working for a bit more (#9279)
* nodes: keep plugins which subclass Item, File working for a bit more

Fix #8435.

* Update src/_pytest/nodes.py

Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>

Co-authored-by: Florian Bruhin <me@the-compiler.org>
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2021-11-08 14:51:04 +00:00
Simon K eb6c4493b2
Deprecation of `msg=` for both `pytest.skip()` and `pytest.fail()`. (#8950)
* porting pytest.skip() to use reason=, adding tests

* avoid adding **kwargs, it breaks other functionality, use optional msg= instead

* deprecation of `pytest.fail(msg=...)`

* fix bug with not capturing the returned reason value

* pass reason= in acceptance async tests instead of msg=

* finalising deprecations of `msg` in `pytest.skip()` and `pytest.fail()`

* Update doc/en/deprecations.rst

Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>

* Update doc/en/deprecations.rst

Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>

* fix failing test after upstream merge

* adding deprecation to `pytest.exit(msg=...)`

* add docs for pytest.exit deprecations

* finalising deprecation of msg for pytest.skip, pytest.exit and pytest.fail

* hold a reference to the Scope instance to please mypy

Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2021-11-08 15:31:14 +01:00
Thomas Hisch 59373fe402
Merge pull request #9271 from thisch/unpack
Inline PercentStyleMultiline._update_message
2021-11-08 12:54:44 +01:00
Ran Benita 86446edc86
Merge pull request #9273 from bluetech/nose-fixtures2
nose: fix class- and module-level fixture behavior
2021-11-07 23:14:39 +02:00
Simon K 7037a58711
use list comp for getreports in terminal py (#9243) 2021-11-06 16:32:37 +00:00
Ran Benita 89f0b5b5a2 nose: fix class- and module-level fixture behavior
Fixes #9272.

Fixing the issue directly in the plugin is somewhat hard, so do it in
core. Since the plugin is going to be deprecated, I figure it's OK to
cheat a bit.
2021-11-06 14:45:24 +02:00
Oleg Höfling 49f934618c
Replace hardcoded links to Github issues with extlinks (#9234) 2021-11-06 11:16:11 +02:00
Thomas Hisch d8b647970f Inline PercentStyleMultiline._update_message
and take advantage of dict unpacking operator.
2021-11-05 23:08:30 +01:00
Ran Benita b0aa870b11 Export CollectReport and TestReport
Refs #7469.
2021-11-02 20:58:51 +02:00
Ran Benita a53abe93d8
Merge pull request #9208 from bluetech/legacypath-plugin
Add legacypath plugin, move py.path stuff there
2021-11-02 20:35:12 +02:00
Harshna 9d17cebe64
Use correct input arg type for _bestrelpath (#9238)
Closes #8990
2021-11-01 17:43:05 +02:00
denivyruck 0191563fd6
DoctTest line numbers not found due to method wrapping (#8861)
Closes #8796
2021-11-01 09:01:25 +02:00
Alexander King 31c207a0b5
Support forwardslash characters in identifiers (#9249)
Closes #8377.
2021-11-01 08:54:18 +02:00
Ran Benita e6eac28f0e legacypath: only add `testdir` and `tmpdir` fixtures if corresponding plugins are registered
This preserves the existing behavior and gives a proper error message
in case e.g. `testdir` is requested without the `pytester` plugin being
loaded.
2021-10-29 13:11:12 +03:00
Ran Benita c3dff755af Move Node.fspath to legacypath plugin 2021-10-28 21:51:51 +03:00
Ran Benita ce7cff9f8e Move pathlist support to legacypath plugin 2021-10-28 21:51:51 +03:00
Ran Benita d9ca55c648 Move Session.startdir to legacypath plugin 2021-10-28 21:51:51 +03:00
Ran Benita 84722a7904 Move Config.{invocation_dir,rootdir,inifile} to legacypath plugin 2021-10-28 21:51:51 +03:00