Ran Benita
bd76042344
python: export pytest.Metafunc for typing purposes
...
The type cannot be constructed directly, but is exported for use in type
annotations, since it is reachable through existing public API.
2020-12-26 21:05:02 +02:00
Ran Benita
d8d2df7e6f
Merge pull request #8174 from bluetech/py-to-pathlib-5
...
More py.path -> pathlib conversions
2020-12-26 15:01:07 +02:00
Ran Benita
ca4effc822
Convert most of the collection code from py.path to pathlib
2020-12-22 21:09:36 +02:00
Ran Benita
4faed28261
testing: convert some tmpdir to tmp_path
...
The tmpdir fixture (and its factory variant) is soft-deprecated in favor
of the tmp_path fixture.
2020-12-22 21:08:25 +02:00
Ran Benita
170a2c5040
testing/test_config: check inipath instead of inifile
...
inifile is soft-deprecated in favor of inipath.
2020-12-22 21:08:25 +02:00
Ran Benita
8b220fad4d
testing/test_helpconfig: remove unclear comment
2020-12-22 21:08:25 +02:00
Ran Benita
92ba96b061
code: convert from py.path to pathlib
2020-12-22 21:08:25 +02:00
Ran Benita
813ce45985
Merge pull request #8179 from bluetech/typing-public-mark
...
mark: expose Mark, MarkDecorator, MarkGenerator under pytest for typing purposes
2020-12-22 16:32:02 +02:00
dependabot[bot]
1839713b71
build(deps): bump pytest-mock in /testing/plugins_integration
...
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock ) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases )
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst )
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.3.1...v3.4.0 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-12-21 03:07:23 +00:00
Ran Benita
6aa4d1c7ab
mark: export pytest.MarkGenerator for typing purposes
...
The type cannot be constructed directly, but is exported for use in type
annotations, since it is reachable through existing public API.
2020-12-20 15:59:20 +02:00
Ran Benita
7aa2240832
testing/test_nodes: fix fake session to be more accurate
...
The type of _initialpaths is `FrozenSet[Path]`.
2020-12-19 14:52:40 +02:00
Ran Benita
042d12fae6
doctest: use Path instead of py.path where possible
2020-12-19 14:52:40 +02:00
Ran Benita
2c05a7babb
config: let main() accept any os.PathLike instead of just py.path.local
...
Really it ought to only take the List[str], but for backward
compatibility, at least get rid of the explicit py.path.local check.
2020-12-19 14:52:40 +02:00
antonblr
196b173c8a
address comments
2020-12-18 12:36:20 -08:00
antonblr
15156e94c4
tests: Migrate to pytester - final update
2020-12-18 11:02:38 -08:00
Ran Benita
d46ecbc18b
terminal: fix "(<Skipped instance>)" skip reason in test status line
2020-12-15 22:24:25 +02:00
Jakob van Santen
9ccbf5b899
python_api: handle array-like args in approx() ( #8137 )
2020-12-15 08:49:29 -03:00
Ran Benita
6c899a0afa
Merge pull request #8144 from bluetech/py-to-pathlib-4
...
hookspec: add pathlib.Path alternatives to py.path.local parameters in hooks
2020-12-15 13:06:06 +02:00
Anton
8eef8c6004
tests: Migrate to pytester - incremental update ( #8145 )
2020-12-15 13:02:32 +02:00
Ran Benita
592b32bd69
hookspec: add pathlib.Path alternatives to py.path.local parameters in hooks
...
As part of the ongoing migration for py.path to pathlib, make sure all
hooks which take a py.path.local also take an equivalent pathlib.Path.
2020-12-15 00:34:23 +02:00
Ran Benita
2cb34a99cb
Some py.path.local -> pathlib.Path
2020-12-15 00:29:13 +02:00
Bruno Oliveira
cb8142b8ec
Merge pull request #8139 from pytest-dev/dependabot/pip/testing/plugins_integration/pytest-html-3.1.1
...
build(deps): bump pytest-html from 3.1.0 to 3.1.1 in /testing/plugins_integration
2020-12-14 08:13:44 -03:00
dependabot[bot]
a09d8b1599
build(deps): bump pytest-html in /testing/plugins_integration
...
Bumps [pytest-html](https://github.com/pytest-dev/pytest-html ) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/pytest-dev/pytest-html/releases )
- [Changelog](https://github.com/pytest-dev/pytest-html/blob/master/CHANGES.rst )
- [Commits](https://github.com/pytest-dev/pytest-html/compare/v3.1.0...v3.1.1 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 03:07:30 +00:00
dependabot[bot]
92b444a914
build(deps): bump pytest-bdd in /testing/plugins_integration
...
Bumps [pytest-bdd](https://github.com/pytest-dev/pytest-bdd ) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/pytest-dev/pytest-bdd/releases )
- [Changelog](https://github.com/pytest-dev/pytest-bdd/blob/master/CHANGES.rst )
- [Commits](https://github.com/pytest-dev/pytest-bdd/compare/4.0.1...4.0.2 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-12-14 03:07:27 +00:00
antonblr
4ed9a38519
tests: Migrate testing/python to pytester fixture
2020-12-13 07:42:12 -08:00
Bruno Oliveira
7e2e6630ad
Merge pull request #8123 from nicoddemus/import-mismatch-unc
...
Compare also paths on Windows when considering ImportPathMismatchError
2020-12-13 10:35:11 -03:00
bot2x
28588bf535
migrates test_warnings.py from testdir to pytester
2020-12-13 14:13:49 +02:00
Ran Benita
37b154b1ec
Merge pull request #8122 from bluetech/py-to-pathlib-3
...
Some py.path.local -> pathlib.Path
2020-12-13 10:54:19 +02:00
Ran Benita
3302ff9949
terminal: when the skip/xfail is empty, don't show it as "()"
...
Avoid showing a line like
x.py::test_4 XPASS () [100%]
which looks funny.
2020-12-12 22:09:00 +02:00
Pedro Algarvio
b16c091253
Add `pytest_markeval_namespace` hook.
...
Add a new hook , `pytest_markeval_namespace` which should return a dictionary.
This dictionary will be used to augment the "global" variables available to evaluate skipif/xfail/xpass markers.
Pseudo example
``conftest.py``:
.. code-block:: python
def pytest_markeval_namespace():
return {"color": "red"}
``test_func.py``:
.. code-block:: python
@pytest.mark.skipif("color == 'blue'", reason="Color is not red")
def test_func():
assert False
2020-12-12 17:41:37 +02:00
Ran Benita
ed658d6829
Some py.path.local -> pathlib.Path
...
- Some conftest related functions
- _confcutdir
- Allow arbitrary os.PathLike[str] in gethookproxy.
2020-12-12 17:33:28 +02:00
Bruno Oliveira
572dfcd160
Compare also paths on Windows when considering ImportPathMismatchError
...
On Windows, os.path.samefile returns false for paths mounted in UNC paths which
point to the same location.
I couldn't reproduce the actual case reported, but looking at the code it seems
this commit should fix the issue.
Fix #7678
Fix #8076
2020-12-12 08:54:49 -03:00
Katarzyna
612f157dbd
Show reason for skipped test in verbose mode
2020-12-09 09:43:47 +02:00
Anton
810b878ef8
Migrate to pytester: test_capture.py, test_terminal.py, approx.py ( #8108 )
...
* Migrate to pytester: test_capture.py, test_config.py, approx.py
* migrate test_terminal.py
* revert test_config.py
* more typing in test_terminal.py
* try-out 'tr' fixture update
* revert 'tr' fixture, update test_config.py
2020-12-08 22:20:02 +02:00
Bruno Oliveira
059f6ff315
Merge pull request #8107 from pytest-dev/dependabot/pip/testing/plugins_integration/pytest-html-3.1.0
...
build(deps): bump pytest-html from 3.0.0 to 3.1.0 in /testing/plugins_integration
2020-12-07 08:52:56 -03:00
dependabot[bot]
19de6bccff
build(deps): bump pytest-html in /testing/plugins_integration
...
Bumps [pytest-html](https://github.com/pytest-dev/pytest-html ) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/pytest-dev/pytest-html/releases )
- [Changelog](https://github.com/pytest-dev/pytest-html/blob/master/CHANGES.rst )
- [Commits](https://github.com/pytest-dev/pytest-html/compare/v3.0.0...v3.1.0 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-12-07 03:08:29 +00:00
dependabot[bot]
8c120c042c
build(deps): bump django in /testing/plugins_integration
...
Bumps [django](https://github.com/django/django ) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/django/django/releases )
- [Commits](https://github.com/django/django/compare/3.1.3...3.1.4 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-12-07 03:08:29 +00:00
Ran Benita
e398c93884
Merge pull request #8055 from bluetech/unraisable
...
Add unraisableexception and threadexception plugins
2020-12-05 21:52:17 +02:00
Ran Benita
760a73c08c
Merge pull request #8017 from bluetech/typing-public-fixtures
...
Export types of builtin fixtures for type annotations
2020-12-05 21:51:20 +02:00
Christine Mecklenborg
eeb3afb8ab
Migrate test_pastebin.py from testdir to pytester
2020-12-01 12:55:59 -06:00
Ran Benita
64bb5f2ad1
Merge pull request #8091 from cmecklenborg/pytester_refactor_test_parseopt
...
Migrate test_parseopt.py from testdir to pytester
2020-12-01 14:10:09 +02:00
Ran Benita
0d0dfdd7aa
Merge pull request #8090 from cmecklenborg/pytester_refactor_test_nose
...
Migrate test_nose.py from testdir to pytester
2020-12-01 14:07:55 +02:00
dependabot[bot]
7a06bc2416
build(deps): bump pytest-flakes in /testing/plugins_integration ( #8087 )
...
Bumps [pytest-flakes](https://github.com/asmeurer/pytest-flakes ) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/asmeurer/pytest-flakes/releases )
- [Commits](https://github.com/asmeurer/pytest-flakes/commits )
Signed-off-by: dependabot[bot] <support@github.com>
2020-12-01 14:06:38 +02:00
Christine Mecklenborg
4abd71121d
Migrate test_parseopt.py from testdir to pytester
2020-11-30 16:27:39 -06:00
Christine Mecklenborg
d4c81ffab4
Migrate test_nose.py from testdir to pytester
2020-11-30 16:07:26 -06:00
Dominic Mortlock
775ba63c67
Refactor acceptance_test to use pytester ( #8070 )
2020-11-25 14:42:47 +02:00
Ran Benita
d50df85e26
Add unraisableexception and threadexception plugins
2020-11-21 21:11:48 +02:00
Maximilian Cosmo Sitter
0cef530d10
Add str() support to LineMatcher ( #8050 )
2020-11-21 20:45:20 +02:00
Simon K
52fef811c2
permit node to warn with any warning type, not just PytestWarning ( #8052 )
...
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2020-11-21 10:49:17 -03:00
Ran Benita
3e0bbd2f57
testing: fix ResourceWarning in broken-pipe test
2020-11-20 17:55:23 +02:00
Petter Strandmark
eda681af2b
Call Python 3.8 doClassCleanups ( #8033 )
2020-11-19 12:07:15 +02:00
Ran Benita
30d89fd07e
Merge pull request #8039 from pytest-dev/dependabot/pip/testing/plugins_integration/pytest-html-3.0.0
...
build(deps): bump pytest-html from 2.1.1 to 3.0.0 in /testing/plugins_integration
2020-11-19 12:05:04 +02:00
Garvit Shubham
6fe9d2fb9f
testing: convert test_{conftest,recwarn,tmpdir} to pytester
2020-11-16 19:22:57 +02:00
dependabot[bot]
3a899ced76
build(deps): bump pytest-html in /testing/plugins_integration
...
Bumps [pytest-html](https://github.com/pytest-dev/pytest-html ) from 2.1.1 to 3.0.0.
- [Release notes](https://github.com/pytest-dev/pytest-html/releases )
- [Changelog](https://github.com/pytest-dev/pytest-html/blob/master/CHANGES.rst )
- [Commits](https://github.com/pytest-dev/pytest-html/compare/v2.1.1...v3.0.0 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-11-16 03:15:18 +00:00
Ran Benita
825b81ba52
Merge pull request #8014 from bluetech/pyc-pep552
...
assertion/rewrite: write pyc's according to PEP-552 on Python>=3.7
2020-11-14 23:38:45 +02:00
Ran Benita
1d532da49e
assertion/rewrite: write pyc's according to PEP-552 on Python>=3.7
...
Python 3.7 changes the pyc format by adding a flags byte. Even though it
is not necessary for us to match it, it is nice to be able to read pyc
files we emit for debugging the rewriter.
Update our custom pyc files to use that format. We write flags==0
meaning we still use the mtime+size format rather the newer hash format.
2020-11-14 23:20:12 +02:00
Ran Benita
f1e6fdcddb
Export types of builtin fixture for type annotations
...
In order to allow users to type annotate fixtures they request, the
types need to be imported from the `pytest` namespace. They are/were
always available to import from the `_pytest` namespace, but that is
not guaranteed to be stable.
These types are only exported for the purpose of typing. Specifically,
the following are *not* public:
- Construction (`__init__`)
- Subclassing
- staticmethods and classmethods
We try to combat them being used anyway by:
- Marking the classes as `@final` when possible (already done).
- Not documenting private stuff in the API Reference.
- Using `_`-prefixed names or marking as `:meta private:` for private
stuff.
- Adding a keyword-only `_ispytest=False` to private constructors,
warning if False, and changing pytest itself to pass True. In the
future it will (hopefully) become a hard error.
Hopefully that will be enough.
2020-11-13 11:25:09 +02:00
Ran Benita
66311ff702
Merge pull request #8022 from bluetech/doctest-init
...
main: fix only one doctest collected on pytest --doctest-modules __init__.py
2020-11-13 10:46:46 +02:00
Ran Benita
ea3c0aa245
Merge pull request #8019 from JosiasAurel/mypytester-change-01
...
Migrate from testdir to pytester
2020-11-13 10:36:03 +02:00
Josias Aurel
fa148eadfe
Update testing/test_faulthandler.py
...
Co-authored-by: Sanket Duthade <duthades@gmail.com>
2020-11-11 18:35:06 +01:00
Josias Aurel
06a597db14
Add type annotations
2020-11-11 05:02:32 +01:00
Josias Aurel
1ed8159c7d
Update testing/test_faulthandler.py
...
Co-authored-by: Sanket Duthade <duthades@gmail.com>
2020-11-11 04:45:57 +01:00
Josias Aurel
8320c07134
Update testing/test_faulthandler.py
...
Co-authored-by: Sanket Duthade <duthades@gmail.com>
2020-11-11 04:45:42 +01:00
Ran Benita
265cc2cfec
main: fix only one doctest collected on pytest --doctest-modules __init__.py
...
When --doctest-modules is used, an `__init__.py` file is not a `Package`
but a `DoctestModule`, but some collection code assumed that
`__init__.py` implies a `Package`. That code caused only a single test
to be collected in the scenario in the subject.
Tighten up this check to explicitly check for `Package`. There are
better solutions, but for another time.
Report & test by Nick Gates <nickgatzgates@gmail.com>.
2020-11-10 22:50:46 +02:00
Josias Aurel
043ed55056
Migrate from testdir to pytester
2020-11-09 18:07:34 +01:00
Ran Benita
e986d84466
Merge pull request #8006 from bluetech/export-MonkeyPatch
...
Export MonkeyPatch as pytest.MonkeyPatch
2020-11-09 11:45:38 +02:00
Ran Benita
6f13d1b03b
Export MonkeyPatch as pytest.MonkeyPatch
...
We want to export `pytest.MonkeyPatch` for the purpose of
type-annotating the `monkeypatch` fixture. For other fixtures we export
in this way, we also make direct construction of them (e.g.
`MonkeyPatch()`) private. But unlike the others, `MonkeyPatch` is also
widely used directly already, mostly because the `monkeypatch` fixture
only works in `function` scope (issue #363 ), but also in other cases. So
making it private will be annoying and we don't offer a decent
replacement yet.
So, let's just make direct construction public & documented.
2020-11-09 11:28:15 +02:00
dependabot[bot]
02d4b3d75f
build(deps): bump django in /testing/plugins_integration
...
Bumps [django](https://github.com/django/django ) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/django/django/releases )
- [Commits](https://github.com/django/django/compare/3.1.2...3.1.3 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-11-09 03:17:35 +00:00
Hugo Martins
5b2e5e8a40
Improve summary stats when using '--collect-only' ( #7875 )
...
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2020-11-08 11:45:10 -03:00
Ran Benita
4c0513bc18
fixtures: deprecate pytest.yield_fixture()
2020-11-07 17:06:40 +02:00
Sanket Duthade
3bcd316f07
test_collection.py migrate from testdir to Pytester ( #8003 )
2020-11-07 16:56:00 +02:00
Garvit Shubham
6a5037a25b
#7942 test_setupplan.py migrate from testdir to Pytester ( #8004 )
...
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2020-11-07 09:29:45 -03:00
Bruno Oliveira
30287b49cd
Deprecate --strict ( #7985 )
...
Fix #7530
2020-11-06 09:48:20 +01:00
duthades
b815f430e5
#7942 test_session.py migrate from testdir to pytester
...
- Add name to AUTHORS
2020-11-04 21:55:07 +05:30
Ran Benita
a95da7a425
Merge pull request #7980 from bluetech/code-changes
...
code: a few minor improvements
2020-11-01 09:51:39 +02:00
Ran Benita
7fb0ea3f68
Merge pull request #7956 from csernazs/fix-7951
...
Fix handling recursive symlinks
2020-10-31 18:59:50 +02:00
Cserna Zsolt
8a38e7a6e8
Fix handling recursive symlinks
...
When pytest was run on a directory containing a recursive symlink it failed
with ELOOP as the library was not able to determine the type of the
direntry:
src/_pytest/main.py:685: in collect
if not direntry.is_file():
E OSError: [Errno 40] Too many levels of symbolic links: '/home/florian/proj/pytest/tests/recursive'
This is fixed by handling ELOOP and other errors in the visit function in
pathlib.py, so the entries whose is_file() call raises an OSError with the
pre-defined list of error numbers will be exluded from the result.
The _ignore_errors function was copied from Lib/pathlib.py of cpython 3.9.
Fixes #7951
2020-10-31 17:40:56 +01:00
Ran Benita
1c18fb8ccc
Merge pull request #7553 from tirkarthi/namedtuple-diff
...
Add support to display field names in namedtuple diffs.
2020-10-31 15:02:31 +02:00
Karthikeyan Singaravelan
9a0f4e57ee
Add support to display field names in namedtuple diffs.
2020-10-31 14:41:53 +02:00
Ran Benita
6cdae8ed40
pathlib: fix symlinked directories not followed during collection
2020-10-31 14:22:15 +02:00
Ran Benita
531416cc5a
code: simplify Code construction
2020-10-31 12:40:25 +02:00
Ran Benita
6506f016ac
testing/test_source: use unqualified imports
2020-10-31 12:40:25 +02:00
Ran Benita
a1df458e85
code: use properties for derived attributes, use slots
...
Make the objects more light weight.
Remove unused properties.
2020-10-31 12:40:25 +02:00
Ariel Pillemer
a7e38c5c61
pytest-dev#7942 test_runner_xunit.py ( #7964 )
2020-10-31 12:38:11 +02:00
crricks
3c7eb5a398
migrated test_nodes.py from testdir to pytester #7492 . ( #7969 )
2020-10-30 22:34:05 +02:00
Ran Benita
ad94456ca0
Merge pull request #7976 from symonk/7942-refactor-stepwise-to-use-pytester
...
#7942 refactor stepwise tests to utilize pytester
2020-10-30 22:15:12 +02:00
Christine Mecklenborg
aa843746a4
Migrate test_error_diffs.py from testdir to pytester ( #7971 )
2020-10-30 22:12:40 +02:00
symonk
c58abf7ad1
#7942 refactor stepwise tests to utilize pytester
2020-10-30 19:21:42 +00:00
Simon K
6cddeb8cb3
#7938 - [Plugin: Stepwise][Enhancements] Refactoring, smarter registration & --sw-skip functionality ( #7939 )
...
* adding --sw-skip shorthand for stepwise skip
* be explicit rather than implicit with default args for stepwise
* add constant for sw cache dir; only register plugin if necessary rather check check activity always;
* use str format; remove unused args in hooks
* assert cache upfront, allow stepwise to have a reference to the cache
* type hinting lf, skip, move literal strings into module constants
* convert parametrized option into a list
* add a sessionfinish hook for stepwise to keep backwards behaviour the same
* add changelog for #7938
* Improve performance of stepwise modifyitems & address PR feedback
* add test for stepwise deselected based on performance enhancements
* Apply suggestions from code review
* delete from items, account for edge case where failed_index = 0
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2020-10-30 19:13:06 +00:00
Christine Mecklenborg
47ff911c8f
Migrate test_assertion.py from testdir to pytester
2020-10-29 20:39:44 -05:00
Christine Mecklenborg
65148e3120
Migrate test_compat.py from testdir to pytester ( #7963 )
2020-10-29 09:56:34 +02:00
Christine Mecklenborg
460b51dd95
Migrate test_setuponly.py from testdir to pytester ( #7959 )
2020-10-29 09:55:30 +02:00
Christine Mecklenborg
efe470bf1c
Migrate test_assertrewrite.py from testdir to pytester ( #7952 )
2020-10-29 09:54:34 +02:00
Christine M
8d369f73ba
Migrate test_skipping.py from testdir to pytester ( #7953 )
2020-10-28 17:05:54 +02:00
Ran Benita
78c09b9931
Merge pull request #7944 from symonk/refactor-test-mark-to-use-pytester
...
Refactor test_warning_types.py & test_mark.py to use pytester
2020-10-27 21:06:42 +02:00
symonk
434e30424e
Address feedback for converting testdir to pytester
2020-10-27 17:50:54 +00:00
Mikhail Fesenko
cd9b3618c7
#7942 test_helpconfig.py migrate from testdir to pytester
2020-10-26 18:30:48 +03:00
Ran Benita
c31f4dc112
testing: make conftest stuff check for pytester not testdir
...
testdir uses pytester so this applies to it as well, but now includes
pytester as well.
2020-10-26 15:01:38 +02:00
dependabot[bot]
f7c5067823
build(deps): bump pytest-django in /testing/plugins_integration
...
Bumps [pytest-django](https://github.com/pytest-dev/pytest-django ) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/pytest-dev/pytest-django/releases )
- [Changelog](https://github.com/pytest-dev/pytest-django/blob/master/docs/changelog.rst )
- [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.0.0...v4.1.0 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-10-26 03:15:50 +00:00
symonk
cde50db6e7
add type hint to parametrized warning_class
2020-10-25 18:31:43 +00:00