Katarzyna Król
7789b51acb
Issue 4677 - always relative path in skip report ( #6953 )
2020-04-17 08:28:36 +03:00
Simon K
de6c28ed1f
Improve error handling around yieldctx fixtures which do not yield a value ( #7083 )
2020-04-15 12:17:13 +03:00
Simon K
6fd30134d3
Update changelog/4583.bugfix.rst
...
Co-Authored-By: Ran Benita <ran@unusedvar.com >
2020-04-13 14:29:59 +01:00
symonk
87edc09dea
Gracefully handle eval() failure(s) for marker expressions
2020-04-13 13:25:06 +01:00
Ronny Pfannschmidt
19c243f0fa
Merge pull request #6285 from earonesty/patch-1
...
Add _pytest.fixtures.FixtureLookupError to top level import
2020-04-10 07:58:58 +02:00
Ronny Pfannschmidt
c5d636a1b2
Merge pull request #6992 from pytest-dev/revert-6767-tmpdir-cleanup-upstream
...
Revert "tmpdir: clean up indirection via config for factories"
2020-04-10 07:49:52 +02:00
Ronny Pfannschmidt
1eb2b45db5
Revert "tmpdir: clean up indirection via config for factories ( #6767 )"
...
This reverts commit 8a1633c3b4 .
+ add changelog
2020-04-10 07:18:54 +02:00
Daniel Hahler
20f6331afd
Fix TerminalRepr instances to be hashable ( #6988 )
...
pytest-xdist assumes `ExceptionChainRepr` is hashable.
Fixes https://github.com/pytest-dev/pytest/issues/6925 .
Fixes https://github.com/pytest-dev/pytest-xdist/issues/515 .
2020-04-03 00:56:53 +02:00
Ronny Pfannschmidt
2d9dac95ec
Merge pull request #6927 from RonnyPfannschmidt/fix-6924-run-async-stdlib-unittests
...
running stdlib asyncio unittests again
2020-03-30 22:34:17 +02:00
Ronny Pfannschmidt
451aef65ac
prepare tests and disable warnings for asyncio unittest cases
...
shoehorn unittest async results into python test result interpretation
changelog
2020-03-30 21:55:12 +02:00
Ronny Pfannschmidt
f1d51ba1f5
deprecate the pytest.collect module
...
changelog
minimal unittest for collect module deprecations
\!fixup - changelog typo
2020-03-30 21:53:07 +02:00
Ronny Pfannschmidt
eab2831671
fix #6951 : allow to write TerminalReporter.writer
2020-03-30 21:31:53 +02:00
smarie
95fadd5740
Improved time counter used to compute test durations. ( #6939 )
...
Co-authored-by: Sylvain MARIE <sylvain.marie@se.com >
Co-authored-by: Ran Benita <ran@unusedvar.com >
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com >
2020-03-29 15:20:09 +03:00
Daniel Hahler
1fda861190
Fix crash when printing while capsysbinary is active
...
Previously, writing to sys.stdout/stderr in text-mode (e.g.
`print('foo')`) while a `capsysbinary` fixture is active, would crash
with:
/usr/lib/python3.7/contextlib.py:119: in __exit__
next(self.gen)
E TypeError: write() argument must be str, not bytes
This is due to some confusion in the types. The relevant functions are
`snap()` and `writeorg()`. The function `snap()` returns what was
captured, and the return type should be `bytes` for the binary captures
and `str` for the regular ones. The `snap()` return value is eventually
passed to `writeorg()` to be written to the original file, so it's input
type should correspond to `snap()`. But this was incorrect for
`SysCaptureBinary`, which handled it like `str`.
To fix this, be explicit in the `snap()` and `writeorg()`
implementations, also of the other Capture types.
We can't add type annotations yet, because the current inheritance
scheme breaks Liskov Substitution and mypy would complain. To be
refactored later.
Fixes: https://github.com/pytest-dev/pytest/issues/6871
Co-authored-by: Ran Benita (some modifications & commit message)
2020-03-16 18:21:33 +02:00
Bruno Oliveira
2eedf9c2aa
Merge pull request #6910 from nicoddemus/resultlog-logreport
...
Handle unknown stats in pytest_report_teststatus hook
2020-03-13 09:30:04 -03:00
Ran Benita
6e70fecbe4
Merge pull request #6903 from bluetech/assume-dup
...
Assume os.dup is always available
2020-03-13 11:01:44 +02:00
Bruno Oliveira
0c58ed2cc0
Handle unknown stats in pytest_report_teststatus hook
...
Noticed that the pytest_report_teststatus of reportlog was not properly
handling unknown statuses while taking a look at:
https://github.com/pytest-dev/pytest-rerunfailures/issues/103
2020-03-12 20:52:22 -03:00
Ran Benita
6954b3b0dc
Assume os.dup is always available
...
The commit which added the checks for os.dup a15afb5e48
suggests it was done for Jython. But pytest doesn't support Jython
anymore (Jython is Python 2 only).
Furthermore, it looks like the faulthandler plugin (bundled in pytest
and enabled by default) uses os.dup() unprotected and there have not
been any complaints.
So seems better to just remove these checks, and only add if someone
with a legitimate use case complains.
2020-03-12 16:47:15 +02:00
pytest bot
c9fd1bdbd6
Preparing release version 5.4.0
2020-03-12 14:14:35 +00:00
Daniel Hahler
acec0b688f
Fix usage of pytester with doctests ( #6802 )
...
Use `request.node.name` instead of `request.function.__name__`:
`request.function` is `None` with `DoctestItem`s.
2020-03-04 05:33:50 +01:00
Ronny Pfannschmidt
9fd71d6fe0
fix #571 : deprecate pytest_collect_directory as ... ( #6847 )
...
Deprecate pytest_collect_directory
Fix #571
Co-authored-by: Daniel Hahler <github@thequod.de >
2020-03-03 18:58:14 -03:00
Bruno Oliveira
a03e076e89
Update changelog/6285.feature.rst
...
Co-Authored-By: Ran Benita <ran234@gmail.com >
2020-03-03 09:59:38 -03:00
earonesty
0f00495548
Create 6285.feature.rst
2020-03-03 09:59:38 -03:00
Ronny Pfannschmidt
194b52145b
Merge pull request #6834 from RonnyPfannschmidt/fix-6833-summarize-warning-item-locations
...
summarize warning summaries if the number of locations is high
2020-03-01 20:21:36 +01:00
Ronny Pfannschmidt
23c43a37e0
summarize warning summaries if the number of locations is high
2020-03-01 14:08:15 +01:00
Bruno Oliveira
ff7b5dbbde
Merge pull request #6784 from nicoddemus/deprecate-terminal-writer
...
Deprecate TerminalReporter.writer
2020-02-28 21:07:02 -03:00
Daniel Hahler
4b53bbc0a9
docs: use doc/en/_build/html for html output ( #6842 )
...
This will use the same directory as `make -C doc/en` then, and reflects
the default location that Sphinx uses.
2020-02-29 00:47:30 +01:00
Daniel Hahler
5819536f00
Improve UsageError with invalid -o style ( #6795 )
...
This started from fixing the test, where `"xdist_strict True"` was used
as a single argument, although you typically would see `["xdist_strict",
"True"]`.
Improves the error message to mention the option that caused the error.
2020-02-28 19:41:56 +01:00
Daniel Hahler
ac3a42bafd
doctest: strip newlines with unexpected exceptions ( #6801 )
2020-02-24 15:18:08 +01:00
Daniel Hahler
c8b4a1a471
Handle match with pytest.raises() ( #6753 )
...
Fixes https://github.com/pytest-dev/pytest/issues/6752 .
2020-02-22 23:32:55 +01:00
Daniel Hahler
68fe0eb8f3
Minor cosmetic fixes ( #6792 )
2020-02-22 19:24:41 +01:00
kpinc
eeebcd77dd
doc: add list of fixtures to start of fixture chapter ( #6696 )
...
- Add list of fixtures to start of fixture chapter
- Add "fixture" cross ref type
2020-02-22 14:56:19 +01:00
Daniel Hahler
2277817176
Fix grammar in changelog/6737.breaking.rst
2020-02-22 13:15:17 +01:00
Bruno Oliveira
435ad221f9
Deprecate TerminalReporter.writer
...
Fix #6779
2020-02-20 21:04:49 -03:00
Daniel Hahler
1b30514783
LFPlugin: use sub-plugins to deselect during collection ( #6448 )
...
Fixes https://github.com/pytest-dev/pytest/issues/5301 .
Refactor/steps:
- use var
- harden test_lastfailed_usecase
- harden test_failedfirst_order
- revisit last_failed_paths
- harden test_lastfailed_with_known_failures_not_being_selected
2020-02-19 21:33:03 +01:00
Daniel Hahler
f95c7f5803
doctest: handle any OutcomeException ( #6669 )
...
Fixes using `pytest.xfail()` and `pytest.importorskip()` in doctests.
Ref: https://github.com/pytest-dev/pytest/issues/310
2020-02-19 13:16:37 +01:00
Daniel Hahler
369284752e
terminal: refactor, no yellow ("boring") for non-last item ( #6409 )
2020-02-15 19:00:24 +01:00
Daniel Hahler
e872532d0c
Merge branch 'master' into term-color
...
Conflicts:
src/_pytest/terminal.py
testing/test_debugging.py
testing/test_terminal.py
2020-02-15 18:46:29 +01:00
kpinc
9785ee438d
doc: expand first sentence on fixtures into a paragraph ( #6742 )
2020-02-15 18:35:36 +01:00
Ran Benita
d839686c7b
Don't delete FixtureDef.cached_result, set it to None instead
...
Previously `cached_result` was either set or deleted. Type annotations
cannot handle this, so use `None` for the non-set state instead.
2020-02-14 14:18:58 +02:00
Bruno Oliveira
e6ea9edffe
Merge pull request #6673 from sscherfke/features
...
Reverse / fix meaning of "+/-" in error diffs
2020-02-12 15:05:38 -03:00
Ran Benita
c9f9664336
Merge branch 'features' into master
...
The features branch is no more. Development of features is now also done
on master.
See https://github.com/pytest-dev/pytest/pull/6571 .
2020-02-12 13:50:02 +02:00
Bruno Oliveira
4209ad6fca
Use code highlighting if pygments is installed ( #6658 )
...
* Use code highlighting if pygments is installed
* Use colorama constants instead of bare ascii codes
Could not find the exact equivalent of 'hl-reset' code using colorama
constants though.
* Refactor ASCII color handling into a fixture
* Revert back to using explicit color codes
* In Python 3.5 skip rest of tests that require ordered markup in colored output
2020-02-12 08:32:37 -03:00
Bruno Oliveira
3ea74310d7
Fix crash when faulthandler starts initialized ( #6598 )
...
Use suggestion in review and use a subplugin so hooks will only be active
if we enable faulthandler ourselves.
Fix #6575
Co-authored-by: Daniel Hahler <git@thequod.de >
2020-02-12 11:06:20 +01:00
Bruno Oliveira
78baa7b575
Merge remote-tracking branch 'upstream/master' into mm
...
Conflicts:
src/_pytest/main.py
src/_pytest/mark/structures.py
src/_pytest/python.py
testing/test_main.py
testing/test_parseopt.py
2020-02-11 19:22:28 -03:00
Stefan Scherfke
d59adc61f9
Reverse / fix meaning of "+/-" in error diffs
...
The convention is "assert result is expected". Pytest's error diffs now
reflect this. "-" means that sth. expected is missing in the result and
"+" means that there are unexpected extras in the result.
Fixes : #3333
2020-02-10 21:12:37 +01:00
Daniel Hahler
a8fc056aad
Handle Exit exception in pytest_sessionfinish ( #6660 )
2020-02-07 00:40:10 +01:00
Vladyslav Rachek
9e262038c8
[parametrize] enforce explicit argnames declaration ( #6330 )
...
Every argname used in `parametrize` either must
be declared explicitly in the python test function, or via
`indirect` list
Fix #5712
2020-02-06 20:20:25 -03:00
Daniel Hahler
39d9f7cff5
pytester: LineMatcher: typing, docs, consecutive line matching ( #6653 )
2020-02-04 22:47:18 +01:00
Daniel Hahler
aa0328782f
assertion: save/restore hooks on item ( #6646 )
2020-02-04 02:56:23 +01:00