Daniel Hahler
12c5a6af64
typing: fix Code.path
...
Fixes:
> src/_pytest/_code/code.py:83: error: Incompatible types in assignment
> (expression has type "str", variable has type "local") [assignment]
2020-01-28 01:49:45 +01:00
Daniel Hahler
09bdbffbde
Merge master into features
...
Conflicts:
src/_pytest/_code/code.py
src/_pytest/main.py
2020-01-24 23:44:50 +01:00
Daniel Hahler
03bc8aba4e
config: typing for create_terminal_writer, re-export TerminalWriter
...
This also imports `TerminalWriter` explicitly via `_pytest._io`,
allowing for easier extending / replacing it.
2020-01-23 14:09:37 +01:00
Daniel Hahler
8521503246
Merge pull request #6527 from blueyed/typing-getfslineno
...
typing: fix/adjust _code.source.getfslineno
2020-01-23 13:17:47 +01:00
Bruno Oliveira
93b74d28d2
Merge remote-tracking branch 'upstream/master' into mm
...
Conflicts:
* src/_pytest/_code/code.py
* src/_pytest/main.py
* testing/python/metafunc.py
* testing/test_parseopt.py
* testing/test_pytester.py
2020-01-22 11:03:45 -03:00
Daniel Hahler
62db3f7abc
typing: fix/adjust _code.source.getfslineno
2020-01-21 19:48:17 +01:00
Daniel Hahler
7ee27fedee
doc: fix Code.path: might return str
2020-01-21 19:46:43 +01:00
Ran Benita
0c247be769
Add a few missing type annotations in _pytest._code
...
These are more "dirty" than the previous batch (that's why they were
left out). The trouble is that `compile` can return either a code object
or an AST depending on a flag, so we need to add an overload to make the
common case Union free. But it's still worthwhile.
2020-01-19 19:39:14 +02:00
Ran Benita
3e6f0f34ff
Cleanup unhelpful alias _AST_FLAG
...
Also replace one direct call to `compile` with this flag with the
equivalent wrapper `ast.parse`. This function can have a more precise
type.
2020-01-19 19:19:34 +02:00
Daniel Hahler
32b62f770f
Merge pull request #6509 from blueyed/typing-minor
...
typing: minor improvements
2020-01-19 11:33:41 +01:00
Daniel Hahler
09e9a01df3
typing: fix _TracebackStyle: add "line"
2020-01-19 11:22:47 +01:00
Daniel Hahler
5c445b05e7
typing: py.io.TerminalWriter for tw arguments
2020-01-19 11:21:16 +01:00
Daniel Hahler
1667cf3350
Merge pull request #6384 from pv/showlocals-short
...
Make --showlocals work together with --tb=short
Fixes https://github.com/pytest-dev/pytest/issues/494
Ref: https://github.com/pytest-dev/pytest/issues/1715
2020-01-16 22:04:14 +01:00
Daniel Hahler
83813bf515
Merge master into features
...
Conflicts:
.github/workflows/main.yml
2020-01-16 19:45:52 +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
Pauli Virtanen
fd1691a2b3
Make --showlocals work together with --tb=short
...
Enable showing local variables when asked to do so in the short
traceback mode.
Fixes #494
2020-01-14 21:30:58 +02: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
Bruno Oliveira
91a96ec3d6
Remove usage of parser module, deprecated in Python 3.9
...
Fix #6404
2020-01-06 08:57:07 -03:00
Bruno Oliveira
12f74a28fa
Revert "Remove unused _pytest.code.Source.isparseable function"
...
This reverts commit c627ac4e59
.
2020-01-05 14:12:40 -03:00
Bruno Oliveira
c627ac4e59
Remove unused _pytest.code.Source.isparseable function
...
Besides unused, it uses the (deprecated in Python 3.9) parser module
Fix #6404
2020-01-05 12:33:12 -03:00
Ran Benita
4848bbdf9a
Update mypy 0.750 -> 0.761
...
This fixes some type: ignores due to typeshed update.
Newer mypy seem to ignore unannotated functions better, so add a few
minor annotations so that existing correct type:ignores make sense.
2020-01-01 15:22:16 +02:00
Ran Benita
16ff9f591e
Update mypy 0.740 -> 0.750
...
Release notes:
https://mypy-lang.blogspot.com/2019/11/mypy-0.html
2019-12-02 21:52:11 +02:00
Ran Benita
eaa34a9df0
Add type annotations to _pytest._code.code
2019-11-16 22:29:57 +02:00
Ran Benita
a649f157de
Make Source explicitly implement __iter__()
...
Source was previously iterable because it implements `__getitem__()`,
which is apparently a thing from before `__iter__()` was introduced.
To reduce mypy's and my own confusion, implement `__iter__()` directly.
2019-11-16 17:22:10 +02:00
Ran Benita
307add025b
Simplify a FormattedExcinfo test
...
The previous test was better in that it used fakes to test all of the
real code paths. The problem with that is that it makes it impossible to
simplify the code with `isinstance` checks. So let's just simulate the
issue directly with a monkeypatch.
2019-11-16 17:22:09 +02:00
Ran Benita
04d68fbc9e
Remove checks for Python2-only fields im_func and func_code
2019-11-16 17:22:07 +02:00
Ran Benita
f760356578
A few linting fixes
...
Add some Python 3.8 type: ignores; all are already fixed in the next
mypy release, so can be removed once we upgrade.
Also move some flake8 ignores which seem to have changed places.
2019-11-16 17:22:06 +02:00
Ran Benita
58f2849bf6
Add type annotations to _pytest._code.source
...
At least most of it.
2019-11-07 14:13:47 +02:00
Daniel Hahler
4e45472405
Merge master into features
...
Conflicts:
src/_pytest/debugging.py
2019-11-06 14:22:07 +01:00
Daniel Hahler
741f0fedd1
typing around Node.location, reportinfo, repr_excinfo etc
2019-11-05 16:22:58 +01:00
Patrick Harmon
abc890079f
typos
2019-10-31 23:19:35 -05:00
Daniel Hahler
7f1af84f47
Merge master into features
...
Conflicts:
src/_pytest/logging.py
2019-10-27 02:06:36 +01:00
Ran Benita
0b8c35516f
Replace py.io.TextIO with io.StringIO
...
In Python3, py.io.TextIO is just an alias to io.StringIO. Remove the
indirection.
2019-10-26 16:33:57 +03:00
Daniel Hahler
cd753aa4ab
ExceptionInfo.from_current: pass through exprinfo
...
This was lost in 11f1f79222
.
2019-10-19 03:02:47 +02:00
Daniel Hahler
2a2fe7d3db
Improve ExceptionInfo.__repr__
2019-10-09 19:27:46 +02:00
Bruno Oliveira
c28e428249
Merge remote-tracking branch 'upstream/master' into mm
2019-08-26 20:00:30 -03:00
Ran Benita
9f3bfe82cf
Fix TypeError when importing pytest on Python 3.5.0 and 3.5.1
...
The typing module on these versions have these issues:
- `typing.Pattern` cannot appear in a Union since it is not considered a
class.
- `@overload` is not supported in runtime. (On the other hand, mypy
doesn't support putting it under `if False`, so we need some runtime
hack).
Refs #5751 .
2019-08-17 15:41:59 +03:00
Ran Benita
7259c453d6
Fix some check_untyped_defs = True mypy warnings
2019-08-16 10:41:57 +03:00
Ran Benita
8d413c1926
Allow tuple of exceptions in ExceptionInfo.errisinstance
...
isinstance() accepts it and some code does pass a tuple.
Fixup for commit 55a570e513
.
2019-07-17 22:39:10 +03:00
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
55a570e513
Type-annotate ExceptionInfo
2019-07-14 14:28:24 +03:00
Anthony Sottile
39a43dbae1
Merge pull request #5575 from bluetech/mypy-initial
...
Add rudimentary mypy type checking
2019-07-09 08:05:14 -07: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
Anthony Sottile
caa08ebd45
Improve quoting in raises match failure message
2019-07-04 05:55:26 -07:00
Daniel Hahler
e868bb647d
remove commented code
2019-06-09 12:51:32 +02:00
Bruno Oliveira
65c2a81924
Remove ExceptionInfo.__str__, falling back to __repr__
...
Fix #5412
2019-06-06 12:20:32 -03:00
Anthony Sottile
ca1efd57bd
git rm src/_pytest/_code/_py2traceback.py
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
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
Nikolay Kondratyev
bc00d0f7db
Fix handle repr error with showlocals and verbose output
2019-04-19 18:54:21 +03:00
Daniel Hahler
76c70cbf4c
Fix off-by-one error with lineno in mark collection error
2019-03-27 17:44:52 +01:00
Daniel Hahler
2d690b83bf
ExceptionInfo.from_current: assert current exception
2019-03-23 00:29:36 +01:00
Daniel Hahler
4d21dc4f2d
Optimize TracebackEntry.ishidden
...
The expected behavior is that there is no "__tracebackhide__" attribute,
so use `getattr` instead of multiple try/except.
2019-03-14 01:02:46 +01:00
Bruno Oliveira
ade5f2c8c5
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2019-01-29 19:36:56 -02:00
Anthony Sottile
0c6ca0da62
Fix usages of py.io.saferepr
2019-01-20 16:36:23 -08:00
Anthony Sottile
ec5e279f93
Remove and ban use of py.builtin
2019-01-20 11:59:48 -08:00
Anthony Sottile
16546b7342
Remove some dead code
...
- I wrote a thing: https://github.com/asottile/dead
- wanted to try it out, there's lots of false positives and I didn't look
through all the things it pointed out but here's some
2019-01-13 20:41:30 -08:00
Bruno Oliveira
2eaf3db6ae
Fix docstring indentation (docs env)
2018-11-22 20:21:22 -02:00
Ronny Pfannschmidt
88bf01a31e
fix #4386 - restructure construction and partial state of ExceptionInfo
2018-11-22 21:20:32 +01:00
Anthony Sottile
0d1f142b1c
Swallow warnings during anonymous compilation of source
2018-10-29 08:38:10 -07:00
Anthony Sottile
8c475a45bb
Unrelated cleanups of source.py
2018-10-28 16:43:17 -07:00
Anthony Sottile
2368fbb63c
Apply reorder-python-imports to all files
2018-10-25 00:01:29 -07:00
Bruno Oliveira
2cb3534679
Move filter_traceback to _pytest._code
2018-10-12 10:19:50 -03:00
Bruno Oliveira
36dc671843
New ExceptionInfo.getrepr 'chain' parameter to be able to suppress chained exceptions
2018-10-12 10:08:55 -03:00
Anthony Sottile
e5ab62b1b6
Remove (unused) offset= parameter from deindent()
2018-10-03 13:33:10 -07:00
Anthony Sottile
f102ccc8f0
Fix source reindenting by using `textwrap.dedent` directly.
2018-10-02 16:13:35 -07:00
Anthony Sottile
f2e35c8c4f
Merge pull request #3859 from asottile/pyupgrade_1_4
...
Some pyupgrade 1.4.x changes
2018-08-23 18:32:53 -07:00
Anthony Sottile
c2cd337886
py.builtin.exec_ => six.exec_
2018-08-22 23:00:06 -07:00
Anthony Sottile
0d65783dce
Fix unicode errors when changing to .format(...)
2018-08-22 19:00:43 -07:00
Anthony Sottile
17644ff285
Fix traceback reporting for exceptions with `__cause__` cycles.
2018-08-15 18:15:07 -07:00
Bruno Oliveira
0bb29d5649
Merge pull request #3685 from nicoddemus/merge-master-into-features
...
Merge master into features
2018-07-15 16:53:39 -03:00
Tadek Teleżyński
d2fe619120
Fix truncated locals in verbose mode
2018-07-15 11:30:26 -03:00
Anthony Sottile
4ae93a7a07
Remove obsolete __future__ imports
2018-07-08 08:37:02 -07:00
Anthony Sottile
cbaa7dd56a
Upgrade pre-commit hooks except pyupgrade
2018-06-26 06:35:27 -07:00
Ronny Pfannschmidt
eaa882f3d5
switch to src layout
2018-05-26 09:10:38 +02:00