Ran Benita
c66bf59fd5
ci: update github action versions, remove outdated comment ( #7177 )
2020-05-08 13:03:51 +03:00
Bruno Oliveira
a039fe3e92
Merge pull request #7187 from asottile/update-contributing
2020-05-08 06:58:37 -03:00
Anthony Sottile
9d2eabb397
Merge pull request #7186 from asottile/is_setup_py_encoding_agnostic
...
Fix _is_setup_py for files encoded differently than locale
2020-05-07 14:01:28 -07:00
Anthony Sottile
9926fcf452
remove incorrect note about requiring admin install
2020-05-07 13:51:20 -07:00
Bruno Oliveira
63e94b986b
Merge pull request #7179 from asottile/py39
2020-05-07 17:42:57 -03:00
Anthony Sottile
b238845d0f
Fix _is_setup_py for files encoded differently than locale
2020-05-07 13:14:58 -07:00
Ran Benita
de556f895f
testing: clean up parametrization in test_mark.py ( #7184 )
2020-05-07 20:42:04 +03:00
Ran Benita
32c00db0bf
Merge pull request #7176 from bluetech/warnings-optimize-parse
...
warnings: speed up work done in catch_warnings_for_item()
2020-05-07 19:34:28 +03:00
Anthony Sottile
dad328bc8a
Fix tests for python3.9
2020-05-07 05:26:55 -07:00
Ran Benita
65963d2066
warnings: speed up work done in catch_warnings_for_item()
...
When setting up the warnings capture, filter strings (with the general
form `action:message:category:module:line`) are collected from the
cmdline, ini and item and applied. This happens for every test and other
cases.
To apply a string it needs to be parsed into a tuple, and it turns out
this is slow. Since we already vendor the parsing code from Python's
warnings.py, we can speed it up by caching the result. After splitting
the parsing part from the applying part, the parsing is pure and is
straightforward to cache.
An alternative is to parse ahead of time and reuse the result, however
the caching solution turns out cleaner and more general in this case.
On this benchmark:
import pytest
@pytest.mark.parametrize("x", range(5000))
def test_foo(x): pass
Before:
============================ 5000 passed in 14.11s =============================
14365646 function calls (13450775 primitive calls) in 14.536 seconds
After:
============================ 5000 passed in 13.61s =============================
13290372 function calls (12375498 primitive calls) in 14.034 seconds
2020-05-07 12:19:13 +03:00
Ran Benita
81da5dac48
Merge pull request #7122 from bluetech/matcher-parser
...
Stop using Python's eval() for -m and -k
2020-05-07 09:23:29 +03:00
Bruno Oliveira
6c2d358918
Merge pull request #7135 from pytest-dev/terminalwriter
2020-05-06 18:26:44 -03:00
Bruno Oliveira
4d439760ad
Merge pull request #7168 from nicoddemus/saferepr-getattr-fail-7145
2020-05-06 17:57:38 -03:00
Bruno Oliveira
199f45d0a9
Merge pull request #7027 from blueyed/doc-rm-rm
2020-05-06 12:43:51 -03:00
Ran Benita
d16ae0bbdc
Merge pull request #7171 from bluetech/code-import-cycles
...
code: fix import cycles between code.py and source.py
2020-05-06 18:15:32 +03:00
Ran Benita
8c2c297e1e
Merge pull request #7172 from bluetech/micro-optimizations-1
...
Some easy micro optimizations to collection
2020-05-06 18:13:44 +03:00
Ran Benita
89eee90b5f
python: optimize PythonCollector.collect
2020-05-06 12:05:04 +03:00
Ran Benita
b90f34569f
nodes: micro-optimize Node attribute access
2020-05-06 11:58:30 +03:00
Ran Benita
5702c86f4c
nodes: micro-optimize hash(node)
...
Turns out it's called alot, and saving the function call makes it
faster.
2020-05-06 11:58:30 +03:00
Ran Benita
fcc473ab1c
Use dict instead of OrderedDict on Python 3.7
...
OrderedDict is quite a bit heavier than just a dict.
2020-05-06 11:58:28 +03:00
Ran Benita
69143fe5b0
code: fix import cycles between code.py and source.py
...
These two files were really intertwined. Make it so code.py depends on
source.py without a reverse dependency.
No functional changes.
2020-05-06 11:01:32 +03:00
Bruno Oliveira
d0022b5a13
'saferepr' handles classes with broken __getattribute__
...
Fix #7145
2020-05-05 19:22:39 -03:00
Ran Benita
4787fd64a4
Merge pull request #7167 from bluetech/lint-merge-fix
...
testing: fix lint after merge of old branch
2020-05-05 23:34:05 +03:00
Ran Benita
94400a68b4
terminal: fix non-deterministic warning summary order in Python 3.5
...
In Python 3.5, collections.Counter() does not preserve insertion order.
2020-05-05 23:08:44 +03:00
Ran Benita
abf785666a
testing: fix lint after merge of old branch
2020-05-05 22:00:55 +03:00
Ran Benita
4b91617002
Merge pull request #7020 from blueyed/fix-warnings-summary
...
Fix warnings summary
2020-05-05 21:58:57 +03:00
Ran Benita
a8dbb32a6b
Merge pull request #6797 from blueyed/tests-simpler
...
tests: simplify test_pytest_plugins_in_non_top_level_conftest_…
2020-05-05 21:51:50 +03:00
Ran Benita
b4be6cd4b7
Merge pull request #6765 from blueyed/capture-refactor-1
...
Refactor Capture classes: move/rename CaptureIO classes
2020-05-05 21:46:18 +03:00
Daniel Hahler
8cae78a18b
Fix warnings summary
...
- replace "tests with warnings" with just warnings: they a) might not
come from a test in the first place, and b) a single test might have
multiple warnings.
- fix usage of (unused) argument to `collapsed_location_report`
Co-authored-by: Ran Benita <ran@unusedvar.com>
2020-05-05 21:40:34 +03:00
Ran Benita
d7d627b1e8
Merge pull request #7064 from blueyed/fix-_printcollecteditems-doc-upstream
...
Fix/improve printing of docs for collected items
2020-05-05 21:31:21 +03:00
Daniel Hahler
7647d1c836
Move Capture classes from compat to capture and improve naming
...
Move {Passthrough,CaptureIO} to capture module, and rename Passthrough
-> Tee to match the existing terminology.
Co-authored-by: Ran Benita <ran@unusedvar.com>
2020-05-05 21:24:59 +03:00
Ran Benita
46d768503e
Merge pull request #6839 from blueyed/typing-get_dirs_from_args-parseconfig
...
typing: get_dirs_from_args, parseconfig
2020-05-05 21:11:26 +03:00
Ran Benita
85732e2b08
Merge pull request #6993 from blueyed/doc-pytest_collection-upstream
...
[WIP] doc: pytest_collection: has to set `session.items`
2020-05-05 21:05:56 +03:00
Ran Benita
b4c46da278
Merge pull request #7029 from blueyed/fix-test_popen_default_stdin_stderr_and_stdin_None-upstream
...
Fix `test_popen_default_stdin_stderr_and_stdin_None` when run with `-s`
2020-05-05 21:03:04 +03:00
Bruno Oliveira
80e5098408
Merge pull request #7155 from kerizane/make_numbered_dir
2020-05-03 09:48:36 -03:00
Keri Volans
678440e46d
7018: Use internal version of make_numbered_dir
2020-05-03 10:45:06 +01:00
Bruno Oliveira
6dcfc93d45
Merge pull request #7157 from nicoddemus/remove-blueyed-tidelift
2020-05-02 22:05:55 -03:00
Bruno Oliveira
799dab5284
Remove blueyed from TIDELIFT
...
blueyed is no longer a member of the pytest-dev organization.
2020-05-02 21:56:52 -03:00
Bruno Oliveira
3312820051
Merge pull request #7151 from nicoddemus/unittest-cleanup-6947
2020-05-02 15:43:54 -03:00
Bruno Oliveira
82f584b5a9
Fix test_trial_error in test_unittest
...
This reverts the test to the state before 04f27d4
, which introduced the breaking
change about addCleanup not being called properly for failed tests.
2020-05-02 15:26:55 -03:00
Bruno Oliveira
5c2e96c0e6
Fix cleanup functions not being invoked on test failures
...
Also delay calling tearDown() when --pdb is given, so users still have
access to the instance variables (which are usually cleaned up during tearDown())
when debugging.
Fix #6947
2020-05-02 15:26:55 -03:00
Bruno Oliveira
2b51ed46d5
Merge pull request #7153 from nicoddemus/xunit-warning-update
2020-05-02 13:31:34 -03:00
Bruno Oliveira
095a195d71
Improve docs about junit_family warning message
...
From discussion in #6178
2020-05-02 13:01:15 -03:00
Bruno Oliveira
0b78983197
Merge pull request #7141 from bluetech/rm-nonzero
2020-05-02 10:00:35 -03:00
Bruno Oliveira
5afa8717db
Merge pull request #7147 from nicoddemus/doc-typos
2020-05-01 17:36:29 -03:00
Bruno Oliveira
e3643751bc
Merge pull request #7144 from nicoddemus/async-testcase-7110
2020-05-01 16:44:10 -03:00
Bruno Oliveira
fd2f172258
Let unittest frameworks deal with async functions
...
Instead of trying to handle unittest-async functions in pytest_pyfunc_call,
let the unittest framework handle them instead.
This lets us remove the hack in pytest_pyfunc_call, with the upside that
we should support any unittest-async based framework.
Also included 'asynctest' as test dependency for py37-twisted, and renamed
'twisted' to 'unittestextras' to better reflect that we install 'twisted' and
'asynctest' now.
This also fixes the problem of cleanUp functions not being properly called
for async functions.
Fix #7110
Fix #6924
2020-05-01 15:10:28 -03:00
Bruno Oliveira
5c37898949
Fix some typos in the CHANGELOG
2020-05-01 14:39:09 -03:00
Bruno Oliveira
d0fe6e01c8
Merge pull request #7143 from nicoddemus/file-from-parent
2020-05-01 13:07:40 -03:00
Bruno Oliveira
7f5978c34c
Allow File.from_parent to forward custom parameters to the constructor
2020-05-01 11:00:52 -03:00