Bruno Oliveira
f078984c2e
Fix all() unroll for non-generators/non-list comprehensions ( #5360 )
...
Fix all() unroll for non-generators/non-list comprehensions
2019-06-02 09:12:39 -07:00
Daniel Hahler
e032904413
Merge master into features
2019-05-28 01:46:16 +02:00
Bruno Oliveira
2b9ca34280
Unroll calls to any #5062 ( #5103 )
...
Unroll calls to any #5062
2019-05-27 20:17:44 -03:00
Anthony Sottile
13f02af97d
Switch to importlib-metadata
2019-05-27 13:24:08 -07:00
Tomer Keren
22d91a3c3a
Unroll calls to all on python 2
2019-05-25 19:34:08 +03:00
Tomer Keren
322a0f0a33
Fix mention of issue #5062 in docstrings
2019-05-25 19:34:08 +03:00
Tomer Keren
58149459a5
Mark visit_all as a private method
2019-05-25 19:34:08 +03:00
Tomer Keren
437d6452c1
Expand list comprehensions as well
2019-05-25 19:34:08 +03:00
Tomer Keren
e37ff3042e
Check calls to all only if it's a name and not an attribute
2019-05-25 19:34:08 +03:00
Tomer Keren
470e686a70
Rewrite unrolled assertion with a new rewriter,correctly append the unrolled for loop
2019-05-25 19:34:08 +03:00
Tomer Keren
765f75a8f1
Replace asserts of `any` with an assert in a for
2019-05-25 19:34:08 +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
Daniel Hahler
93fd9debe3
Allow disabling of python plugin
...
Fixes https://github.com/pytest-dev/pytest/issues/5277 .
2019-05-17 18:17:14 +02:00
Anthony Sottile
dc75b6af47
Use fix-encoding-pragma pre-commit hook
2019-05-14 15:56:31 -07:00
Bruno Oliveira
ccf6c3cb46
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2019-05-09 19:22:40 -03:00
Anthony Sottile
d1a48ad68f
Use exec directly
2019-05-06 23:07:39 -07:00
Bruno Oliveira
53cd7fd2ea
Introduce new warning subclasses
...
Fix #5177
2019-04-28 10:38:25 -03:00
Daniel Hahler
adb8edbae1
assertion rewriting: use actual helper name
...
This makes it easier / possible to grep.
2019-04-17 14:41:34 +02:00
Daniel Hahler
7afe17740f
Merge master into features
2019-03-15 00:52:12 +01:00
Bruno Oliveira
44cb51010c
Improve CHANGELOG and code comment
2019-03-13 18:52:30 -03:00
Bernhard M. Wiedemann
489c61a22d
Allow tests to pass after 2038
...
without this change, the python-apache-libcloud tests failed
in the year 2039 with
fp.write(struct.pack("<ll", mtime, size))
E error: 'l' format requires -2147483648 <= number <= 2147483647
2019-03-10 05:22:21 +01:00
Daniel Hahler
9cb71af9e5
_pytest.assertion.rewrite: move _format_explanation import
2019-03-01 14:13:28 +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
Daniel Hahler
1a358df998
Merge master into features
2019-01-14 17:15:39 +01: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
Anton Lodder
3241fc3103
Don't fail if hasattr fails when rewriting assertions
...
When rewriting assertions, pytest makes a call to
`__name__` on each object in a comparision. If one of
the objects has reimplemented `__getattr__`, they could
fail trying to fetch `__name__` with an error other than
`AttributeError`, which is what `hasattr` catches.
In this case, the stack trace for the failed `__getattr__`
call will show up in the pytest output, even though
it isn't related to the test failing.
This change fixes that by catching exceptions
that `hasattr` throws.
2019-01-10 20:45:15 -05:00
Bruno Oliveira
fd48cd57f9
Remove config.warn, Node.warn; pytest_logwarning issues a warning when implemented
...
Fix #3078
2018-12-14 12:50:18 -02:00
Daniel Hahler
5ebacc49c6
Harden tests, fix doc/msg
2018-12-05 19:22:44 +01:00
Tomer Keren
8fd60483ef
Don't insert warnings when not in a module
2018-12-05 19:49:54 +02:00
Tomer Keren
7a7ad0c120
Shorten docstring for warn_about_none_ast
2018-12-05 17:47:34 +02:00
Tomer Keren
41031fce2f
Address code review
2018-12-05 17:18:57 +02:00
Tomer Keren
e1e4b226c6
👌 Address code review
...
Edited the changelog for extra clarity, and to fire off auto-formatting
Oddly enough, keeping `filename='{filename!r}'` caused an error while
collecting tests, but getting rid of the single ticks fixed it
Hopefully closes #3191
2018-12-05 10:52:12 +02:00
Tomer Keren
3e6f1fa2db
Simplify warning creation by using ast.parse
...
in py2 it's a ast.Name where in py3 it's a ast.NamedConstant
Fixes namespace by using import from
2018-12-05 10:42:05 +02:00
Tomer Keren
59a11b6a5d
Check for 'assert None' and warn appropriately
...
🐛 Fix warn ast bugs
🐛 Fix inner-ast imports by using importFrom
Alternetavly ast_call_helper could be retooled to use ast.attribute(...)
2018-12-05 10:41:42 +02:00
Bruno Oliveira
aa765cf8c2
Adjust stacklevel of "config" warnings
...
Related to #4439
2018-11-22 14:44:01 -02:00
Anthony Sottile
690a63b921
Fix assertion rewriting involving Starred + side-effects
2018-11-17 10:42:51 -08:00
Anthony Sottile
2368fbb63c
Apply reorder-python-imports to all files
2018-10-25 00:01:29 -07:00
Anthony Sottile
cb39bd0651
Fixes for flake8 master
2018-10-22 08:50:00 -07:00
Bruno Oliveira
9646a1cd7a
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2018-10-15 12:55:28 -03:00
Anthony Sottile
2e42d937dc
Display the filename when encountering `SyntaxWarning`.
...
```console
$ cd t && rm -rf __pycache__ && pytest t.py -q -c /dev/null; cd ..
. [100%]
=============================== warnings summary ===============================
<unknown>:2: DeprecationWarning: invalid escape sequence \.
-- Docs: https://docs.pytest.org/en/latest/warnings.html
1 passed, 1 warnings in 0.01 seconds
```
```console
$ cd t && rm -rf __pycache__ && pytest t.py -q -c /dev/null; cd ..
. [100%]
=============================== warnings summary ===============================
/tmp/pytest/t/t.py:2: DeprecationWarning: invalid escape sequence \.
'\.wat'
-- Docs: https://docs.pytest.org/en/latest/warnings.html
1 passed, 1 warnings in 0.01 seconds
```
2018-10-14 16:11:47 -07:00
Ronny Pfannschmidt
2831cb9ab5
unify paths.py and pathlib.py
2018-10-11 07:15:09 +02:00
Ronny Pfannschmidt
85cc9b8f12
move all the things into _pytest.pathlib
2018-10-11 07:15:08 +02:00
iwanb
c61ff31ffa
Fix #3539 : reload module with assertion rewrite import hook
2018-09-23 13:05:55 +02:00
Anthony Sottile
7122fa5613
Fix UnicodeDecodeError in assertion with mixed non-ascii bytes repr + text
2018-09-19 20:24:00 -07:00
Bruno Oliveira
37d2469266
Use a PurePath instance to do matching against patterns in assertion rewrite
...
This way we don't need to have real file system path, which prevents the
original #3973 bug.
2018-09-17 20:29:09 -03:00
Bruno Oliveira
1df6d28080
Fix assertion rewriter crash if cwd changes mid-testing
...
Unfortunately we need to get a `py.path.local` object to perform the fnmatch
operation, it is different from the standard `fnmatch` module because it
implements its own custom logic. So we need to use `py.path` to perform
the fnmatch for backward compatibility reasons.
Ideally we should be able to use a "pure path" in `pathlib` terms (a path
not bound to the file system), but we don't have those in pylib.
Fix #3973
2018-09-17 20:04:44 -03:00
Bruno Oliveira
69b34f7658
Merge remote-tracking branch 'upstream/master' into release-3.8.0
2018-09-05 18:02:02 -03:00
Bruno Oliveira
d3ca739c00
Use explicit instances when calling warnings.warn_explicit
2018-09-04 16:29:48 -03:00