David Röthlisberger
aaa7e837cc
doctest: Add +NUMBER option to ignore irrelevant floating-point differences
...
When enabled, floating-point numbers only need to match as far as the
precision you have written in the expected doctest output. This avoids
false positives caused by limited floating-point precision, like this:
Expected:
0.233
Got:
0.23300000000000001
This is inspired by Sébastien Boisgérault's [numtest] but the
implementation is a bit different:
* This implementation edits the literals that are in the "got"
string (the actual output from the expression being tested), and then
proceeds to compare the strings literally. This is similar to pytest's
existing ALLOW_UNICODE and ALLOW_BYTES implementation.
* This implementation only compares floats against floats, not ints
against floats. That is, the following doctest will fail with pytest
whereas it would pass with numtest:
>>> math.py # doctest: +NUMBER
3
This behaviour should be less surprising (less false negatives) when
you enable NUMBER globally in pytest.ini.
Advantages of this implementation compared to numtest:
* Doesn't require `import numtest` at the top level of the file.
* Works with pytest (if you try to use pytest & numtest together, pytest
raises "TypeError: unbound method check_output() must be called with
NumTestOutputChecker instance as first argument (got
LiteralsOutputChecker instance instead)").
* Works with Python 3.
[numtest]: https://github.com/boisgera/numtest
2019-07-08 17:07:58 +01:00
Miro Hrončok
c54cbd63c8
Replace importlib_metadata with importlib.metadata on Python 3.8+
...
Fixes https://github.com/pytest-dev/pytest/issues/5537
2019-07-04 15:00:10 +02:00
Bruno Oliveira
1db132290f
Apply workaround for multiple short options for Python <= 3.8
...
Hopefully by Python 3.9 this will be fixed upstream, if not we will
need to bump the version again.
Fix #5523
2019-07-04 14:59:40 +02:00
Bruno Oliveira
e6ffa78e59
Refactoring doctests ( #5518 )
...
Refactoring doctests
2019-06-28 19:15:02 -03:00
Anthony Sottile
7ee244476a
Remove astor and reproduce the original assertion expression
2019-06-28 13:38:52 -07:00
AmirElkess
bf39e89946
Refactoring doctests
2019-06-28 21:16:17 +02:00
Anthony Sottile
4e723d6750
Fix crash when discovery fails while using `-p no:terminal`
2019-06-27 10:24:29 -07:00
Anthony Sottile
3e0e31a364
Don't crash with --pyargs and a filename that looks like a module
2019-06-27 08:32:32 -07:00
Bruno Oliveira
1be49e713a
Remove py<35 compatibility code from rewrite.py
2019-06-26 21:44:10 -03:00
Bruno Oliveira
37fb50a3ed
Features assertion pass hook ( #3479 )
...
Features assertion pass hook
2019-06-26 21:14:19 -03:00
Bruno Oliveira
790806e865
Merge pull request #5494 from Zac-HD/funcargnames-to-fixturenames
...
Deprecate funcargnames alias for fixturenames
2019-06-26 21:13:59 -03:00
Bruno Oliveira
629eb3ec6a
Move formatting variables under the "has impls" if
...
Small optimization, move the generation of the intermediate
formatting variables inside the 'if _check_if_assertion_pass_impl():'
block.
2019-06-26 19:26:12 -03:00
Bruno Oliveira
3afee36ebb
Improve docs and reference
2019-06-26 19:15:00 -03:00
Bruno Oliveira
fcbe66feba
Restore proper handling of '%' in assertion messages
2019-06-26 18:51:27 -03:00
Bruno Oliveira
eb90f3d1c8
Fix default value of 'enable_assertion_pass_hook'
2019-06-26 17:54:24 -03:00
Victor Maryama
6854ff2acc
Fixed import order pep8.
2019-06-26 19:05:17 +02:00
Victor Maryama
53234bf613
Added config back to AssertionWriter and fixed typo in check_if_assertion_pass_impl function call.
2019-06-26 19:00:31 +02:00
Victor Maryama
6f851e6cbb
Merge remote-tracking branch 'upstream/master' into features-assertion-pass-hook-master
...
# Conflicts:
# src/_pytest/assertion/rewrite.py
2019-06-26 18:12:56 +02:00
Victor Maryama
9a34d88c8d
Explanation variables only defined if failed or passed with plugins implementing the hook.
2019-06-26 18:10:16 +02:00
Victor Maryama
d91a5d3cd7
Further reverting changes.
2019-06-26 18:10:16 +02:00
Victor Maryama
f755ff6af1
Black formatting.
2019-06-26 18:10:16 +02:00
Victor Maryama
d638da5821
Using ini-file option instead of cmd option.
2019-06-26 18:10:16 +02:00
Victor Maryama
0fb52416b1
Reverted changes.
2019-06-26 18:10:15 +02:00
Bruno Oliveira
6a2d844c5d
Fix typo replace `circuting` with `circuiting`. ( #5497 )
...
Fix typo replace `circuting` with `circuiting`.
2019-06-26 11:09:22 -03:00
Anthony Sottile
6cf8e71dca
Merge pull request #5496 from pytest-dev/stray_comment
...
Delete stray comment
2019-06-26 05:59:38 -07:00
Tim Gates
fdb6e35b1b
Fix typo replace `circuting` with `circuiting`.
2019-06-26 20:23:35 +10:00
Victor Maryama
7efdd5063b
Update src/_pytest/assertion/rewrite.py
...
Co-Authored-By: Bruno Oliveira <nicoddemus@gmail.com>
2019-06-26 10:50:27 +02:00
Anthony Sottile
bfba33ec9e
Delete stray comment
2019-06-25 20:24:13 -07:00
Anthony Sottile
3f3f3e7a29
Merge pull request #5495 from nicoddemus/blueyed/cmp-bytes
...
Improve comparison of byte strings (supersedes #5267 )
2019-06-25 19:16:24 -07:00
Bruno Oliveira
aaf40314d1
Do not attempt to rewrite non-source files ( #5490 )
...
Do not attempt to rewrite non-source files
2019-06-25 20:43:23 -03:00
Bruno Oliveira
3f2344e8f7
Show bytes ascii representation instead of numeric value
2019-06-25 20:40:25 -03:00
Daniel Hahler
8c7eb82363
Fix/improve comparison of byte strings
...
Fixes https://github.com/pytest-dev/pytest/issues/5260 .
2019-06-25 20:15:45 -03:00
Zac Hatfield-Dodds
ed85c83154
Deprecate funcargnames alias
2019-06-26 08:53:17 +10:00
Victor Maryama
80ac910a24
Added msg to docstring for cleaning pyc.
2019-06-25 19:49:57 +02:00
Victor Maryama
4db5488ed8
Now dependent on command line option.
2019-06-25 19:49:05 +02:00
Bruno Oliveira
019455298b
Merge remote-tracking branch 'upstream/features' into merge-features-into-master
2019-06-25 12:07:54 -03:00
Bruno Oliveira
64a6365227
Include pytest version in the cached pyc tags ( #5484 )
...
Include pytest version in the cached pyc tags
2019-06-25 12:07:01 -03:00
Anthony Sottile
b991810f32
Do not attempt to rewrite non-source files
2019-06-25 08:00:20 -07:00
Victor Maryama
2280f28596
Black formatting.
2019-06-25 10:36:01 +02:00
Victor Maryama
f8c9a7b86d
Formatting and removed py2 support.
2019-06-25 10:35:42 +02:00
Victor Maryama
98b212cbfb
Added "experimental" note.
2019-06-25 10:35:09 +02:00
Zac Hatfield-Dodds
d72fb73fa0
Do not allow abbreviated arguments
2019-06-25 13:51:33 +10:00
Bruno Oliveira
37fce6c6e5
Pickup addition positional args passed to _parse_parametrize_ar… ( #5483 )
...
Pickup addition positional args passed to _parse_parametrize_args
2019-06-24 22:05:19 -03:00
Kevin J. Foley
95714436a1
Pickup additional positional args passed to _parse_parametrize_args
2019-06-24 20:43:52 -04:00
Bruno Oliveira
f43fb13179
Include pytest version in the cached pyc tags
...
Fix #1671
2019-06-24 20:37:07 -03:00
Bruno Oliveira
3f5b078462
Merge pull request #5441 from nicoddemus/faulthandler-5440
...
Integrate pytest-faulthandler into the core
2019-06-24 20:01:15 -03:00
Bruno Oliveira
63c4802be0
minor: clarify help with reportchars ( #5475 )
...
minor: clarify help with reportchars
2019-06-24 19:59:15 -03:00
Anthony Sottile
380ca8f880
Use new raise syntax in one case
2019-06-24 11:24:03 -07:00
Anthony Sottile
4cd08f9b52
Switch from deprecated imp to importlib
2019-06-24 09:48:38 -07:00
Victor Maryama
52e695b329
Removed debug code.
2019-06-24 17:47:48 +02:00