Segev Finer
05796be21a
A workaround for Python 3.6 WindowsConsoleIO breaking with FDCapture
...
Python 3.6 implemented unicode console handling for Windows. This works
by reading/writing to the raw console handle using
``{Read,Write}ConsoleW``.
The problem is that we are going to ``dup2`` over the stdio file
descriptors when doing ``FDCapture`` and this will ``CloseHandle`` the
handles used by Python to write to the console. Though there is still some
weirdness and the console handle seems to only be closed randomly and not
on the first call to ``CloseHandle``, or maybe it gets reopened with the
same handle value when we suspend capturing.
The workaround in this case will reopen stdio with a different fd which
also means a different handle by replicating the logic in
"Py_lifecycle.c:initstdio/create_stdio".
See https://github.com/pytest-dev/py/issues/103
2017-06-02 11:19:03 +03:00
Segev Finer
9abff7f72f
Add a docstring to HelpAction
2017-06-01 22:25:09 +03:00
Segev Finer
f74f14f038
Fix --help with required options
...
This works by adding an argparse Action that will raise an exception in
order to skip the rest of the argument parsing. This prevents argparse
from quitting due to missing required arguments, similar to the way that
the builtin argparse --help option is implemented by raising SystemExit.
Fixes : #1999
2017-06-01 21:29:50 +03:00
Andreas Pelme
021e843427
Fixed #2121 Use `py.path`s fnmatch. This fixes an issue where
...
python_files handled properly when rewriting assertions.
2017-05-31 08:25:04 +02:00
Bruno Oliveira
1dee443c2b
Merge pull request #2445 from nicoddemus/warnings-remove-filter
...
No longer override existing warning filters during warnings capture
2017-05-30 18:14:01 -03:00
Bruno Oliveira
32e2642233
No longer override existing warning filters during warnings capture
...
Fix #2430
2017-05-30 17:17:36 -03:00
Bruno Oliveira
f96a1d89c5
pytest.deprecated_call now captures PendingDeprecationWarning in context manager form
...
Fix #2441
2017-05-30 12:52:18 -03:00
Bruno Oliveira
836dc451f4
Fix unicode issue while running doctests in Python 2
...
Fix #2434
2017-05-26 07:35:14 -03:00
wanghui
d7a5c5716f
Add UnicodeWarning for unicode warnings in Python2
2017-05-26 13:12:02 +08:00
wanghui
c39689da41
Correct warnings with unicode message.
2017-05-25 17:59:42 +08:00
Florian Bruhin
d9b93674c3
Make --cache-show output deterministic
...
This makes sure things don't jump around in the regenerated docs.
2017-05-23 08:01:39 +02:00
Bruno Oliveira
d343f9497c
Merge branch 'release-3.1'
2017-05-22 19:10:06 -03:00
Jason R. Coombs
c9c2c34b44
Remove unused parameter
2017-05-20 04:39:45 -04:00
Jason R. Coombs
9beeef970e
Parse the filename in the generator expression
2017-05-20 04:38:30 -04:00
Jason R. Coombs
43aa037ebd
Reindent
2017-05-20 04:38:30 -04:00
Jason R. Coombs
2abf2070f2
Collapse nested for loops into a generator expression
2017-05-20 04:38:30 -04:00
Jason R. Coombs
ce0ff0040f
Reindent and add docstring
2017-05-20 04:38:27 -04:00
Jason R. Coombs
6d2e11b7d1
Extract method for _mark_plugins_for_rewrite
2017-05-20 04:18:41 -04:00
Bruno Oliveira
d86c89e193
Revert refactor of old-style to new-style classes
...
As discussed in the mailing list, unfortunately this might break APIs
due to the subtle differences between new and old-style classes (see #2398 ).
This reverts commit d4afa1554b
from PR #2179 .
2017-05-17 18:20:51 -03:00
Ronny Pfannschmidt
783670b84e
Merge pull request #2274 from dmand/feat/junitxml/suite-name-option
...
Add `junit_suite_name` ini option
2017-05-13 19:10:29 +02:00
Dmitri Pribysh
c9282f9e94
Transition to using ini option for suite name
2017-05-12 17:48:50 -03:00
Dmitri Pribysh
fe7d89f033
Add '--junit-suite-name' CLI option
2017-05-12 17:48:50 -03:00
Ronny Pfannschmidt
8bcf88ec12
try to consider all modules after registration as plugin
2017-05-05 11:16:05 +02:00
Bruno Oliveira
f3b359f5b8
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
...
# Conflicts:
# _pytest/capture.py
# _pytest/compat.py
# _pytest/python.py
# testing/python/collect.py
# testing/test_mark.py
2017-05-03 19:04:53 -03:00
Bruno Oliveira
630cca2fba
Fix py35-trial environment
...
After updating to twisted 17.1.0, again the trial tests started to fail; didn't investigate too deep, decided to just
no longer delete "zope" modules when cleaning up after pytester because it seems more zope modules keep
global state that shouldn't be discarded
2017-05-02 21:05:42 -03:00
Vitaly Lashmanov
60b8339166
Issue #2383 - Show the correct error message when collect "parametrize" func with wrong args and add test for this case.
2017-04-29 14:32:09 +03:00
Bruno Oliveira
cccb2cc92b
Merge pull request #1834 from RonnyPfannschmidt/setuptools-scm-take-2
...
second take at setuptools_scm
2017-04-27 09:10:23 -03:00
Ronny Pfannschmidt
a280e43949
fix import error
2017-04-26 15:57:55 +02:00
Ronny Pfannschmidt
e02cb6d7ce
restore setuptools_scm write_to usage
2017-04-23 16:59:08 +02:00
Bruno Oliveira
25371ddbfd
Merge pull request #2315 from RonnyPfannschmidt/namespace-hook
...
remove pytest internal usage of the namespace hook
2017-04-21 16:24:20 -03:00
Ronny Pfannschmidt
4242bf6262
use unknown to specify unknown versions
2017-04-20 21:46:58 +02:00
Kodi Arfer
dcefb287fc
Try not to assume a module's file extension is .py
2017-04-19 12:26:56 -07:00
Ronny Pfannschmidt
2cf422733c
restore linting, drop _pytest._version for check-manifest
2017-04-19 20:25:53 +02:00
Ronny Pfannschmidt
c3aee4b1e6
second take at setuptools_scm
...
since setuptools 18.6 fixes the issues with develop installs
https://github.com/pypa/setuptools/blob/master/CHANGES.rst#186
https://github.com/pypa/setuptools/issues/439
2017-04-19 19:40:42 +02:00
Bruno Oliveira
cac82e71d8
Improve item.warn handling of fslocation parameter
...
Just pass fslocation forward and let the hook implementer decide what to do with the parameter
2017-04-13 19:01:14 -03:00
Bruno Oliveira
d9a2e70155
Change LsofFdLeakChecker to emit a warning instead of failing when detecting leaked FDs
...
Related to #2366
2017-04-13 17:34:48 -03:00
Michael Howitz
7d4ac14a31
Fix #2343 : Replace version checks by constants.
...
This way they do not have to be recomputed at runtime.
2017-04-12 08:18:09 +02:00
Bruno Oliveira
731776702d
Fix hook name in LsofFdLeakChecker
2017-04-11 21:55:12 -03:00
Bruno Oliveira
83c508eea3
Verify hooks after collection completes
...
Fix #1821
2017-04-11 21:55:12 -03:00
Bruno Oliveira
78ac1bf5d1
Merge pull request #2350 from nicoddemus/future-imports-rewrite
...
Ensure rewritten modules don't inherit __future__ flags from pytest
2017-04-11 20:59:05 -03:00
Jonas Obrist
0ab85e7a9c
Changed behavior if --lf and --ff are both used.
...
When using both --last-failed/--lf and --failed-first/--ff pytest would
run all tests with failed tests first (as if --lf was not provied). This
patch changes it so that when using both flags, only the last failed
tests are run. This makes it easier to set --ff as the default behavior
via the config file and then selectively use --lf to only run the last
failed tests.
2017-04-10 17:46:13 +09:00
Ben Lloyd
21f1c2b03f
Update fixtures.py
...
Corrected "or or" typo in docstring (and made indentation consistent).
2017-04-07 16:48:38 +01: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
reut
417b54abed
added option to unicode plugin name
2017-04-05 13:03:11 +00:00
Bruno Oliveira
a542ed48a2
Convert using utf-8 instead of ascii in safe_str()
...
This way we don't lose information and the returned string is
ascii-compatible anyway
2017-03-29 15:18:41 -03:00
Bruno Oliveira
58ac4faf0c
Fix exception formatting while importing test modules
...
Fix #2336
2017-03-29 14:43:13 -03:00
Ronny Pfannschmidt
afb1778294
put in a singular namespace hook to work around the strange issue
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
ebeba79be3
remove the namespace hook from mark after the param feature merge
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
6165939b0d
fix rebase mistakes
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
efe03400d8
fixup nose/pytest plugins
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
c9ab421398
fix python2 only import loop failure
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
147bb8aea5
correct setting pytest.config
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
7cdefce656
fix up oversights
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
92f6ab1881
fix all singular internal module imports and add a test for them
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
23bc9815c4
remove pytest_namespace from _pytest.fixtures
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
ae234786ea
remove pytest_namespace from _pytest.python
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
99c8f2d403
remove pytest_namespace from _pytest.main
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
61f418a267
hollow out pytest_namespace in _pytest.fixtures
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
9b58d6eaca
prepare a own pytest.collect fake module in oder to remove the nested builtin namespaces
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
839c936153
_pytest.mark: fix unconfigure after bad configure, still potential bug
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
7d797b7dbf
add a note about the deprecation of the pytest_namespace hook
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
9b755f6ec6
remove pytest_namespace from _pytest.skipping
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
90788defb2
remove pytest_namespace from _pytest.mark and fix latent pytest nesting bug
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
6a02cdbb35
remove pytest_namespace from _pytest/runner.py
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
c74103f395
remove pytest_namespace from recwarn and fixture decorators
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
794fd5658c
remove pytest_namespace from _pytest/debugging.py
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
fab9b993f8
remove pytest_namespace from _pytest.freeze_support
2017-03-28 11:45:06 +02:00
Ronny Pfannschmidt
5818e65cf3
remove pytest_namespace from _pytest/assertion
2017-03-28 11:35:29 +02:00
Bruno Oliveira
2c730743f1
Fix errors related to warnings raised by xdist
...
- pytester was creating a 'pexpect' directory to serve as temporary dir, but due to the fact that
xdist adds the current directory to sys.path, that directory was being considered as candidate
for import as a package. The directory is empty and a warning was being raised about
it missing __init__ file, which is now turned into an error by our filterwarnings config
in pytest.ini.
- Decided to play it safe and ignore any warnings during `pytest.importorskip`.
- pytest-xdist and execnet raise two warnings which should be fixed upstream:
pytest-dev/pytest-xdist/issues/133
2017-03-21 22:17:07 -03:00
Bruno Oliveira
fa56114115
Clean up warnings generated by pytest's own suite
2017-03-20 22:13:17 -03:00
Bruno Oliveira
d027f760c0
Avoid displaying the same warning multiple times for an item
2017-03-20 20:40:53 -03:00
Bruno Oliveira
3373e02eae
Add __future__ imports to warnings module
2017-03-20 20:06:01 -03:00
Bruno Oliveira
9f85584656
Merge remote-tracking branch 'upstream/features' into integrate-pytest-warnings
2017-03-20 19:59:05 -03:00
Ronny Pfannschmidt
e368fb4b29
implement pytest.param
...
this allows a clear addition of parameterization parameters that carry along marks
instead of nesting multiple mark objects and destroying the possibility of creating
function valued parameters,
it just folders everything together into one object carrfying parameters, and the marks.
2017-03-17 16:53:43 +01:00
Bruno Oliveira
e5021dc9dc
Replace py.builtin.print_() calls by builtin print() function
2017-03-16 22:46:51 -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
78194093af
Improve warning representation in terminal plugin and fix tests
2017-03-16 21:57:32 -03:00
Bruno Oliveira
be5db6fa22
Capture warnings around the entire runtestprotocol
...
This is necessary for the warnings plugin to play nice with the
recwarn fixture
2017-03-16 21:54:41 -03:00
Bruno Oliveira
0baed781fe
Merge remote-tracking branch 'upstream/features' into integrate-pytest-warnings
2017-03-16 20:02:06 -03:00
Xander Johnson
dc6890709e
Change ValueError to io.UnsupportedOperation in capture.py. Resolves issue #2276
2017-03-14 18:55:58 -03:00
Bruno Oliveira
fa15ae7545
Post 3.0.7 release handling
2017-03-14 18:07:44 -03:00
Bruno Oliveira
b1ab2ca963
Bump to version 3.0.7 and update CHANGELOG
2017-03-13 18:37:49 -04:00
Bruno Oliveira
22864b75ee
Refactor recwarn to use warnings.catch_warnings instead of custom code
...
Since we dropped 2.5, we can now use warnings.catch_warnings to do the
"catch warnings" magic for us, simplifying the code a bit.
2017-03-13 19:28:36 -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
fbjorn
cee578e327
Fix trailing whitespace in terminal output
2017-03-05 23:20:55 +03:00
Bruno Oliveira
272afa9422
Display node ids and the warnings generated by it
...
The rationale of using node ids is that users can copy/paste it to run a chosen test
2017-03-04 20:53:42 -03:00
Bruno Oliveira
bddb922f7b
Rename internal option to disable_warnings
2017-03-04 16:32:10 -03:00
Bruno Oliveira
de09023e45
Also capture warnings during setup/teardown
2017-03-04 16:15:03 -03:00
Bruno Oliveira
e24081bf76
Change warning output
2017-03-04 15:59:20 -03:00
Omer Hadari
6a52fe1650
fixed internal error on unprintable raised AssertionErrors
2017-03-04 10:26:46 +02:00
Katerina Koukiou
26e50f1162
junitxml: adjust junitxml output file to comply with JUnit xsd
...
Change XML file structure in the manner that failures in call and errors
in teardown in one test will appear under separate testcase elements in
the XML report.
2017-03-02 15:10:25 +01:00
Bruno Oliveira
3aac3d0a00
Merge branch 'master' into anydbmfix
2017-03-01 14:41:18 -03:00
Anthony Sottile
8b598f00e9
Make pytester use pytest's capture implementation
2017-02-23 17:46:28 -08:00
Anthony Sottile
6ba3475448
Make capsys more like stdio streams in python3. Resolves #1407 .
2017-02-23 17:46:27 -08:00
Katerina Koukiou
d3a6be4130
junitxml: Fix double system-out tags per testcase
...
In the xml report we now have two occurences for the system-out tag if
the testcase writes to stdout both on call and teardown and fails in
teardown.
This behaviour is against the xsd.
This patch makes sure that the system-out section exists only
once per testcase.
2017-02-22 16:39:20 +01:00
Bruno Oliveira
82785fcd40
Use warnings.catch_warnings instead of WarningsRecorder
...
This has the benefical side-effect of not calling the original
warnings.showwarnings function, which in its original form
only writes the formatted warning to sys.stdout.
Calling the original warnings.showwarnings has the effect that nested WarningsRecorder all catch the warnings:
with WarningsRecorder() as rec1:
with WarningsRecorder() as rec2:
warnings.warn(UserWarning, 'some warning')
(both rec1 and rec2 sees the warning)
When running tests with `testdir`, the main pytest session would then see the warnings created by
the internal code being tested (if any), and the main pytest session would end up with warnings as well.
2017-02-18 13:08:14 -02:00
Bruno Oliveira
a7643a5fbe
Merge branch 'features' into integrate-pytest-warnings
2017-02-18 11:03:15 -02:00
Bruno Oliveira
f1900bbea6
Revert subclassing explicitly from object introduced by accident in #2260
2017-02-18 10:34:41 -02:00
Victor Uriarte
a88017cf26
Add note documenting #2257
2017-02-16 23:00:55 -07:00
Victor Uriarte
58d7f4e048
Correct typo
2017-02-16 22:52:06 -07:00
Michal Wajszczuk
fb0b90646e
New-style classes implemented for python 2.7 - #2147
2017-02-16 20:28:17 +01:00
Bruno Oliveira
9c809f5ad0
Merge pull request #2255 from scop/spelling
...
Spelling fixes
2017-02-15 18:41:49 -02:00
Bruno Oliveira
27f12ed0c3
Merge pull request #2254 from scop/py36-escseq
...
Python 3.6 invalid escape sequence deprecation fixes
2017-02-15 18:41:06 -02:00
Ville Skyttä
ede4e9171f
Spelling fixes
2017-02-15 17:00:58 +02:00
Ville Skyttä
eeb6603d71
Python 3.6 invalid escape sequence deprecation fixes
2017-02-15 16:54:53 +02:00
Florian Bruhin
91c6bef77a
Add venv to the default norecursedirs
...
venv (without a dot) is commonly used as a name for a virtualenv directory, and
we don't want to collect that.
2017-02-15 14:55:12 +01:00
Patrick Hayes
58ce3a9e8c
Safer sys.modules delete
2017-02-14 16:54:32 -08:00
Bruno Oliveira
9eb1d73951
--override-ini now correctly overrides some fundamental options like "python_files"
...
#2238
2017-02-08 23:03:33 -02:00
Bruno Oliveira
6a097aa0f1
Merge branch 'master' into allow_skipping_unittests_with_pdb_active
2017-02-08 20:30:14 -02:00
Ran Benita
3a0a0c2df9
Ignore errors raised from descriptors when collecting fixtures
...
Descriptors (e.g. properties) such as in the added test case are
triggered during collection, executing arbitrary code which can raise.
Previously, such exceptions were propagated and failed the collection.
Now these exceptions are caught and the corresponding attributes are
silently ignored.
A better solution would be to completely skip access to all custom
descriptors, such that the offending code doesn't even trigger. However
I think this requires manually going through the instance and all of its
MRO for each and every attribute checking if it might be a proper
fixture before accessing it. So I took the easy route here.
In other words, putting something like this in your test class is still
a bad idea...:
@property
def innocent(self):
os.system('rm -rf /')
Fixes #2234 .
2017-02-07 14:27:34 +02:00
Ran Benita
87fb689ab1
Remove an unneeded `except KeyboardInterrupt`
...
KeyboardInterrupt is a subclass of BaseException, but not of Exception.
Hence if we remove this except, KeyboardInterrupts will still be raised
so the behavior stays the same.
2017-02-07 14:12:09 +02:00
Bruno Oliveira
ccf9877447
Merge pull request #2232 from vidartf/patch-1
...
Do not asssume `Item.obj` in 'skipping' plugin
2017-02-03 21:39:42 -02:00
Bruno Oliveira
a4d2a5785b
Merge pull request #2142 from barneygale/xfail_without_condition_getglobals
...
'xfail' markers without a condition no longer rely on the underlying `Item` objects deriving from `PyobjMixin`
2017-02-03 16:09:47 -02:00
Vidar Tonaas Fauske
bad261279c
Do not asssume `Item.obj` in 'skipping' plugin
...
See #2231 for discussion.
2017-02-03 16:04:34 +01:00
Thomas Kriechbaumer
43662ce789
allow error message matching in pytest.raises
2017-02-02 19:52:33 +01:00
mbyt
ad56cd8027
extract a _handle_skip method, secure PY2 branch
2017-02-02 05:01:51 +01:00
Bruno Oliveira
176c680e19
Merge branch 'master' into allow_skipping_unittests_with_pdb_active
2017-02-01 15:53:14 -02:00
Bruno Oliveira
e1c5314d80
Replace 'raise StopIteration' usages in the code by 'return's in accordance to PEP-479
...
Fix #2160
2017-02-01 02:37:55 -02:00
mbyt
36b6f17727
fixing code-style, keep flake8 happy
2017-01-31 21:03:49 +01:00
mbyt
d1c725078a
Allow to skip unittests if --pdb active
...
closes #2137
2017-01-31 04:47:31 +01:00
Ronny Pfannschmidt
3b47cb45e6
Merge pull request #2222 from RonnyPfannschmidt/features
...
merge master into features
2017-01-26 13:48:10 +01:00
Ronny Pfannschmidt
713bdc1f9f
merge master into features
2017-01-26 12:00:52 +01:00
Ronny Pfannschmidt
c9f327dc87
bump version to next dev
2017-01-22 22:21:08 +01:00
Ronny Pfannschmidt
01eaf9db51
fix the xfail docstring typo at the actual docstring + regendoc
2017-01-22 18:44:30 +01:00
Ronny Pfannschmidt
55f21bd2b9
bump version
2017-01-22 18:44:30 +01:00
Ravi Chandra
0e58c3fa80
updates for PR review #2198
2017-01-21 16:47:49 +13:00
Ravi Chandra
c848d0a771
Pass parameter name to `make_parametrize_id` hook function
2017-01-21 16:46:45 +13:00
Bruno Oliveira
15a3b57ec7
Merge pull request #2120 from RonnyPfannschmidt/fix-2118
...
fix #2118 - rework Node._getcustomclass and Node compat properties
2017-01-20 14:38:55 -02:00
Ronny Pfannschmidt
7b4afd8946
remove unused import
2017-01-20 12:09:49 +01:00
Bruno Oliveira
3766060893
Merge branch 'master' into trial-envs
2017-01-20 08:37:34 -02:00
Ronny Pfannschmidt
4082f4024a
comment out compatproperty deprecations
...
todo: reenable in the features branch
2017-01-20 11:25:48 +01:00
Ronny Pfannschmidt
e0c48b4fe7
Merge pull request #2212 from nicoddemus/pytester-rewrite
...
Assert statements of the pytester plugin again benefit from assertion rewriting
fixes #1920
2017-01-20 10:04:12 +01:00
Bruno Oliveira
7b4368f3f4
Merge pull request #2184 from eli-b/parseoutcomes-explicit-failure
...
Fail assert_outcomes() on missing terminal report
2017-01-19 21:38:54 -02:00
Bruno Oliveira
c477f09177
Assert statements of the pytester plugin again benefit from assertion rewriting
...
Fix #1920
2017-01-19 21:33:51 -02:00
Bruno Oliveira
2574da8d32
Fix pytester internal plugin to work correctly with latest versions of zope.interface
...
Fix #1989
2017-01-19 20:53:35 -02:00
Ronny Pfannschmidt
250597d468
get_real_func: use saferepr when formatting the error message
2017-01-19 13:05:58 +01:00
Ronny Pfannschmidt
123289a88e
fixes #2208 by introducing a iteration limit
2017-01-19 11:38:15 +01:00
Bruno Oliveira
7cd7c283dd
Refactor plugin specs handling into an isolated function
2017-01-12 14:31:35 -02:00
Bruno Oliveira
043aadeaf2
Consider plugins loaded by PYTEST_PLUGINS for assertion rewrite
...
Fix #2185
2017-01-11 17:15:16 -02:00
Eli Boyarski
e18b2a427a
Fail assert_outcomes() on missing terminal report
...
Currently if the terminal report of testdir.runpytest() is missing,
assert_outcomes() on its output fails because parseoutcomes()
returns an unexpected value (None).
It's better to fail parseoutcomes() directly.
2017-01-11 17:09:37 +02:00
mandeep
d4afa1554b
Refactored old style classes to new style classes
2017-01-08 22:52:42 -06:00
Jeff Widman
6d81c684cc
Switch monkeypatch fixture to yield syntax
2017-01-04 15:06:52 -08:00
Loïc Estève
9e9547a9e4
Simplify condition
2017-01-03 10:57:19 -02:00
Loïc Estève
6fd0394c63
pytest.warns checks for subclass relationship
...
rather than class equality. This makes it more similar to
pytest.raises.
2017-01-03 10:57:19 -02:00
Barney Gale
3d18c9c1c6
'xfail' markers without a condition no longer rely on the underlying `Item`
...
deriving from `PyobjMixin`
2017-01-02 22:01:04 +00:00
Rafael Bertoldi
a9193a1531
No longer silently ignore errors in parametrize callable ids
2017-01-02 17:26:17 -02:00
Bruno Oliveira
402fbe503a
Merge branch 'master' into merge-master-into-features
2016-12-27 23:31:26 -02:00
Bruno Oliveira
091148f843
Merge pull request #2136 from hroncok/i2132
...
Tests: Check for ModuleNotFoundError on Python 3.6+
2016-12-27 23:10:58 -02:00
Bruno Oliveira
718f0b0255
Merge pull request #2130 from malinoff/fix-2129
...
Use inspect to properly detect generators. Fixes #2129
2016-12-27 22:11:46 -02:00
Bruno Oliveira
515fb09995
Move module error compatibility code to _pytest.compat
2016-12-27 22:01:22 -02:00
Andreas Pelme
0bb8a4a36d
Fixed #2148 - parse directory names properly when args contains ::.
...
This commit also improves readbility in get_dirs_from_args by using self
documenting local functions.
get_dirs_from_args also now only returns directories that actually exists,
and not files to avoid confusion.
This commit also removes redundant checks in get_common_ancestor that
was already performed in get_dirs_from_args..
2016-12-27 15:28:56 +01:00
Loïc Estève
c5f0b751f4
Improve error message when pytest.warns fail
...
The error message contains the expected type of warnings and the
warnings that were captured. Add tests.
2016-12-20 13:45:39 +01:00
Bruno Oliveira
caee5ce489
Avoid importing asyncio directly because that in turn initializes logging ( #8 )
2016-12-13 21:54:20 -02:00
Dmitry Malinovsky
3a59acf69f
Use inspect to properly detect generators. Fixes #2129
2016-12-11 21:59:11 +06:00
Ronny Pfannschmidt
9c285dfc1d
fix #2118 - rework Node._getcustomclass and Node compat properties
2016-12-06 09:13:25 +01:00
Bruno Oliveira
3a0a1d2de3
Bump version to 3.0.6.dev0
2016-12-05 12:51:00 -02:00
Bruno Oliveira
0febd855e1
Bump version to 3.0.5
2016-12-05 10:06:58 -02:00
Bruno Oliveira
57c4489916
Use a simple ``+-`` ASCII string in the string representation of pytest.approx In Python 2
...
Fix #2111
2016-12-02 20:01:53 -02:00
Bruno Oliveira
7480342710
Fix typo in docstring of register_assert_rewrite
2016-12-02 09:22:47 -02:00
Bruno Oliveira
81528ea81f
Remove hook proxy cache
...
Fix #2016
2016-12-02 07:32:11 -02:00
Bruno Oliveira
bc0f7e6243
Fix false-positive assert rewrite warnings when using 'pytest_plugins'
...
pytest would emit false positive warnings about assertion-rewrite when a
module appears multiple times in plugins which depend
on other plugins using the 'pytest_plugins' mechanism
2016-12-01 15:50:08 -02:00
Luke Murphy
c856537e71
Add warning for incorrect passing args to `-o`.
2016-12-01 13:20:42 +01:00
Bruno Oliveira
30f0152ae6
Remove unused import
2016-11-30 22:34:02 -02:00
Bruno Oliveira
f8d195253e
Remove support code for earlier Python 3 version in Source.compile
...
This code leaves None in sys.modules as a side effect but is no longer needed in the Python 3 versions we support.
Fix #2103
2016-11-30 22:23:02 -02:00
Bruno Oliveira
669332b7e0
Merge pull request #2101 from wheerd/doctest-encoding
...
Added doctest encoding command line option
2016-11-30 17:43:42 -02:00
Luke Murphy
f5afd8cb54
Add missing `__test__` check for test discovery.
2016-11-30 17:05:42 +01:00
Manuel Krebber
c043bbb854
Changed the doctest_encoding option to an ini option.
...
Parametrized the tests for it.
2016-11-30 11:43:33 +01:00
Manuel Krebber
d254c6b0ae
Added some tests for --docstring-encoding option. Added option to specify encoding for internal testdir._makefile() for the tests.
2016-11-29 12:29:16 +01:00
Manuel Krebber
ed977513ec
Added a console option to specify the encoding to use for doctest files. Defaults to UTF-8.
2016-11-29 12:29:14 +01:00
Bruno Oliveira
8b4da9d955
Merge pull request #2100 from blueyed/fix-help-grammar
...
minor: fix grammar with help for --setup-{only,show}
2016-11-28 20:11:56 -02:00
Daniel Hahler
40cffacadc
minor: fix grammar with help for --setup-{only,show}
2016-11-28 21:33:15 +01:00
Luke Murphy
4e1609b12e
Add `type` validation.
...
Argparse driven argument type validation is added for the
`--junit-xml` and `--confcutdir` arguments.
The commit partially reverts #2080 . Closes #2089 .
2016-11-28 02:16:01 +01:00
Bruno Oliveira
b30a6d22c5
Merge branch 'master' into merge-master-into-features
2016-11-27 17:30:40 -02:00
nmundar
0a30f072e6
Show name argment in compatproperty deprecation message
2016-11-27 14:24:55 -02:00
nmundar
b38fad4b82
Add compatproperty deprecation warning.
2016-11-27 14:24:55 -02:00
Duncan Betts
c1b83cdeea
Add hint of Issue #478 to error text
2016-11-26 10:47:15 +00:00
Bruno Oliveira
33c0b06fdf
Fix error in approx's repr with complex numbers
...
Fix #2082
2016-11-24 15:33:12 -02:00
Bruno Oliveira
629d8e9fd6
Show an error if --confcutdir is not a valid directory
...
Fixes #2078
2016-11-23 09:49:11 -02:00
Ronny Pfannschmidt
a5b5090c72
Merge pull request #2070 from nedbat/bug2038
...
Don't fail if imp can't find the source for a .pyc file. #2038
2016-11-22 17:45:29 +01:00
Bruno Oliveira
bd343ef757
Merge remote-tracking branch 'upstream/features' into integrate-pytest-warnings
2016-11-22 14:35:39 -02:00
Bruno Oliveira
5ce551e469
Merge pull request #2075 from pytest-dev/master
...
Merge master into features after fixing flake8 errors
2016-11-22 14:10:31 -02:00
Ronny Pfannschmidt
a3319ffe80
Merge pull request #2071 from nicoddemus/fix-flake8
...
Fix flake8 E305 and E306 errors
2016-11-22 13:22:11 +01:00
Ned Batchelder
632c4d5daf
Remove an accidental double space
2016-11-21 10:17:23 -05:00
Bruno Oliveira
26ca5a702e
Add tests and integrated the original code into the core
2016-11-21 08:26:43 -02:00
Bruno Oliveira
1da1906483
Rename code to _pytest.warnings and delete old files from the repository
2016-11-21 07:38:12 -02:00
Bruno Oliveira
1eb5a690d4
Fix flake8 E305 and E306 errors
...
These errors started to appear with flake8-3.1.1, while they don't appear with
version 3.1.0 (weird).
2016-11-20 18:59:15 -02:00
Ned Batchelder
06bb61bbe3
Don't fail if imp can't find the source for a .pyc file. #2038
2016-11-20 13:09:32 -05:00
Bruno Oliveira
6876ba9ba6
Merge pull request #1995 from mattduck/feat/restructure-assert-truncation
...
Restructure truncation of assertion messages
2016-11-13 19:07:35 -02:00
Bruno Oliveira
efc54b2e56
Merge branch 'master' into merge-master-features
2016-11-11 18:56:53 -02:00
Bruno Oliveira
3e01e83390
Bump version to 3.0.5.dev
2016-11-11 18:20:34 -02:00
Bruno Oliveira
ff72db2f1a
Version bump to 3.0.4, CHANGELOG, announcement
2016-11-09 19:38:11 -02:00
Bruno Oliveira
1130b9f742
Fix the stubborn test about cyclic references left by pytest.raises
...
In Python 2, a context manager's __exit__() leaves sys.exc_info with the exception values even when it was supposed
to suppress the exception, so we explicitly call sys.exc_clear() which removes the traceback and allow the object
to be released.
Also updated the test to not depend on the immediate destruction of the object but instead to ensure it is not being
tracked as a cyclic reference.
Fix #1965
2016-11-08 22:20:27 -02:00
Michael Seifert
1e5b21cd61
Fix memory leak with pytest.raises by using weakref
2016-11-08 22:12:23 -02:00
Dan Wandschneider
e46e653794
Clean up unittest TestCase objects after tests are complete ( #1649 ).
...
Fix #1649
Users of unittest style TestCases will create expensive objects
in setUp. We should clean up TestCase instances that are lying
around so that they don't fill up memory.
2016-11-07 18:32:56 -08:00
Manuel Jacob
a190ad27f2
Change version to be in normal form according to PEP 440.
...
The version is changed from 3.0.4.dev to 3.0.4.dev0. Note that
according to PEP 440 these are considered equivalent, but 3.0.4.dev0 is
the normal form.
This standard was followed when the version was set to 3.0.3.dev0 in
commit ee284ec5
, but in commit a87b1c79
the version was set to
3.0.4.dev, leaving the development number implicit again.
2016-11-06 09:00:04 +01:00
Bruno Oliveira
006a901b86
Properly handle exceptions in multiprocessing tasks
...
Fix #1984
2016-11-03 10:48:43 -02:00
Georgy Dyuldin
e2bb4f893b
Fix teardown error message in generated xUnit XML
...
It was "test setup failure" even error happens on test teardown.
2016-11-02 15:50:32 +03:00
Mathieu Clabaut
6f93ffb5d4
Report teardown output on test failure
...
Until now, teardown stdout/stderr output was not reported upon test failure.
However such output is sometime necessary to understand the failure.
fix #442
2016-10-30 09:52:46 +01:00
Ronny Pfannschmidt
e9668d75b8
turn RecordedWarning into a namedtuple
...
fixes #2013
2016-10-24 15:23:53 +02:00
Ronny Pfannschmidt
377e649e61
local merge of #1967 - Change exception raised by capture.DontReadFromInput.fileno()
2016-10-24 12:47:55 +02:00
Ronny Pfannschmidt
35d154f580
Merge pull request #2011 from nicoddemus/false-rewrite-warnings
...
Fix false-positive warnings from assertion rewrite hook
2016-10-24 12:19:23 +02:00
Ronny Pfannschmidt
4e9c633185
Merge pull request #2021 from nicoddemus/doctest-modules-ci
...
Re-enable docstring testing of _pytest modules on CI
2016-10-24 12:19:05 +02:00
Jason R. Coombs
f2c01c5407
Restore pexpect tests and bypass isalive/wait on macOS. Ref #2022 .
2016-10-21 12:36:42 -04:00
Bruno Oliveira
37dcdfbc58
Re-enable docstring testing of _pytest modules on CI
...
* Fix doctests
* List one env per line in tox.ini
* "doctesting" tox env now also tests docstrings using doctest
2016-10-21 08:55:53 -02:00
Bruno Oliveira
9d00615bbf
Merge remote-tracking branch 'upstream/master' into merge-master-into-features
2016-10-20 21:51:42 -02:00
Bruno Oliveira
2a2b8cee09
Fix false-positive warnings from assertion rewrite hook
...
Fix #2005
2016-10-20 21:40:57 -02:00
Bruno Oliveira
620b384b69
Fix cmdline help message for custom options with two or more metavars
...
Fix #2004
2016-10-20 20:34:39 -02:00
Bruno Oliveira
78eec0d7f8
Handle import errors with non-ascii messages when importing plugins
...
Fix #1998
2016-10-12 18:19:32 -03:00
Matthew Duck
0061d9bd3d
Fix flake8 (unused import, trailng whitespace)
2016-10-11 00:17:15 +01:00
Matthew Duck
b629da424e
Restructure truncation of assertion messages
...
This addresses ref https://github.com/pytest-dev/pytest/issues/1954 .
The current truncation for assertion explanations does not deal with long lines
properly:
- Previously if lines were too long it would display a "-n more lines"
message.
- 999e7c6541
introduced a bug where long lines can
cause index errors if there are < 10 lines.
Extract the truncation logic into its own file and ensure it can deal with
long lines properly.
2016-10-10 23:38:27 +01:00
Bruno Oliveira
cf13355d3f
Merge pull request #1979 from nicoddemus/show-traceback-during-collection
...
Show traceback during collection
2016-10-05 16:18:43 -03:00
Tom V
c93a9e3361
Fix #1981 , improve ini-options help text
2016-10-04 14:41:09 +01:00
Bruno Oliveira
a1d446b8e8
Display traceback from Import errors using pytest's short representation
...
Also omit pytest's own modules and internal libraries (py and pluggy) in low verbosity
Fix #1976
2016-10-03 21:46:44 -03:00
Bruno Oliveira
7d66e4eae1
Display full traceback from Import errors when collecting test modules
...
Fix #1976
2016-10-03 20:47:44 -03:00
Nikolaus Rath
57bb3c6922
Improve error message when using pytest.skip at module level
...
As discussed in issue #1959 .
2016-10-01 13:38:52 -03:00
Bruno Oliveira
4667b4decc
Merge branch 'master' into features
2016-09-29 19:03:26 -03:00
Bruno Oliveira
a87b1c79c1
post 3.0.3 release changes
2016-09-29 18:58:17 -03:00
Bruno Oliveira
dda17994ec
Prepare for 3.0.3 release
2016-09-28 16:33:38 -04:00
Bruno Oliveira
654af0ba25
Merge remote-tracking branch 'upstream/master' into features
2016-09-26 19:32:53 -03:00
Vlad Dragos
3444796f3e
Fix formating error.
2016-09-26 13:59:28 +03:00
Vlad Dragos
8985c0be3e
Change exception raised by DontReadFromInput.fileno() from ValueError to io.UnsupportedOperation
2016-09-26 13:15:35 +03:00
Bruno Oliveira
835328d862
Vendor pluggy 0.4.0
...
Fix #1637
2016-09-25 23:36:02 -03:00
Bruno Oliveira
5e96edd435
Merge pull request #1952 from davidszotten/pdbcls_without_pdb_on_fail
...
Pdbcls without pdb on fail
2016-09-25 20:24:45 -03:00
Roy Williams
f1c4cfea2c
Remove implementation of `__getslice__`
...
`__getslice__` has been Deprecated since Python 2.0 and is removed in Python 3. See
https://docs.python.org/2/reference/datamodel.html#object.__getslice__
Unfortunately, Python 2 will still dispatch to `__getslice__` over `__getitem__`, See
http://bugs.python.org/issue2041 , which causes Warnings when running with `-3` in 2.7.
2016-09-23 09:52:30 -07:00
Bruno Oliveira
e5deb8a927
Merge pull request #1955 from rowillia/fix_python3_deprecation_warnings
...
Fix `DeprecationWarnings` found when running py.test in Python 2.7 with the -3 flag.
2016-09-22 17:37:52 -03:00
Roy Williams
24db3c123d
Explicitly set to None to have consistent behavior in Python 2 and Python 3
2016-09-22 09:22:12 -07:00
Roy Williams
940ed7e943
Fix `DeprecationWarnings` found when running py.test in Python 2.7 with the -3 flag.
...
Running through some of my tests with the `-3` flag in python2.7 I encountered some errors within py.test itself. This fixes those errors so we can use py.test in order to identify problems with Python 3.
2016-09-21 17:44:25 -07:00
Tyler Goodlet
6db2f315fa
Explain a bad scope value to the user
2016-09-21 16:40:58 -04:00
David Szotten
0ac85218d1
allow pdbcls without implying usepdb
2016-09-21 09:45:20 +00:00
Lev Maximov
65be1231b1
AttributeError chaining bug #1944 fix
2016-09-20 02:20:13 +07:00
Floris Bruynooghe
887c097f8e
Merge pull request #1951 from mattduck/feat/1512-dict-compare-output
...
Feat/1512 dict compare output
2016-09-19 17:34:09 +01:00
Floris Bruynooghe
01db0f1cd1
Merge pull request #1923 from RonnyPfannschmidt/mark-internal-value
...
use consistent inner repressentation for marks
2016-09-19 15:30:22 +01:00
Matthew Duck
999e7c6541
Tidy formatting of assertion truncation
...
Part two of https://github.com/pytest-dev/pytest/issues/1512 . Update the format
of the truncation message to help make it clear that pytest truncates the
entire assertion output when verbosity < 2.
2016-09-19 15:27:38 +01:00
Matthew Duck
dd64d823b9
Don't display dict common items if verbosity=1
...
Part one of https://github.com/pytest-dev/pytest/issues/1512 .
If verbosity=1, assertion explanations are truncated at 10 lines. In this
situation, it's more important to tell the user which dictionary items are
different than which are the same.
2016-09-19 15:27:28 +01:00
Floris Bruynooghe
dc16fe2bb9
Merge junit-xml url attribute branch
...
Merge branch 'url_attr' of https://github.com/fushi/pytest into junitxml-url
2016-09-19 12:57:05 +01:00
Floris Bruynooghe
5b260d80f9
Merge pull request #1883 from RonnyPfannschmidt/kill-memoized-call
...
Kill memoized call
2016-09-19 12:47:52 +01:00
Floris Bruynooghe
f484e7c9ca
Merge pkg_resources workaround
...
Merge branch 'pkg_resources_bugfix' of github.com:raquel-ucl/pytest into pkg-resources
This is an odd case and doesn't really make sense, it is working around a bug
in maven/jython and the old version or weird packaging of setuptools they use.
But we used to do this in the past so might as well keep doing this.
2016-09-19 10:14:41 +01:00
Bruno Oliveira
04cf5e1df4
Fixed assertion rewriting for plugins in development mode
...
Fix #1934
2016-09-14 21:59:33 -03:00
Ronny Pfannschmidt
45524241a5
mark: fix introduced linting error
2016-09-08 10:16:45 +02:00
Ronny Pfannschmidt
1812387bf0
Mark: fix python 3 compatibility
2016-09-08 10:03:45 +02:00
Ronny Pfannschmidt
10094a3f09
use consistent inner repressentation for marks
2016-09-08 09:52:22 +02:00
Ronny Pfannschmidt
1c9bd9278e
Merge pull request #1913 from flub/builtin-assertion
...
Remove BuiltinAssertionError
2016-09-05 16:53:13 +02:00
Floris Bruynooghe
28b1896e9a
Remove BuiltinAssertionError
...
We used to have this when we where patching the real Python
AssertionError for use with reinterpret, but reinterpret is now
gone so we no longer need this as it is not used by rewrite.
2016-09-05 15:29:09 +02:00
Florian Bruhin
8a41b26f56
Merge pull request #1908 from nicoddemus/parametrize-unicode-id
...
The "ids" argument to "parametrize" again accepts unicode strings in Python 2
2016-09-05 15:09:12 +02:00
Ronny Pfannschmidt
e1674f60e7
remove memocollect anmd memoized_call
2016-09-05 14:41:28 +02:00
Ronny Pfannschmidt
e572c16d3f
remove memoizedcall in Module
2016-09-05 14:41:28 +02:00
Huayi Zhang
c60854474a
Fix keyword docs
2016-09-05 16:48:04 +08:00
Bruno Oliveira
1e10de574d
The "ids" argument to "parametrize" again accepts unicode strings in Python 2
...
Fixes #1905
2016-09-02 18:38:15 -03:00
Bruno Oliveira
f5d900d972
Merge remote-tracking branch 'upstream/master' into features
2016-09-01 23:07:49 -03:00
Bruno Oliveira
ee284ec587
Set version to 3.0.3.dev0
...
Also, using "dev0" as development suffix otherwise distutils gives a warning during "setup.py develop":
UserWarning: Normalizing '3.0.3.dev' to '3.0.3.dev0'
normalized_version,
2016-09-01 21:34:54 -03:00