Anton Lodder
acb3e8e8a7
Test rewriting assertion when __name__ fails
...
Pytest rewrites assertions so that the items on each
side of a comoparison will have easier-to-read names
in case of an assertion error.
Before doing this, it checks to make sure the object
doesn't have a __name__ attribute; however, it uses
`hasattr` so if the objects __getattr__ is broken then
the test failure message will be the stack trace
for this failure instead of a rewritten assertion.
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
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
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
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
56d414177a
Remove nodeid from messages for warnings generated by standard warnings
...
Standard warnings already contain the proper location, so we don't need
to also print the node id
2018-09-04 11:35:34 -03:00
Bruno Oliveira
19a01c9849
Make PytestWarning and RemovedInPytest4Warning part of the public API
2018-09-04 11:35:34 -03:00
Bruno Oliveira
78ac7d99f5
Deprecate Config.warn and Node.warn, replaced by standard warnings
2018-09-04 11:35:34 -03:00
Bruno Oliveira
4675912d89
Add tests for early rewrite bailout code and handle patterns with subdirectories
2018-09-01 10:59:21 -03:00
Bruno Oliveira
82a7ca9615
Avoid possible infinite recursion when writing pyc files in assert rewrite
...
What happens is that atomic_write on Python 2.7 on Windows will try
to convert the paths to unicode, but this triggers the import of
the encoding module for the file system codec, which in turn triggers
the rewrite, which in turn again tries to import the module, and so on.
This short-circuits the cases where we try to import another file when
writing a pyc file; I don't expect this to affect anything because
the only modules that could be affected are those imported by
atomic_writes.
Fix #3506
2018-08-27 21:29:45 -03: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
85482d575e
Replace Source with dedent where possible
2018-08-23 09:06:17 -07:00
Anthony Sottile
c2cd337886
py.builtin.exec_ => six.exec_
2018-08-22 23:00:06 -07:00
Anthony Sottile
0fc4a806e5
py.builtins._totext -> string literals or six.text_type
2018-08-22 23:00:04 -07:00
Anthony Sottile
8bb8b91357
pyupgrade 1.4: tests
2018-08-22 18:47:21 -07:00
Anthony Sottile
452e5c1cf0
Fix `TypeError` when the assertion message is `bytes` in python 3.
2018-08-01 15:09:25 -07:00
Anthony Sottile
61301d934e
Remove some extraneous `# noqa` comments
...
This was partially automated with https://github.com/asottile/yesqa
_with a few caveats_:
- it was run under python2 (chosen arbitrarily, when run under python3 other
things were changed)
- I used `git checkout -p` to revert the removal of `noqa` comments from
`cmp()` lines.
2018-07-08 17:05:52 -07: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
Miro Hrončok
39ebdab1bc
DRY in TestAssertionRewrite
2018-06-04 14:03:13 +02:00
Miro Hrončok
9a6fa33c69
Module docstrings in 3.7 are not part of Module node anymore
...
Fixes https://github.com/pytest-dev/pytest/issues/3530
2018-06-04 13:58:35 +02:00
Ronny Pfannschmidt
703e4b11ba
run black
2018-05-23 16:48:46 +02:00
Bruno Oliveira
aa95a425d7
Attempt to solve race-condition which corrupts .pyc files on Windows
...
This uses of the `atomicwrites` library.
This is very hard to create a reliable test for.
Fix #3008
2018-04-12 08:19:28 -03:00
Anthony Sottile
bd1d17e8de
Replace py.std with stdlib imports
2018-01-09 12:44:10 -08:00
Antony Lee
c8e7d1ae34
Respect PYTEST_DONT_REWRITE for plugins too.
2017-12-12 17:43:17 -08:00
Bruno Oliveira
983a09a2d4
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2017-11-10 18:33:02 -02:00
Bruno Oliveira
03829fde8a
Fix linting E741: ambiguous variable name
2017-11-04 13:59:10 -02:00
Bruno Oliveira
f3a119c06a
Merge upstream/master into features
2017-11-03 16:37:18 -02:00
Bruno Oliveira
27cea340f3
Remove trailing whitespace
2017-10-26 21:55:28 -02:00
Bruno Oliveira
27bb2eceb4
Add comment about why we remove docstrings on test_assertrewrite
...
As explained in pytest-dev/pytest#2870
2017-10-26 20:15:05 -02:00
Sviatoslav Abakumov
fd7bfa30d0
Put imports on the last line unless there are other exprs
2017-10-25 11:05:07 +03:00
Sviatoslav Abakumov
3427d27d5a
Try to get docstring from module node
2017-10-25 10:54:43 +03:00
hugovk
ef732fc51d
Remove code for unsupported Python versions
2017-10-10 08:54:56 +03:00
Andras Tim
b9e318866e
Fixed E402 flake8 errors
...
module level import not at top of file
2017-07-17 01:44:23 +02:00
Andras Tim
b840622819
Fixed E302 flake8 errors
...
expected 2 blank lines, found 0
2017-07-17 01:44:23 +02:00
Andras Tim
8f3eb6dfc7
Fixed E261 flake8 errors
...
at least two spaces before inline comment
2017-07-17 01:44:22 +02:00
Andras Tim
617e510b6e
Fixed E231 flake8 errors
...
missing whitespace after ‘,’, ‘;’, or ‘:’
2017-07-17 01:44:22 +02:00
Andras Tim
ebb6d0650b
Fixed E203 flake8 errors
...
whitespace before ‘:’
2017-07-17 01:44:22 +02:00
Andras Tim
cf97159009
Fixed E128 flake8 errors
...
continuation line under-indented for visual indent
2017-07-17 01:28:16 +02:00
Andras Tim
051d76a63f
Fixed E124 flake8 errors
...
closing bracket does not match visual indentation
2017-07-17 01:28:16 +02:00
Andras Tim
425665cf25
Fixed E122 flake8 errors
...
continuation line missing indentation or outdented
2017-07-17 01:28:16 +02:00
Andreas Pelme
ac9c8fcdab
Failing test for issue #2121
2017-05-31 08:25:04 +02:00
Bruno Oliveira
1b5f898dc5
Ensure rewritten modules don't inherit __future__ flags from pytest
...
In a recent refactoring we enabled all __future__ features in pytest
modules, but that has the unwanted side effect of propagating those
features to compile()'d modules inside assertion rewriting, unless
we pass dont_inherit=False to compile().
2017-04-06 15:00:36 -03:00
Bruno Oliveira
42a5d6bdfa
Add __future__ imports to all pytest modules
...
This prevents silly errors from creeping in Python 2 when testing in Python 3
2017-03-16 22:45:40 -03:00
Bruno Oliveira
1e0cf5ce4d
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
...
# Conflicts:
# AUTHORS
# CHANGELOG.rst
# _pytest/pytester.py
2017-03-10 15:54:05 -03:00
Michal Wajszczuk
fb0b90646e
New-style classes implemented for python 2.7 - #2147
2017-02-16 20:28:17 +01:00
Ville Skyttä
ede4e9171f
Spelling fixes
2017-02-15 17:00:58 +02:00