Daniel Hahler
6fce1f0ac7
pkg_roots per session
2018-11-07 20:06:35 +01:00
Daniel Hahler
bbb9d72c13
remove paths/parts
2018-11-07 19:36:19 +01:00
Daniel Hahler
f8b944dee0
pkg_roots
2018-11-07 19:35:25 +01:00
Daniel Hahler
134b103605
XXX: revert _collect_seen_pkgdirs
2018-11-07 11:01:39 +01:00
Daniel Hahler
fa35f650b5
Fix handling of duplicate args with regard to Python packages
...
Fixes https://github.com/pytest-dev/pytest/issues/4310 .
2018-11-07 10:06:09 +01:00
Daniel Hahler
cb57159e01
Handle os.chdir() during collection
2018-11-05 23:18:47 +01:00
Anthony Sottile
176d27440c
Merge pull request #4308 from asottile/compare_versions_with_loose_version
...
Don't string-compare version numbers
2018-11-05 12:42:26 -08:00
Ronny Pfannschmidt
f521f5e012
move the _bestrelpathcache to session
2018-11-05 21:07:21 +01:00
Fabien ZARIFIAN
5f61f0d2cb
Update __init__.py
...
As mentionned by @RonnyPfannschmidt, use set_blocked on module stepwise (and it's brother pytest_stepwise like consider_pluginarg method does)
2018-11-05 10:51:15 +01:00
Anthony Sottile
a4819844a4
Use unicode/bytes literals instead of calls
2018-11-04 17:43:24 -08:00
Anthony Sottile
85a3333824
Don't string-compare version numbers
2018-11-04 17:31:48 -08:00
Fabien ZARIFIAN
1793ac38a9
Update __init__.py
2018-11-05 00:21:12 +01:00
Fabien ZARIFIAN
c55ca155e9
Update __init__.py
...
#4304
2018-11-04 21:55:56 +01:00
Bruno Oliveira
d1c9c54571
Merge pull request #4297 from nicoddemus/release-3.10.0
...
Release 3.10.0
2018-11-04 12:25:30 -03:00
Bruno Oliveira
6befdf8b46
Merge remote-tracking branch 'upstream/master' into release-3.10.0
2018-11-03 13:42:20 +00:00
Daniel Hahler
e61e81a7b5
Make debugging's pytest_configure re-entrant
...
This is relevant when using runpytest in-process.
Fixes:
E def test_1(testdir):
E testdir.runpytest()
E > __import__('pdb').set_trace()
E
E ../../test_trace_after_runpytest.py:3:
E …/Vcs/pytest/src/_pytest/debugging.py:81: in set_trace
E tw = _pytest.config.create_terminal_writer(cls._config)
E
E config = None, args = (), kwargs = {}, tw = <py._io.terminalwriter.TerminalWriter object at 0x7f1097088160>
E
E def create_terminal_writer(config, *args, **kwargs):
E """Create a TerminalWriter instance configured according to the options
E in the config object. Every code which requires a TerminalWriter object
E and has access to a config object should use this function.
E """
E tw = py.io.TerminalWriter(*args, **kwargs)
E > if config.option.color == "yes":
E E AttributeError: 'NoneType' object has no attribute 'option'
2018-11-02 18:25:01 +01:00
Daniel Hahler
023e1c78df
paths: use set and isdisjoint
...
Time: 5.36s => 4.85s (before rebase: 4.45s => 3.55s)
2018-11-02 17:43:04 +01:00
Daniel Hahler
6ffa347c77
Handle dirs only once
...
Time: 5.73s/5.88s => 5.36s
(Before rebase: 4.86s => 4.45s)
2018-11-02 17:43:04 +01:00
Anders Hovmöller
2b50911c9d
Minor refactor for readability
...
Time: 5.73s => 5.88s/5.82s
2018-11-02 17:42:53 +01:00
Anders Hovmöller
a41820fbf0
collection: performance: use optimized parts function
...
Time: 8.53s => 5.73s
2018-11-02 17:42:53 +01:00
Bruno Oliveira
21725e9304
Merge pull request #4285 from kchmck/fix-4046
...
Fix problems with running tests in package `__init__` files (#4046 )
2018-11-02 08:26:07 -03:00
Bruno Oliveira
48f52b1be0
Merge pull request #4279 from williamjamir/improve-warning-msg
...
Improve the warning message for the implicitly str conversion
2018-11-02 08:22:15 -03:00
Daniel Hahler
e30f7094f3
python: collect: ignore exceptions with isinstance
...
Fixes https://github.com/pytest-dev/pytest/issues/4266 .
2018-11-01 22:14:13 +01:00
Mick Koch
5ac4eff09b
Fix __init__.py as argument also including other package files
2018-11-01 13:10:52 -04:00
Daniel Hahler
d65f300988
Move handling of duplicate files
...
This removes the hack added in https://github.com/pytest-dev/pytest/pull/3802 .
Adjusts test:
- it appears to not have been changed to 7 intentionally.
- removes XXX comment, likely not relevant anymore since 6dac7743 .
2018-11-01 13:06:36 -04:00
Bruno Oliveira
f2cebce2eb
Merge pull request #4272 from blueyed/cache-non-default
...
cacheprovider: display cachedir also in non-verbose mode if customized
2018-11-01 12:19:21 -03:00
Daniel Hahler
a192e6b430
Merge pull request #4247 from blueyed/lru
...
_getconftestmodules: use functools.lru_cache
2018-11-01 15:55:38 +01:00
Daniel Hahler
ce1cc3dddb
_getconftestmodules: use functools.lru_cache
...
Also renames `_path2confmods` to `_dirpath2confmods` for clarity (it is
expected to be a dirpath in `_importconftest`).
Uses an explicit maxsize, since it appears to be only relevant for a
short period [1].
Removes the lru_cache on _getconftest_pathlist, which makes no
difference when caching _getconftestmodules, at least with the
performance test of 100x10 files (#4237 ).
1: https://github.com/pytest-dev/pytest/pull/4237#discussion_r228528007
2018-10-31 23:17:05 +01:00
William Jamir Silva
5404246e64
Improve the warning message for the implicitly str conversion
...
Signed-off-by: William Jamir Silva <williamjamir@gmail.com>
2018-10-31 16:19:10 -03:00
Daniel Hahler
e0038b82f7
pdb: improve msg about output capturing with set_trace
...
Do not display "IO-capturing turned off/on" when ``-s`` is used to avoid
confusion.
2018-10-31 17:09:01 +01:00
Bruno Oliveira
0fea71a4f5
Merge pull request #4164 from RonnyPfannschmidt/nowarn-session-attributes
...
don`t parse compat properties as fixtures
2018-10-31 12:52:52 -03:00
Ronny Pfannschmidt
da04ff52e4
ignore _CompatProperty when parsing fixtures
...
this avoid triggering the warnings when parsing the session node as session plugin
2018-10-31 15:01:41 +01:00
Daniel Hahler
ff04a1fb09
Merge pull request #4267 from nicoddemus/tmpdir-4262
...
Fix access denied error when deleting a stale temporary directory
2018-10-31 00:25:13 +01:00
Daniel Hahler
1f1d4aaf68
cacheprovider: display cachedir also in non-verbose mode if customized
2018-10-30 23:09:54 +01:00
Bruno Oliveira
f20eeebde9
Fix access denied error when deleting a stale temporary directory
...
Fix #4262
2018-10-30 15:35:53 -03:00
Bruno Oliveira
46ec0ec43a
Merge pull request #4264 from scop/spelling2
...
Spelling and grammar fixes
2018-10-30 08:24:01 -03:00
Ville Skyttä
a035c89ea7
Spelling fix
2018-10-30 09:38:55 +02:00
Daniel Hahler
40228fce5a
collection: _recurse: skip __pycache__
2018-10-30 02:34:32 +01:00
Ville Skyttä
22ab737243
Spelling and grammar fixes
2018-10-29 23:45:45 +02:00
Anthony Sottile
0d1f142b1c
Swallow warnings during anonymous compilation of source
2018-10-29 08:38:10 -07:00
Anthony Sottile
8c475a45bb
Unrelated cleanups of source.py
2018-10-28 16:43:17 -07:00
Bruno Oliveira
3b7fbcd47f
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2018-10-27 14:29:01 -03:00
Ronny Pfannschmidt
9fe871016d
Merge pull request #4147 from davidszotten/stepwise
...
Stepwise
2018-10-27 15:05:05 +02:00
Ankit Goel
1d09e1d8ce
Merge pull request #4248 from jdufresne/binary-type
...
Remove use of unnecessary compat shim, six.binary_type
2018-10-27 00:03:16 +05:30
Bruno Oliveira
d59786fcc4
Merge pull request #4222 from RonnyPfannschmidt/pathlib-fixes
...
handle race condition when creation and deletion of a numbered dir overlap
2018-10-26 14:36:43 -03:00
Daniel Hahler
dcdf86ef5b
python: collect: revisit
2018-10-26 16:06:37 +02:00
Jon Dufresne
167e9b954a
Remove use of unnecessary compat shim, six.binary_type
...
The type `bytes` is available on all supported Python versions. On
Python 2.7, it is an alias of str, same as six.binary_type.
Makes the code slightly more forward compatible.
2018-10-26 06:27:50 -07:00
Daniel Hahler
9cde67c09c
Merge pull request #4224 from blueyed/_getconftestmodules
...
_getconftestmodules: avoid isfile()/dirpath()
2018-10-26 14:44:46 +02:00
Ronny Pfannschmidt
ae2fc27799
handle test folder cleanup being unable to create a cleanup lock
2018-10-26 14:31:54 +02:00
Bruno Oliveira
8d0e1a99e4
Merge pull request #4241 from blueyed/move-duplicates
...
Move handling of duplicate files
2018-10-26 08:07:48 -03:00
Ronny Pfannschmidt
ce0b0518c7
fix #4243 - support positional argument stacklevel on python2
2018-10-26 09:01:25 +02:00
Anthony Sottile
777e9e1e17
Merge remote-tracking branch 'origin/master' into merge-master
2018-10-25 18:00:39 -07:00
Daniel Hahler
e041823643
Move handling of duplicate files
...
This removes the hack added in https://github.com/pytest-dev/pytest/pull/3802 .
Adjusts test:
- it appears to not have been changed to 7 intentionally.
- removes XXX comment, likely not relevant anymore since 6dac7743 .
2018-10-25 20:48:08 +02:00
Daniel Hahler
63691f5656
_getconftestmodules: avoid isfile()/dirpath()
...
Ref: https://github.com/pytest-dev/pytest/issues/2206#issuecomment-432623646
2018-10-25 20:25:07 +02:00
Daniel Hahler
0dc6cb298e
Move lru_cache wrapper to compat
...
Ref: https://github.com/pytest-dev/pytest/pull/4227#discussion_r228060373
2018-10-25 18:20:36 +02:00
Daniel Hahler
ede3a4e850
pytest_{enter,leave}_pdb: pass through pdb instance
2018-10-25 13:28:24 +02:00
Daniel Hahler
a4ea66cb1f
pdb: resume capturing after `continue`
...
After `pdb.set_trace()` capturing is turned off.
This patch resumes it after using the `continue` (or `c` / `cont`)
command.
Store _pytest_capman on the class, for pdbpp's do_debug hack to keep it.
Without this, `debug …` would fail like this:
/usr/lib/python3.6/cmd.py:217: in onecmd
return func(arg)
.venv/lib/python3.6/site-packages/pdb.py:608: in do_debug
return orig_do_debug(self, arg)
/usr/lib/python3.6/pdb.py:1099: in do_debug
sys.call_tracing(p.run, (arg, globals, locals))
/usr/lib/python3.6/bdb.py:434: in run
exec(cmd, globals, locals)
/usr/lib/python3.6/bdb.py:51: in trace_dispatch
return self.dispatch_line(frame)
/usr/lib/python3.6/bdb.py:69: in dispatch_line
self.user_line(frame)
/usr/lib/python3.6/pdb.py:261: in user_line
self.interaction(frame, None)
.venv/lib/python3.6/site-packages/pdb.py:203: in interaction
self.setup(frame, traceback)
E AttributeError: 'PytestPdb' object has no attribute '_pytest_capman'
- add pytest_leave_pdb hook
- fixes test_pdb_interaction_capturing_twice: would fail on master now,
but works here
2018-10-25 13:28:24 +02:00
Anthony Sottile
2368fbb63c
Apply reorder-python-imports to all files
2018-10-25 00:01:29 -07:00
Ronny Pfannschmidt
f6dfca7182
Merge pull request #4229 from nicoddemus/fix-warning-location
...
Show node that originated a warning in the warnings summary
2018-10-25 08:26:01 +02:00
Ronny Pfannschmidt
65b97c2f41
Merge pull request #4227 from blueyed/_getconftest_pathlist-lru
...
Use functools.lru_cache with _getconftest_pathlist
2018-10-25 08:12:51 +02:00
Bruno Oliveira
1786ad16a7
functools.lru_cache does not exist on Python 2, apply for Python 3 only
2018-10-24 18:59:54 -03:00
Daniel Hahler
2cf4c67e45
doc: fix caplog: s/methods/properties/
2018-10-24 23:57:11 +02:00
Bruno Oliveira
2ad43ee442
Show node that originated a warning in the warnings summary
...
Fix #4221
2018-10-24 18:49:53 -03:00
Daniel Hahler
57caa4e25e
Fix flake8: os imported, but unused
...
Likely due to b6fa4e24 .
2018-10-24 23:43:41 +02:00
Bruno Oliveira
b6fa4e248f
Merge pull request #4028 from asottile/revert_breakpoint_code
...
Revert patching of breakpointhook as it appears to do nothing
2018-10-24 17:50:19 -03:00
Daniel Hahler
eee8201e4f
Merge remote-tracking branch 'origin/master' into merge-master
2018-10-24 22:36:34 +02:00
Daniel Hahler
d40cd3ec6b
Use functools.lru_cache with _getconftest_pathlist
...
For pytest's own suite the `cache_info()` looks as follows:
> session.config._getconftest_pathlist.cache_info()
CacheInfo(hits=231, misses=19, maxsize=None, currsize=19)
While it does not really make a difference for me this might help with
larger test suites / the case mentioned in
https://github.com/pytest-dev/pytest/issues/2206#issuecomment-432623646 .
2018-10-24 18:22:30 +02:00
Daniel Hahler
f8f4c16020
TerminalWriter: write "collecting" msg only once every 0.1s
...
Running `pytest -k doesnotmatch` on pytest's own tests takes ~3s with
Kitty terminal for me, but only ~1s with `-q`.
It also is faster with urxvt, but still takes 2.2s there.
This patch only calls `report_collect` every 0.1s, which is good enough
for reporting collection progress, and improves the time with both Kitty
and urxvt to ~1.2s for me.
2018-10-24 16:48:35 +02:00
Daniel Hahler
b51ee48f78
minor: remove unused _shutil_rmtree_remove_writable
2018-10-23 17:36:22 +02:00
Daniel Hahler
fadac0ffc0
Fix "Plugin already registered" error with symlinks
...
Fixes https://github.com/pytest-dev/pytest/issues/4174 .
2018-10-23 10:15:23 +02:00
Anthony Sottile
cb39bd0651
Fixes for flake8 master
2018-10-22 08:50:00 -07:00
Ankit Goel
cd72e23f3f
Merge pull request #4207 from nicoddemus/recursive-dep-fixtures
...
Improve error message when a recursive dependency between fixtures is detected
2018-10-20 22:19:21 +05:30
Bruno Oliveira
7bb51b8ceb
Issue a warning when a fixture named 'request' is collected
...
Fix #611
2018-10-20 12:09:44 -03:00
Bruno Oliveira
b9990f77ff
Merge pull request #4204 from vbarbaresi/3340_log_hooks
...
Fix logging usage in hooks pytest_sessionstart/finish
2018-10-20 11:36:06 -03:00
Bruno Oliveira
02ae7d8531
Improve error message when a recursive dependency between fixtures is detected
...
Fix #2909
2018-10-20 09:44:42 -03:00
Bruno Oliveira
f947cb2613
Merge remote-tracking branch 'upstream/features' into davidszotten/stepwise
2018-10-20 09:18:02 -03:00
Vincent Barbaresi
db106d6085
Fix logging usage in hooks pytest_sessionstart/finish #3340
2018-10-20 09:55:10 +02:00
Bruno Oliveira
2abd005cc9
Merge pull request #4195 from nicoddemus/issue-3691
...
Use safe_str() to format warning message about unicode in Python 2
2018-10-19 07:18:29 -03:00
Anthony Sottile
dc0b4efffa
Merge pull request #4196 from nicoddemus/better-signature-error-msg-4026
...
Improve error message when it is not possible to determine a function's signature
2018-10-18 18:56:55 -07:00
Bruno Oliveira
18035211f5
Use safe_str() to format warning message about unicode in Python 2
...
Fix #3691
2018-10-18 21:56:17 -03:00
Anthony Sottile
61080da89d
Merge pull request #4192 from asottile/fix_recwarn_stacklevel
...
Fix filename reported by `warnings.warn` when using `recwarn` under python2.
2018-10-18 16:22:00 -07:00
Bruno Oliveira
ac5704290f
Improve error message when it is not possible to determine a function's signature
...
Fix #4026
2018-10-18 20:06:43 -03:00
Bruno Oliveira
b432f1207c
Merge pull request #4190 from nicoddemus/merge-master-into-features
...
Merge master into features
2018-10-18 19:23:16 -03:00
Anthony Sottile
cdd0e18ca8
Emulate resetting the warnings registry for python 2.x
2018-10-18 10:43:05 -07:00
Ankit Goel
1b51497936
[WIP] Update warning stacklevel when wrapping warnings.warn
2018-10-18 02:36:41 +00:00
Sven-Hendrik Haase
f694d8d6ad
Make --color more colorful
2018-10-18 03:56:58 +02:00
David Szotten
e478f66d8b
cache is set by the cacheprovider
2018-10-17 21:17:54 +01:00
Ronny Pfannschmidt
cc335d44a0
fix #4179 - bring back the current testrun symlink
2018-10-17 20:43:27 +02:00
Anthony Sottile
ab8907f6f5
s/comparision/comparison/g [ci skip]
2018-10-16 17:23:29 -07:00
Bruno Oliveira
ee0a306ee4
Merge remote-tracking branch 'upstream/features' into merge-features-into-master
2018-10-16 17:41:27 -03:00
Ankit Goel
f858177495
Merge pull request #4167 from vbarbaresi/3533_junit_escape_skipped
...
Fix #3533 : properly escape raw XML object
2018-10-16 21:10:42 +05:30
Bruno Oliveira
54b8ad4554
Merge pull request #4159 from thisch/subclassedfile
...
Increase required verbosity level for debug output
2018-10-16 10:41:27 -03:00
Vincent Barbaresi
f55ded20a9
fix #3533 : properly escape raw XML object
...
Using string formatting with the raw escaped object lead to string evaluation
"<py._xmlgen.raw object>"
Format the unescaped string first, then use the XML escape method as a last step.
2018-10-16 14:46:39 +02:00
David Szotten
d67d189d00
grammar
2018-10-15 20:04:39 +01:00
David Szotten
e773c8ceda
linting
2018-10-15 20:04:39 +01:00
David Szotten
63c01d1541
update for builtin plugin
2018-10-15 20:04:39 +01:00
David Szotten
c56d7ac40e
move files into the pytest file structure
2018-10-15 20:04:39 +01:00
Thomas Hisch
e8c220b9bd
Increase required verbosity level for debug output
...
To show the subclassed file in legacy test suits in the runtest output
you have to set the verbosity level to at least "-vv" now.
Closes #3211
2018-10-15 20:38:32 +02:00
Bruno Oliveira
9646a1cd7a
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2018-10-15 12:55:28 -03:00
Ankit Goel
141c51f0cb
Merge pull request #4145 from labcodes/4098
...
Add returncode argument to pytest.exit
2018-10-15 11:04:11 +05:30