Move import of doctest.UnexpectedException to top-level to avoid possible
errors when using --pdb. (1810 <https://github.com/pytest-dev/pytest/issues/1810>_)
Added printing of captured stdout/stderr before entering pdb, and improved a
test which was giving false negatives about output capturing. (3052 <https://github.com/pytest-dev/pytest/issues/3052>_)
Fix ordering of tests using parametrized fixtures which can lead to fixtures
being created more than necessary. (3161 <https://github.com/pytest-dev/pytest/issues/3161>_)
Fix bug where logging happening at hooks outside of "test run" hooks would
cause an internal error. (3184 <https://github.com/pytest-dev/pytest/issues/3184>_)
Detect arguments injected by unittest.mock.patch decorator correctly when
pypi mock.patch is installed and imported. (3206 <https://github.com/pytest-dev/pytest/issues/3206>_)
Errors shown when a pytest.raises() with match= fails are now cleaner
on what happened: When no exception was raised, the "matching '...'" part got
removed as it falsely implies that an exception was raised but it didn't
match. When a wrong exception was raised, it's now thrown (like
pytest.raised() without match= would) instead of complaining about
the unmatched text. (3222 <https://github.com/pytest-dev/pytest/issues/3222>_)
Fixed output capture handling in doctests on macOS. (985 <https://github.com/pytest-dev/pytest/issues/985>_)
Improved Documentation
Add Sphinx parameter docs for match and message args to
pytest.raises. (3202 <https://github.com/pytest-dev/pytest/issues/3202>_)
Trivial/Internal Changes
pytest has changed the publication procedure and is now being published to
PyPI directly from Travis. (3060 <https://github.com/pytest-dev/pytest/issues/3060>_)
Rename ParameterSet._for_parameterize() to _for_parametrize() in
order to comply with the naming convention. (3166 <https://github.com/pytest-dev/pytest/issues/3166>_)
Skip failing pdb/doctest test on mac. (985 <https://github.com/pytest-dev/pytest/issues/985>_)
3.4.0
=========================
Deprecations and Removals
All pytest classes now subclass object for better Python 2/3 compatibility.
This should not affect user code except in very rare edge cases. (2147 <https://github.com/pytest-dev/pytest/issues/2147>_)
Features
Introduce empty_parameter_set_mark ini option to select which mark to
apply when pytest.mark.parametrize is given an empty set of parameters.
Valid options are skip (default) and xfail. Note that it is planned
to change the default to xfail in future releases as this is considered
less error prone. (2527 <https://github.com/pytest-dev/pytest/issues/2527>_)
Incompatible change: after community feedback the logging <https://docs.pytest.org/en/latest/logging.html> functionality has
undergone some changes. Please consult the logging documentation <https://docs.pytest.org/en/latest/logging.htmlincompatible-changes-in-pytest-3-4>
for details. (3013 <https://github.com/pytest-dev/pytest/issues/3013>_)
Console output falls back to "classic" mode when capturing is disabled (-s),
otherwise the output gets garbled to the point of being useless. (3038 <https://github.com/pytest-dev/pytest/issues/3038>_)
New pytest_runtest_logfinish <https://docs.pytest.org/en/latest/writing_plugins.html_pytest.hookspec.pytest_runtest_logfinish>_
hook which is called when a test item has finished executing, analogous to
pytest_runtest_logstart <https://docs.pytest.org/en/latest/writing_plugins.html_pytest.hookspec.pytest_runtest_start>.
(3101 <https://github.com/pytest-dev/pytest/issues/3101>)
Improve performance when collecting tests using many fixtures. (3107 <https://github.com/pytest-dev/pytest/issues/3107>_)
New caplog.get_records(when) method which provides access to the captured
records for the "setup", "call" and "teardown"
testing stages. (3117 <https://github.com/pytest-dev/pytest/issues/3117>_)
New fixture record_xml_attribute that allows modifying and inserting
attributes on the <testcase> xml node in JUnit reports. (3130 <https://github.com/pytest-dev/pytest/issues/3130>_)
The default cache directory has been renamed from .cache to
.pytest_cache after community feedback that the name .cache did not
make it clear that it was used by pytest. (3138 <https://github.com/pytest-dev/pytest/issues/3138>_)
Colorize the levelname column in the live-log output. (3142 <https://github.com/pytest-dev/pytest/issues/3142>_)
Bug Fixes
Fix hanging pexpect test on MacOS by using flush() instead of wait().
(2022 <https://github.com/pytest-dev/pytest/issues/2022>_)
Fix restoring Python state after in-process pytest runs with the
pytester plugin; this may break tests using multiple inprocess
pytest runs if later ones depend on earlier ones leaking global interpreter
changes. (3016 <https://github.com/pytest-dev/pytest/issues/3016>_)
Fix skipping plugin reporting hook when test aborted before plugin setup
hook. (3074 <https://github.com/pytest-dev/pytest/issues/3074>_)
Fix progress percentage reported when tests fail during teardown. (3088 <https://github.com/pytest-dev/pytest/issues/3088>_)
Incompatible change: -o/--override option no longer eats all the
remaining options, which can lead to surprising behavior: for example,
pytest -o foo=1 /path/to/test.py would fail because /path/to/test.py
would be considered as part of the -o command-line argument. One
consequence of this is that now multiple configuration overrides need
multiple -o flags: pytest -o foo=1 -o bar=2. (3103 <https://github.com/pytest-dev/pytest/issues/3103>_)
Improved Documentation
Document hooks (defined with historic=True) which cannot be used with
hookwrapper=True. (2423 <https://github.com/pytest-dev/pytest/issues/2423>_)
Clarify that warning capturing doesn't change the warning filter by default.
(2457 <https://github.com/pytest-dev/pytest/issues/2457>_)
Clarify a possible confusion when using pytest_fixturesetup with fixture
functions that return None. (2698 <https://github.com/pytest-dev/pytest/issues/2698>)
Fix the wording of a sentence on doctest flags used in pytest. (3076 <https://github.com/pytest-dev/pytest/issues/3076>_)
Prefer https://*.readthedocs.io over http://*.rtfd.org for links in
the documentation. (3092 <https://github.com/pytest-dev/pytest/issues/3092>_)
Improve readability (wording, grammar) of Getting Started guide (3131 <https://github.com/pytest-dev/pytest/issues/3131>_)
Added note that calling pytest.main multiple times from the same process is
not recommended because of import caching. (3143 <https://github.com/pytest-dev/pytest/issues/3143>_)
Trivial/Internal Changes
Show a simple and easy error when keyword expressions trigger a syntax error
(for example, "-k foo and import" will show an error that you can not use
the import keyword in expressions). (2953 <https://github.com/pytest-dev/pytest/issues/2953>_)
Change parametrized automatic test id generation to use the __name__
attribute of functions instead of the fallback argument name plus counter.
(2976 <https://github.com/pytest-dev/pytest/issues/2976>_)
Replace py.std with stdlib imports. (3067 <https://github.com/pytest-dev/pytest/issues/3067>_)
Corrected 'you' to 'your' in logging docs. (3129 <https://github.com/pytest-dev/pytest/issues/3129>_)
Got merge conflicts? Close this PR and delete the branch. I'll create a new PR for you.
There's a new version of pytest available. You are currently using 3.3.2. I have updated it to 3.4.1
These links might come in handy: PyPI | Changelog | Repo | Homepage
Changelog
Got merge conflicts? Close this PR and delete the branch. I'll create a new PR for you.
Happy merging! 🤖