Ran Benita
11f1f79222
Allow creating ExceptionInfo from existing exc_info for better typing
...
This way the ExceptionInfo generic parameter can be inferred from the
passed-in exc_info. See for example the replaced cast().
2019-07-14 14:28:24 +03:00
Ran Benita
3f1fb62584
Rework ExceptionInfo to not require manual __init__ call
...
Mypy doesn't like calling __init__() in this way.
2019-07-14 14:28:24 +03:00
Ran Benita
14bf4cdf44
Make ExceptionInfo generic in the exception type
...
This way, in
with pytest.raises(ValueError) as cm:
...
cm.value is a ValueError and not a BaseException.
2019-07-14 14:28:24 +03:00
Ran Benita
56dcc9e1f8
Type-annotate pytest.raises
2019-07-14 14:28:24 +03:00
Ran Benita
866904ab80
Revert "Let context-managers for raises and warns handle unknown keyword arguments"
...
This reverts commit dfe54cd82f
.
The idea in the commit was to simplify the code by removing the check
and instead letting it TypeError which has the same effect.
However this type error is caught by mypy, and rather than ignoring the
error we think it's better and clearer to go back to the previous
explicit check.
2019-07-14 14:28:21 +03:00
Ran Benita
f7747f5dd6
Remove references to old-style classes in a couple error messages
...
These don't exist in Python 3.
2019-07-10 20:25:45 +03:00
Bruno Oliveira
31738155b5
Remove deprecated features ( #5529 )
...
Remove deprecated features
2019-07-09 19:04:06 -03:00
Ran Benita
c1167ac552
Add rudimentary mypy type checking
...
Add a very lax mypy configuration, add it to tox -e linting, and
fix/ignore the few errors that come up. The idea is to get it running
before diving in too much.
This enables:
- Progressively adding type annotations and enabling more strict
options, which will improve the codebase (IMO).
- Annotating the public API in-line, and eventually exposing it to
library users who use type checkers (with a py.typed file).
Though, none of this is done yet.
Refs https://github.com/pytest-dev/pytest/issues/3342 .
2019-07-09 10:49:17 +03:00
Bruno Oliveira
dfe54cd82f
Let context-managers for raises and warns handle unknown keyword arguments
...
As suggested during review
2019-07-03 13:57:28 -03:00
Bruno Oliveira
683b2632b4
Remove explicit kwargs handling from raises, warns and ParameterSet.param
2019-06-30 13:18:06 -03:00
Bruno Oliveira
13f7f27fd2
Remove 'message' parameter from pytest.raises
2019-06-30 13:18:06 -03:00
Bruno Oliveira
279733a30b
Remove support for 'code as string' from pytest.raises and pytest.warns
2019-06-30 11:40:24 -03:00
Bruno Oliveira
177af032d2
Remove unused/unneeded code
2019-06-15 10:45:16 -03:00
Bruno Oliveira
355eb5adfb
Small cleanups on _pytest.compat
...
Small improvements and cleanups
2019-06-15 10:06:37 -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
Bruno Oliveira
4d49ba6529
Drop Python 2.7 and 3.4 support
...
* Update setup.py requires and classifiers
* Drop Python 2.7 and 3.4 from CI
* Update docs dropping 2.7 and 3.4 support
* Fix mock imports and remove tests related to pypi's mock module
* Add py27 and 34 support docs to the sidebar
* Remove usage of six from tmpdir
* Remove six.PY* code blocks
* Remove sys.version_info related code
* Cleanup compat
* Remove obsolete safe_str
* Remove obsolete __unicode__ methods
* Remove compat.PY35 and compat.PY36: not really needed anymore
* Remove unused UNICODE_TYPES
* Remove Jython specific code
* Remove some Python 2 references from docs
Related to #5275
2019-06-02 14:39:11 -03:00
Bruno Oliveira
66f20b6f5e
Fix invalid Python file encoding "utf8" ( #5252 )
...
Fix invalid Python file encoding "utf8"
2019-05-23 20:24:23 -03:00
Tim Hoffmann
b27e40cbf1
Fix documentation of pytest.raises(match=...)
2019-05-19 16:01:48 +02:00
Anthony Sottile
dc75b6af47
Use fix-encoding-pragma pre-commit hook
2019-05-14 15:56:31 -07:00
Anthony Sottile
d1a48ad68f
Use exec directly
2019-05-06 23:07:39 -07:00
Bruno Oliveira
d3686361ba
Fix linting
2019-05-07 00:52:40 +00:00
Peter Schutt
8605ed2a15
Update python_api.py
2019-05-07 10:10:25 +10:00
Peter Schutt
8b34d981fc
Clarify docs for pytest.raises `match`.
...
For #5208 .
Document explicit behavior of `match` and brief note on how to handle matching a string that may contain special re chars.
2019-05-07 09:56:13 +10:00
Bruno Oliveira
784e1e3b7e
Add links to pytest.raises `message` workaround
...
Related to #3974
2019-05-06 12:35:27 -03:00
Anthony Sottile
43e7401c91
Produce a warning when unknown arguments are passed to pytest.param()
2019-04-12 13:00:39 -07:00
Arel Cordero
fd4289dae0
Adding `does_not_raise` to documentation only
2019-01-27 16:42:10 +00:00
Arel Cordero
977adf1354
Improving sphinx docs based on feedback
2019-01-27 16:41:23 +00:00
Arel Cordero
afe9fd5ffd
Adds `does_not_raise` context manager
...
Addressing issues #4324 and #1830
2019-01-27 16:40:35 +00:00
Bruno Oliveira
42bb0b3904
Use a.item() instead of deprecated np.asscalar(a)
...
np.asscalar() has been deprecated in numpy 1.16:
https://github.com/numpy/numpy/blob/master/doc/release/1.16.0-notes.rst#new-deprecations
2019-01-14 08:59:09 -02:00
Ronny Pfannschmidt
e63c7a13ff
Merge pull request #4327 from ndevenish/approx
...
Let approx() work on more generic sequences
2018-12-17 15:21:12 +01:00
Daniel Hahler
8e287c5c77
Merge master into features
2018-12-14 16:44:43 +01:00
Bruno Oliveira
5b83417afc
Deprecate the 'message' parameter of pytest.raises
...
Fix #3974
2018-12-12 22:26:30 -02:00
Anthony Sottile
a254ad0436
Raise `TypeError` for `with raises(..., match=<non-None falsey value>)`.
2018-12-12 14:59:22 -08:00
Anthony Sottile
1bba0a9714
Deprecate `raises(..., 'code(as_a_string)')` / `warns(..., 'code(as_a_string)')
2018-11-29 09:34:51 -08:00
Daniel Hahler
5bee396e4b
Merge master into merge-master-into-features
2018-11-24 13:47:10 +01:00
Anthony Sottile
0d5298475d
Fix `raises(..., "code(string)")` frame filename.
2018-11-23 15:01:35 -08:00
Ronny Pfannschmidt
88bf01a31e
fix #4386 - restructure construction and partial state of ExceptionInfo
2018-11-22 21:20:32 +01:00
Nicholas Devenish
1a8d9bf254
Let approx() work on more generic sequences
...
approx() was updated in 9f3122fe
to work better with numpy arrays,
however at the same time the requirements were tightened from
requiring an Iterable to requiring a Sequence - the former being
tested only on interface, while the latter requires subclassing or
registration with the abc.
Since the ApproxSequence only used __iter__ and __len__ this commit
reduces the requirement to only what's used, and allows unregistered
Sequence-like containers to be used.
Since numpy arrays qualify for the new criteria, reorder the checks so
that generic sequences are checked for after numpy arrays.
2018-11-18 20:01:11 +00:00
Anthony Sottile
2368fbb63c
Apply reorder-python-imports to all files
2018-10-25 00:01:29 -07:00
Anthony Sottile
c2cd337886
py.builtin.exec_ => six.exec_
2018-08-22 23:00:06 -07:00
Bruno Oliveira
5db2e6c7a1
Merge pull request #3761 from nicoddemus/numpy-recursion-error
...
Fix recursion in pytest.approx() with arrays in numpy<1.13
2018-08-01 23:40:30 -03:00
Kale Kundert
b8255308d6
Make the infinite-recusrion fix more explicit.
...
So we remember what happened and don't accidentally regress in the
future.
2018-08-01 12:11:03 -07:00
Bruno Oliveira
a5c0fb7f6b
Rename recursive_map -> _recursive_list_map as requested in review
2018-08-01 15:17:58 -03:00
Bruno Oliveira
7d13599ba1
Fix recursion in pytest.approx() with arrays in numpy<1.13
2018-08-01 08:04:09 -03:00
Bruno Oliveira
2a2f888909
Move recursive_map from local to free function
2018-08-01 07:30:40 -03:00
Bruno Oliveira
ad5ddaf55a
Simplify is_numpy_array as suggested in review
2018-08-01 07:28:39 -03:00
Bruno Oliveira
5003bae0de
Fix 'at' string for non-numeric messages in approx()
2018-08-01 07:07:37 -03:00
Bruno Oliveira
611d254ed5
Improve error checking messages: add position and use pprint
2018-08-01 07:01:00 -03:00