Bruno Oliveira
486ded3fca
Fix flaky durations test
...
Unfortunately due to fluctuations in runtime "test_something"
might still appear in the final message.
Example failure:
https://ci.appveyor.com/project/pytestbot/pytest/builds/19494829/job/8lx847u0c78m63wf
2018-10-14 12:22:56 -03:00
Bruno Oliveira
9fb305b17b
Merge pull request #4086 from jeffreyrack/4063-exclude-0-durations
...
Exclude durations that are 0.00 seconds long.
2018-10-13 22:16:04 -03:00
Daniel Hahler
7268462b33
Resolve symlinks for args
...
This fixes running `pytest tests/test_foo.py::test_bar`, where `tests`
is a symlink to `project/app/tests`: previously
`project/app/conftest.py` would be ignored for fixtures then.
2018-10-13 23:59:05 +02:00
Bruno Oliveira
3683d92c53
Adjust the 'durations hidden' message
2018-10-13 18:40:32 -03:00
Bruno Oliveira
24c83d725a
Merge pull request #4129 from nicoddemus/merge-master-into-features
...
Merge master into features (prepare for 3.9)
2018-10-13 12:05:54 -03:00
Daniel Hahler
6bf4692c7d
acceptance_test: clarify/document/fix tests
...
Ref: e2e6e31711 (r30863971)
2018-10-13 14:41:17 +02:00
Daniel Hahler
81426c3d19
tests: harden test_cmdline_python_package_symlink
2018-10-13 14:41:12 +02:00
Bruno Oliveira
8e11fe5304
Improve tracebacks for ImportErrors in conftest.py files
...
Fix #3332
2018-10-12 10:10:55 -03:00
Niklas JQ
c14a23d4e4
Fix #4093 : multiple string literals on a line
2018-10-10 19:28:31 +02:00
Jeffrey Rackauckas
fc11b81005
Exclude durations that are 0.00 seconds long.
2018-10-07 19:19:48 -07:00
Bruno Oliveira
1a323fbd3c
Show a warning when non-str is given to Monkeypatch.setenv
2018-10-01 20:07:07 -03:00
CrazyMerlyn
b01704cce1
Fix exit code for command line errors
...
Fixes #3913
2018-09-03 04:16:35 +00: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
8bb8b91357
pyupgrade 1.4: tests
2018-08-22 18:47:21 -07:00
Bruno Oliveira
07a560ff24
Fix collection error when tests is specified with --doctest-modules
...
The problem was that _matchnodes would receive two items: [DoctestModule, Module]. It would then collect the first one, *cache it*, and fail to match against the name in the command line. Next, it would reuse the cached item (DoctestModule) instead of collecting the Module which would eventually find the "test" name on it.
Added the type of the node to the cache key to avoid this problem, although I'm not a big fan of caches that have different key types.
Fix #3843
2018-08-21 21:02:46 -03:00
Bruno Oliveira
ef8ec01e39
Fix issue where fixtures would lose the decorated functionality
...
Fix #3774
2018-08-04 15:14:00 -03:00
Ronny Pfannschmidt
e860ff7299
port some acceptance tests over to copy_example
2018-06-26 22:59:40 +02:00
Anthony Sottile
cbaa7dd56a
Upgrade pre-commit hooks except pyupgrade
2018-06-26 06:35:27 -07:00
Ronny Pfannschmidt
703e4b11ba
run black
2018-05-23 16:48:46 +02:00
Ronny Pfannschmidt
9aacb4635e
run pyupgrade
2018-05-23 16:45:09 +02:00
Bruno Oliveira
78c900448e
Add acceptance test for #2798
2018-04-10 21:04:30 -03:00
Bruno Oliveira
59e7fd478e
Sort fixtures by scope when determining fixture closure
...
Fix #2405
2018-03-20 20:10:53 -03:00
Bruno Oliveira
aff463a3c4
Merge remote-tracking branch 'upstream/master' into features
2018-01-27 12:28:43 -02:00
Bruno Oliveira
af37778b0d
All classes now subclass object for better py3 compatibility
...
Fix #2147
2018-01-24 18:23:42 -02:00
Anthony Sottile
bd1d17e8de
Replace py.std with stdlib imports
2018-01-09 12:44:10 -08:00
Bruno Oliveira
93306f6a5e
Merge remote-tracking branch 'upstream/master' into features
2018-01-09 18:41:00 -02:00
Jurko Gospodnetić
f3c9c6e8a8
fix restoring Python state after in-process pytest runs
...
Now each in-process pytest run saves a snapshot of important global Python
state and restores it after the test completes, including the list of loaded
modules & the Python path settings.
Previously only the loaded package data was getting restored, but that was
also reverting any loaded package changes done in the test triggering the
pytest runs, and not only those done by the pytest runs themselves.
Updated acceptance tests broken by this change, which were only passing before
by accident as they were making multiple pytest runs with later ones depending
on sys.path changes left behind by the initial one.
2017-12-17 12:47:50 +01:00
Bruno Oliveira
924b5e2e3d
Merge pull request #3031 from nicoddemus/symlink-privileges
...
Check if symlink does have privileges on Windows for test_cmdline_python_package_symlink
2017-12-16 12:36:11 -02:00
Bruno Oliveira
586ecea6f2
Check if symlink does not privileges on Windows for test_cmdline_python_package_symlink
...
os.symlink might fail on Windows because users require a special policy
to create symlinks (argh).
This is not a problem on AppVeyor because it is logged in as an admin,
but would be surprising for Windows users running pytest's test
suite on their computer.
2017-12-14 19:23:15 -02:00
Bruno Oliveira
c3f63ac143
Fix memory leak caused by fixture values never been garbage collected
...
The leak was caused by the (unused) `FixtureRequest._fixture_values`
cache.
This was introduced because the `partial` object (created to call
FixtureDef.finish() bound with the Request) is kept alive
through the entire session when a function-scoped fixture depends
on a session-scoped (or higher) fixture because of the nested
`addfinalizer` calls.
FixtureDef.finish() started receiving a request object in order to
obtain the proper hook proxy object (#2127 ), but this does not seem
useful at all in practice because `pytest_fixture_post_finalizer`
will be called with the `request` object of the moment the fixture value
was *created*, not the request object active when the fixture value
is being destroyed. We should probably deprecate/remove the request
parameter from `pytest_fixture_post_finalizer`.
Fix #2981
2017-12-13 19:49:06 -02:00
Ronny Pfannschmidt
476d4df1b7
Merge pull request #3010 from cryvate/fix-issue-2985
...
Improve handling of pyargs
2017-12-13 13:56:42 +01:00
Henk-Jaap Wagenaar
dc19624248
Improve testing comments and code of issue 2985 (symlink in pyargs).
2017-12-12 08:26:40 +00:00
Jurko Gospodnetić
852b96714e
use spaces consistently instead of some of them being
2017-12-09 13:34:57 +01:00
Jurko Gospodnetić
41a6ec6f31
touch up test_cmdline_python_namespace_package() test code
2017-12-09 13:34:56 +01:00
Jurko Gospodnetić
f0bfe9de3d
shorten some test code
2017-12-09 13:34:56 +01:00
Henk-Jaap Wagenaar
b62fd79c0c
Fix issue 2985.
2017-12-07 15:12:44 +00:00
Bruno Oliveira
89cf943e04
Always escape null bytes when setting PYTEST_CURRENT_TEST
...
Fix #2957
2017-11-28 19:45:13 -02:00
Bruno Oliveira
dab889304e
Implement progress percentage reporting while running tests
...
Fix #2657
2017-11-21 21:01:41 -02:00
Bruno Oliveira
f074fd9ac6
Merge remote-tracking branch 'upstream/features' into malinoff/fix-2124
2017-11-12 11:16:08 -02:00
hugovk
ef732fc51d
Remove code for unsupported Python versions
2017-10-10 08:54:56 +03:00
Christian Boelsen
14b6380e5f
Fix #2775 - running pytest with "--pyargs" will result in Items with empty "parent.nodeid" if run from a different root directory
2017-09-13 17:15:32 +01:00
Bruno Oliveira
1deac2e210
Properly escape test names when setting PYTEST_CURRENT_TEST environment variable
...
Fix #2644
2017-08-01 20:52:37 -03:00
Andras Tim
7248b759e8
Fixed E303 flake8 errors
...
too many blank lines (3)
2017-07-17 01:44:23 +02:00
Andras Tim
17a21d540b
Fixed E301 flake8 errors
...
expected 1 blank line, found 0
2017-07-17 01:44:23 +02:00
Andras Tim
195a816522
Fixed E265 flake8 errors
...
block comment should start with ‘# ‘
2017-07-17 01:44:22 +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
4b22f270a3
Fixed E226 flake8 errors
...
missing whitespace around arithmetic operator
2017-07-17 01:44:22 +02:00
Andras Tim
2e8caefcab
Fixed E225 flake8 errors
...
missing whitespace around operator
2017-07-17 01:44:22 +02:00
Andras Tim
051d76a63f
Fixed E124 flake8 errors
...
closing bracket does not match visual indentation
2017-07-17 01:28:16 +02:00
Bruno Oliveira
87e4a28351
Fix incorrect collected items report when specifying tests on the command-line
...
Fix #2464
2017-06-03 20:39:53 -03:00
Bruno Oliveira
83c508eea3
Verify hooks after collection completes
...
Fix #1821
2017-04-11 21:55:12 -03:00
reut
333ce9849d
added acceptance test for unicode plugin names
2017-04-06 10:54:47 +00:00
Bruno Oliveira
74b54ac0ec
Fix errors related to warnings raised on pypy test environment
...
For some reason pypy raises this warning in the line that the catch_warnings block was added:
______________________________ ERROR collecting ______________________________
C:\ProgramData\chocolatey\lib\python.pypy\tools\pypy2-v5.4.1-win32\lib-python\2.7\pkgutil.py:476: in find_loader
loader = importer.find_module(fullname)
c:\pytest\.tox\pypy\site-packages\_pytest\assertion\rewrite.py:75: in find_module
fd, fn, desc = imp.find_module(lastname, path)
<builtin>/?:3: in anonymous
???
E ImportWarning: Not importing directory 'c:\users\bruno\appdata\local\temp\pytest-of-Bruno\pytest-3192\testdir\test_cmdline_python_package0' missing __init__.py
2017-03-21 22:32:41 -03:00
Bruno Oliveira
fa56114115
Clean up warnings generated by pytest's own suite
2017-03-20 22:13:17 -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
Michal Wajszczuk
fb0b90646e
New-style classes implemented for python 2.7 - #2147
2017-02-16 20:28:17 +01:00
Bruno Oliveira
7d66e4eae1
Display full traceback from Import errors when collecting test modules
...
Fix #1976
2016-10-03 20:47:44 -03:00
Bruno Oliveira
6a8160b318
Add acceptance test for module loader
...
Related to #1837
2016-08-22 17:57:25 -03:00
Floris Bruynooghe
510a6083ba
Merge pull request #1758 from nicoddemus/deprecated-module
...
Add deprecation module to centralize deprecation messages and bits of…
2016-07-28 22:36:55 +01:00
Bruno Oliveira
c2864aba3d
Merge branch 'master' into merge-master
...
# Conflicts:
# AUTHORS
# CHANGELOG.rst
# _pytest/monkeypatch.py
# _pytest/python.py
2016-07-25 19:06:29 -03:00
Bruno Oliveira
6c8b0a28e1
Add deprecation module to centralize deprecation messages and bits of code
2016-07-25 18:14:39 -03:00
Edoardo Batini
e9a67e6702
Adjust test involving FixtureLookupErrorRepr
...
I added a starting 'E' to the expected error messages.
The tests were still passing after the previous patch but I think it's
better to have stricter tests.
2016-07-23 23:45:07 +02:00
Bruno Oliveira
3328cd2620
Make assert in test_str_args_deprecated more resilient
...
This attempts to fix CI which broke because of this test.
Other warnings introduced in the future could break
this test.
2016-07-14 18:37:59 -03:00
Bruno Oliveira
ab0b6faa5f
Deprecate support for passing command-line as string to pytest.main()
...
Fixes #1723
2016-07-14 08:11:43 -03:00
Daniel Hahler
3cfebdd7c5
funcarg_prefix_warning: remove newline
...
Followup to https://github.com/pytest-dev/pytest/pull/1718 .
2016-07-13 18:33:24 +02:00
Bruno Oliveira
ad4125dc0d
Deprecate "pytest_funcarg__" prefix to declare fixtures
...
Fixes #1684
2016-07-11 22:21:50 -03:00
Bruno Oliveira
5506dc700c
Deprecate yield tests
...
Closes #16
Closes #1324
2016-07-11 22:21:49 -03:00
Ronny Pfannschmidt
083f64100d
merge master into features
2016-06-22 14:39:33 +02:00
Omar Kohl
ede7478dcc
Exit pytest on collection error (without executing tests)
...
Add --continue-on-collection-errors option to restore the previous behaviour:
Execute tests (that were successfully collected) even when collection errors
happen.
Some tests had to be modified e.g. because the return code changed to 2
(EXIT_INTERRUPTED) instead of 1 (EXIT_TESTSFAILED) because an Interrupted
exception is raised on collection error.
Implemented via pair programming with:
Oleg Pidsadnyi <oleg.pidsadnyi@gmail.com>
closes #1421
2016-06-21 13:32:34 +02:00
taschini
4d9e293b4d
Incorporated feedback ( #1597 ).
...
Fixed problem caused in a test on Windows by file left open by PyPy and not immediately garbage collected.
2016-06-14 07:12:40 +02:00
taschini
e2e6e31711
Ensure that a module within a namespace package can be found by --pyargs.
2016-06-14 07:12:40 +02:00
Ronny Pfannschmidt
c49863aa63
merge next chunk from master and fix changelog linting issue
2016-05-13 19:36:47 +02:00
Omar Kohl
56855893ca
Raise CollectError if import test module fails
...
One of the reasons for failing to import the test module is invalid Python
identifiers in the full package path of the test module.
fix #1426
2016-04-23 13:50:48 +02:00
Tyler Goodlet
053c052190
Always lstrip() keyword expression
2016-04-01 13:10:05 -04:00
Matt Bachmann
8ce32b0795
When a regex pattern contains bytes instead of a string use escape_encode to turn it into a string before further processing. Thanks @nicoddemus for the review and tips!
2016-03-05 21:04:34 -05:00
Bruno Oliveira
a912d3745b
Moved py.code code over to py.test
...
Fix #103
2016-01-25 23:18:04 -02:00
Bruno Oliveira
af893aab26
Remove code related to support python <= 2.5
...
Fix #1226
2015-12-16 16:16:22 -02:00
Bruno Oliveira
2ffd37b816
return non-zero exit code if no tests are collected
...
Fix #812
Fix #500
2015-08-18 07:35:02 -03:00
Bruno Oliveira
e103932aad
Reintroduce hasplugin to PytestPluginManager
...
Fix #932
2015-08-09 19:30:49 -03:00
Bruno Oliveira
9f94e443ff
Merge remote-tracking branch 'upstream/pytest-2.7'
...
Conflicts:
testing/conftest.py
2015-07-24 19:24:21 -03:00
Bruno Oliveira
35bbcc39a2
Interpret strings to "plugins" arg in pytest.main() as module names
...
See #855
2015-07-23 23:37:09 -03:00
Bruno Oliveira
3c2fd833ca
Reintroduce get_plugin_manager() for backward-compatibility
...
PyCharm pytest runner depends on this function existing (see #787 ).
Added reference to get_plugin_manager() and PluginManager/PytestPluginManager to docs
2015-06-25 00:48:47 -03:00
holger krekel
db5649ec6a
streamline pytester API majorly:
...
- integrate conftest into pytester plugin
- introduce runpytest() to either call runpytest_inline (default) or
runpytest_subprocess (python -m pytest)
- move testdir.inline_runsource1 to pdb tests
- strike some unneccessary methods.
- a new section "writing plugins" and some better pytester docs
--HG--
branch : testrefactor
2015-04-28 11:54:53 +02:00
holger krekel
a8afba054a
- refine lsof checking
...
- make runpytest() create an inline testing process instead of
a subprocess one
--HG--
branch : testrefactor
2015-04-28 11:54:46 +02:00
Bruno Oliveira
15328c04eb
Handle inspect.getsourcelines failures in FixtureLookupError
...
Fixes #553
--HG--
branch : getsourcelines-error-issue-553-pytest2.7
2015-04-15 19:31:22 -03:00
holger krekel
51cff6f106
fix issue486: better reporting and handling of early conftest loading failures
...
--HG--
branch : issue486
2014-04-02 20:42:41 +02:00
holger krekel
2e1f6c85f6
introduce resume/suspend functionality for FDCapture and SysCapture,
...
fixing problems with early bailouts (from argparse's parse() function e.g.)
that wrote to stdout.
2014-04-01 14:19:58 +02:00
holger krekel
2b8a54d5d9
refine skipif to use direct booleans, to help with flakes
2014-01-29 11:46:36 +01:00
Ronny Pfannschmidt
97da43d909
merge from default
...
--HG--
branch : multi-usageerror
2014-01-25 10:42:21 +01:00
Jurko Gospodnetić
83620ced2e
trim trailing spaces
2014-01-18 10:40:20 +01:00
Virgil Dupras
e118682db1
Added test for previous crash on failed import fix
...
Also, rewrote the fix a bit.
ref #383 .
2013-11-15 14:03:57 -05:00
holger krekel
8ac5af2896
fix flakes issues and make --flakes run part of tox runs
2013-10-12 15:39:22 +02:00
holger krekel
d226b2faf4
release announcement, bump version numbers, some test adapatations because of random win32 test failures.
2013-10-01 12:37:11 +02:00
holger krekel
2c7d00579b
bump version, some windows test fixes, prevent logging from raising exceptions at the end (finally), add py25 to tox.ini.
2013-09-30 16:09:26 +02:00
holger krekel
a930f44e60
introduce pluginmanager.ensure_teardown() which allows
2013-09-28 22:23:00 +02:00
Ronny Pfannschmidt
cf37c477bb
output errors for all failures of specific collection
...
when issueing a command with many specific items to collect,
print all collect failures instead of just the first one
--HG--
branch : multi-usageerror
2013-09-08 22:26:51 +02:00
holger krekel
8f24e10571
add changelog entry for anthon's hynek-fication of options,
...
and change the docs and tests to use the new style.
2013-08-01 17:32:19 +02:00
holger krekel
712898cfe1
- add release announce
2013-03-28 10:21:03 +01:00