Anthony Sottile
67af623d9e
Merge pull request #8227 from encukou/defensive-get_source
...
Make code.FormattedExcinfo.get_source more defensive
2021-04-24 19:42:53 -07:00
Miro Hrončok
0a75c8e57b
Add a regression test for a more defensive code.FormattedExcinfo.get_source
2021-04-22 19:17:54 +02:00
Tadeu Manoel
b706a2c048
Fix error with --import-mode=importlib and modules containing dataclasses or pickle ( #7870 )
...
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
Fixes #7856 , fixes #7859
2021-04-05 17:10:03 -03:00
Matthew Hughes
0e5e4e03e6
Remove some unused 'tmpdir's
2021-02-20 18:01:42 +00:00
Ran Benita
bbd22e1769
Merge pull request #8214 from sousajf1/sousajo_patch_8204_1
...
pytest-dev#8204 migrate tests on testing/code/test_source to tmp_path
2021-01-01 20:44:40 +02:00
sousajo
ac428f67eb
pytest-dev#8204 migrate tests on testing/code/test_source to tmp_path
2021-01-01 16:55:03 +00:00
sousajf1
20c59e3aa4
pytest-dev#8204 migrate some tests to tmp_path fixture ( #8209 )
...
migrating some tests from tmpdir to tmp_path fixture
2021-01-01 17:25:11 +02:00
Ran Benita
92ba96b061
code: convert from py.path to pathlib
2020-12-22 21:08:25 +02:00
Anton
8eef8c6004
tests: Migrate to pytester - incremental update ( #8145 )
2020-12-15 13:02:32 +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
Hugo van Kemenade
c9e5042d6d
Remove redundant Python 2.7 code
2020-10-19 10:47:35 +03:00
Anthony Sottile
33d119f71a
py36+: com2ann
2020-10-05 18:33:17 -07:00
Anthony Sottile
66bd44c13a
py36+: pyupgrade: py36+
2020-10-03 12:46:54 -07:00
Anthony Sottile
a238d1f37d
py36+: remove TYPE_CHECKING from _pytest.compat
...
automated with:
```bash
git grep -l 'from .* import TYPE_CHECKING' |
xargs reorder-python-imports \
--application-directories .:src \
--remove-import 'from _pytest.compat import TYPE_CHECKING' \
--add-import 'from typing import TYPE_CHECKING'
```
2020-10-02 15:03:24 -07:00
Anthony Sottile
96a17b1683
Fix INTERNALERROR when accessing locals / globals with faulty `exec`
2020-09-11 18:13:48 -07:00
Bruno Oliveira
9f672c85c5
Fix handle of exceptions in ReprEntry with tb=line
...
Fix #7707
2020-09-03 07:44:45 -03:00
Ran Benita
9ab14c6d9c
typing: set warn_unreachable
...
This makes mypy raise an error whenever it detects code which is
statically unreachable, e.g.
x: int
if isinstance(x, str):
... # Statement is unreachable [unreachable]
This is really neat and finds quite a few logic and typing bugs.
Sometimes the code is intentionally unreachable in terms of types, e.g.
raising TypeError when a function is given an argument with a wrong
type. In these cases a `type: ignore[unreachable]` is needed, but I
think it's a nice code hint.
2020-08-04 09:59:46 +03:00
Ran Benita
b8471aa527
testing: fix some docstring issues
...
In preparation for enforcing some docstring lints.
2020-08-03 10:10:43 +03:00
Zac Hatfield-Dodds
3a060b77e8
Revert change to traceback repr ( #7535 )
...
* Revert change to traceback repr
* Add test and changelog entry
* Restore *exact* prev output
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
2020-07-24 13:30:38 +02:00
Lewis Cowles
71ab6236a1
Clearer guidance on pytest.raise(match=...) failure ( #7499 )
2020-07-15 22:26:47 +03:00
Ran Benita
a2f021b6f3
Remove no longer needed `noqa: F821` uses
...
Not needed since pyflakes 2.2.0.
2020-07-10 13:08:56 +03:00
Ran Benita
11efe057ea
testing: skip some unreachable code in coverage
2020-07-04 12:12:52 +03:00
Ran Benita
f5c69f3eb2
code/source: inline getsource()
...
The recursive way in which Source and getsource interact is a bit
confusing, just inline it.
2020-07-01 20:20:13 +03:00
Ran Benita
ef39115001
code/source: remove compiling functions
...
A lot of complex code that isn't used anymore outside of tests after
the previous commit.
2020-07-01 20:20:12 +03:00
Ran Benita
4a27d7d973
code/source: remove unused method Source.putaround()
2020-07-01 20:20:11 +03:00
Ran Benita
a7303b52db
code/source: remove unused method Source.isparseable()
2020-07-01 20:20:11 +03:00
Ran Benita
a127a22d13
code/source: remove support for comparing Source with str
...
Cross-type comparisons like this are a bad idea. This isn't used.
2020-07-01 20:20:10 +03:00
Ran Benita
4108174777
code/source: remove Source(deindent: bool) parameter
...
Not used, except in tests.
2020-07-01 20:20:07 +03:00
Ran Benita
4655b79985
config: improve typing
2020-06-22 16:39:14 +03:00
Ran Benita
54ad048be7
Enable check_untyped_defs mypy option for testing/ too
2020-06-05 11:34:20 +03:00
Bruno Oliveira
55099e57c3
Add requested comment as per review
2020-05-19 19:20:41 -03:00
Daniel Hahler
b98a182aa1
(no) coverage
2020-05-19 19:20:41 -03:00
Daniel Hahler
61180eec93
Test behavior of Source with regard to decorators
...
Unlinke `inspect.getsource` it does not unwrap functions.
2020-05-19 19:20:41 -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
Anthony Sottile
dad328bc8a
Fix tests for python3.9
2020-05-07 05:26:55 -07:00
Ran Benita
bafc9bd58b
testing: merge code/test_terminal_writer.py into io/test_terminalwriter.py
2020-04-30 16:44:03 +03:00
Ran Benita
66ee755649
terminalwriter: remove TerminalWriter's stringio argument
...
Had a mark indicating it should be removed, and I agree, it's better to
just use the `file` argument.
2020-04-30 16:44:02 +03: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
Daniel Hahler
2be06ba67e
Improve doc/typing/message for `ExceptionInfo.match` ( #6776 )
2020-02-21 16:41:57 +01: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
Daniel Hahler
61f2a26675
Code/getfslineno: keep empty co_filename
...
Previously this would be turned via `py.path.local("")` into the current
working directory.
This appears to be what `fspath = fn and py.path.local(fn) or None`
tries to avoid in `getfslineno`'s `TypeError` handling already, if
`Code` would raise it.
2020-02-03 19:09:08 +01:00
Daniel Hahler
78eddcb5b1
tests: move test_getfslineno back
...
Reverts https://github.com/pytest-dev/pytest/pull/6610 .
The tested `getfslineno` is `src/_pytest/_code/source.py` actually,
exported via `src/_pytest/_code/__init__.py`.
I've confused it with the one in `src/_pytest/compat.py` apparently.
2020-01-29 23:47:39 +01:00
Daniel Hahler
3dbc61dd80
tests: test_code: improve/clarify imports
2020-01-29 19:44:37 +01:00
Daniel Hahler
3f4b8d3aec
test_code: improve coverage
2020-01-29 02:54:12 +01:00
Daniel Hahler
a3f482ceba
tests: move test_getfslineno
...
It should be in `test_code` when testing `_pytest._code.getfslineno`,
not to be confused with `_pytest._code.source.getfslineno`.
Adds an extra assert (via https://github.com/pytest-dev/pytest/pull/6590 ).
2020-01-29 01:26:10 +01:00
Daniel Hahler
79ae86cc3f
tests: fix test_repr_traceback_with_invalid_cwd
...
This never worked as expected (since a912d3745
), and only py38-windows
triggered the mocked `os.getcwd` unintentionally, via `inspect`.
2020-01-24 12:52:12 +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
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