Ran Benita
2b05faff0a
Improve types around repr_failure()
2020-06-05 11:34:20 +03:00
Ran Benita
90e58f8961
Type annotate some parts related to runner & reports
2020-06-05 11:34:20 +03:00
Ran Benita
247c4c0482
Type annotate some more hooks & impls
2020-06-05 11:34:19 +03:00
Ran Benita
be00e12d47
Type annotate main.py and some parts related to collection
2020-06-05 11:34:19 +03:00
Ran Benita
0fb081aec6
Type annotate some hookspecs & impls
...
Annotate some "easy" arguments of hooks that repeat in a lot of internal
plugins.
Not all of the arguments are annotated fully for now.
2020-06-05 11:34:19 +03:00
Ran Benita
43fa1ee8f9
Type annotate some misc places with no particular connection
2020-06-05 11:34:19 +03:00
Bruno Oliveira
1780924b27
Introduce _pytest.timing as a way to control timing during tests
...
_pytest.timing is an indirection to 'time' functions, which pytest production
code should use instead of 'time' directly.
'mock_timing' is a new fixture which then mocks those functions, allowing us
to write time-reliable tests which run instantly and are not flaky.
This was triggered by recent flaky junitxml tests on Windows related to timing
issues.
2020-05-23 11:50:33 -03:00
Ran Benita
59a12e9ab3
Replace bare `except`s with `except BaseException`
...
Mostly I wanted to remove uses of `noqa`.
In Python 3 the two are the same.
2020-05-12 09:29:47 +03:00
Ran Benita
1bc4170e63
terminalwriter: don't flush implicitly; add explicit flushes
...
Flushing on every write is somewhat expensive.
Rely on line buffering instead (if line buffering for stdout is
disabled, there must be some reason...), and add explicit flushes when
not outputting lines.
This is how regular `print()` e.g. work so should be familiar.
2020-04-30 16:44:03 +03:00
Ran Benita
c3e6e2e8c8
Fix flaky TestDurations test
...
TestDurations tests the `--durations=N` functionality which reports N
slowest tests, with durations <= 0.005s not shown by default.
The test relies on real time.sleep() (in addition to the code which uses
time.perf_counter()) which makes it flaky and inconsistent between
platforms.
Instead of trying to tweak it more, make it use fake time instead. The
way it is done is a little hacky but seems to work.
2020-04-06 23:49:46 +03: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
aae0579bcd
doc: use `envvar` directive for environment variables ( #6874 )
...
This changes the link anchors in "reference.html", from e.g.
`reference.html#pytest-current-test` to
`reference.html#envvar-PYTEST_CURRENT_TEST`, but I think that is OK, and
not worth adding labels for the old anchors.
2020-03-27 02:40:25 +01:00
Ran Benita
978b315861
Simplify some exception handling code
...
Mostly avoid unnecessary usage of sys.exc_info(). Since Python3,
exception objects themselves have all that's needed. They are also
easier to type.
2020-03-07 13:18:54 +02:00
Daniel Hahler
b11bfa106c
Use attrs with all Repr classes ( #6739 )
...
Co-authored-by: Ran Benita <ran234@gmail.com>
2020-03-03 21:53:28 +01:00
Ran Benita
371939fb86
Avoid getattr when dispatching pytest_runtest_* hooks
...
Using getattr doesn't work with typing, and also breaks grep. It took me
a while to find where these hooks are called.
2020-02-15 15:34:21 +02:00
Ran Benita
0b2b40e35d
Remove some redundant commas
...
Fix mypy errors:
src/_pytest/runner.py:36: error: "addoption" of "OptionGroup" does not return a value [func-returns-value]
src/_pytest/helpconfig.py:64: error: "addoption" of "OptionGroup" does not return a value [func-returns-value]
src/_pytest/terminal.py:67: error: "_addoption" of "OptionGroup" does not return a value [func-returns-value]
src/_pytest/terminal.py:75: error: "_addoption" of "OptionGroup" does not return a value [func-returns-value]
2020-02-10 17:28:05 +02:00
Daniel Hahler
09e9a01df3
typing: fix _TracebackStyle: add "line"
2020-01-19 11:22:47 +01:00
Daniel Hahler
4630e2725e
Use `TYPE_CHECKING` instead of `False`
...
This allows for e.g. Jedi to infer types (it checks the name).
It was only used to support Python 3.5.0/3.5.1, where this is is not
available in the `typing` module.
Ref: https://github.com/davidhalter/jedi/issues/1472
Uses `TYPE_CHECKING = False` in `_pytest.outcomes` to avoid having to
work around circular import.
2020-01-16 16:11:39 +01:00
Ran Benita
090e260517
master: update mypy 0.740 -> 0.761
...
(cherry picked from commit 16ff9f591e
)
(cherry picked from commit 4848bbdf9a
)
2020-01-14 06:31:41 +01:00
Mark Dickinson
2ffbe41ae5
clear sys.last_traceback via del instead of = None
2019-11-21 13:06:47 +00:00
Daniel Hahler
741f0fedd1
typing around Node.location, reportinfo, repr_excinfo etc
2019-11-05 16:22:58 +01:00
Daniel Hahler
15f9568694
Improve/revisit CallInfo.__repr__
2019-10-19 19:07:11 +02:00
Bruno Oliveira
7bdfba3578
Fix --setup-only and --setup-show for custom pytest items
...
Fix #5884
2019-09-28 11:52:09 -03:00
Ran Benita
7259c453d6
Fix some check_untyped_defs = True mypy warnings
2019-08-16 10:41:57 +03:00
Ran Benita
0b532fda76
Remove unnecessary checks from SetupState
...
Since 4622c28ffd
, _finalizers cannot
contain Nones or tuples, so these checks are not longer needed.
2019-07-17 22:39:10 +03:00
Bruno Oliveira
24a66db8d3
Remove support code for unittest 2
...
Also moved a pytest_runtest_makereport hook implemented in
nose.py, but nowadays makes more sense to be implemented in
unittest.py
2019-07-11 20:11:06 -03:00
Anthony Sottile
5dcf85c17e
manual: remove dependence on six
2019-06-03 12:08:02 -03:00
Anthony Sottile
a91fe1fedd
pre-commit run pyupgrade --all-files
2019-06-03 12:08:02 -03:00
Anthony Sottile
3f1ec520fc
pre-commit run reorder-python-imports --all-files
2019-06-03 12:08:01 -03:00
Anthony Sottile
5034399d7a
pre-commit run fix-encoding-pragma --all-files
2019-06-03 12:08:01 -03:00
Anthony Sottile
dc75b6af47
Use fix-encoding-pragma pre-commit hook
2019-05-14 15:56:31 -07:00
Daniel Hahler
7538aa7bb9
minor: check_interactive_exception: use Skipped
2019-04-03 11:45:45 +02:00
Daniel Hahler
553951c443
Fix some issues related to "-p no:X" with default_plugins
2019-03-21 17:01:50 +01:00
Bruno Oliveira
1a119a22d1
Internal refactorings in order to support the new pytest-subtests plugin
...
Related to #1367
2019-03-19 18:20:41 -03:00
Anthony Sottile
e5f823a3a7
fixes for flake8 3.7
2019-01-29 21:11:15 -08:00
Daniel Hahler
fc4aa27cae
Derive outcomes.exit.Exception from SystemExit instead of KeyboardInterrupt
...
This is required for properly getting out of pdb, where
KeyboardInterrupt is caught in py36 at least.
Ref: https://github.com/pytest-dev/pytest/issues/1865#issuecomment-242599949
2018-12-11 04:22:33 +01:00
Ronny Pfannschmidt
847eacea19
refactor CallInfo constructor magic into named constructor
2018-11-30 13:21:54 +01:00
Ronny Pfannschmidt
88bf01a31e
fix #4386 - restructure construction and partial state of ExceptionInfo
2018-11-22 21:20:32 +01:00
Bruno Oliveira
e025974cbd
Merge remote-tracking branch 'upstream/master' into release-4.0.0
2018-11-13 20:58:24 +00:00
Daniel Hahler
27dab4e05f
Fix CallInfo.__repr__ for unfinished call
...
Fixes https://github.com/pytest-dev/pytest/issues/3554
Ref: https://github.com/pytest-dev/pytest/pull/3560
Ref: https://github.com/pytest-dev/pytest/pull/3562
2018-11-13 08:51:43 +01:00
Daniel Hahler
ac8b9c6e9d
Node: do not add "::()" to nodeid
...
Fixes https://github.com/pytest-dev/pytest/issues/4127 .
2018-11-10 23:46:41 +01:00
Anthony Sottile
2368fbb63c
Apply reorder-python-imports to all files
2018-10-25 00:01:29 -07:00
Bruno Oliveira
3683d92c53
Adjust the 'durations hidden' message
2018-10-13 18:40:32 -03:00
Jeffrey Rackauckas
7a271a91b0
Fix rounding error when displaying durations in non-verbose mode.
2018-10-13 12:55:17 -07:00
Jeffrey Rackauckas
47f5c29002
Update messaging for --durations when not in verbose mode.
2018-10-13 12:51:04 -07:00
Jeffrey Rackauckas
fc11b81005
Exclude durations that are 0.00 seconds long.
2018-10-07 19:19:48 -07:00
Anthony Sottile
7099ea9bb0
py.builtin._reraise -> six.reraise
2018-08-22 23:00:58 -07:00
Ronny Pfannschmidt
2dfb52f7e0
fix rebase artifacts
2018-06-26 22:10:26 +02:00
Ronny Pfannschmidt
cc6eb9f83c
move test reports to own file
2018-06-26 22:09:15 +02:00
Anthony Sottile
cbaa7dd56a
Upgrade pre-commit hooks except pyupgrade
2018-06-26 06:35:27 -07:00
Guoqiang Zhang
a888bf182e
Continue to call finalizers in the stack when a finalizer in a former scope raises an exception
2018-06-11 18:01:18 -04:00
Ronny Pfannschmidt
eaa882f3d5
switch to src layout
2018-05-26 09:10:38 +02:00