pytest warning capture no longer overrides existing warning filters. The
previous behaviour would override all filters and caused regressions in test
suites which configure warning filters to match their needs. Note that as a
side-effect of this is that DeprecationWarning and
PendingDeprecationWarning are no longer shown by default. (2430)
Fix issue with non-ascii contents in doctest text files. (2434)
Fix encoding errors for unicode warnings in Python 2. (2436)
pytest.deprecated_call now captures PendingDeprecationWarning in
context manager form. (2441)
Improved Documentation
Addition of towncrier for changelog management. (2390)
3.1.0
==================
New Features
The pytest-warnings plugin has been integrated into the core and now pytest automatically
captures and displays warnings at the end of the test session.
.. warning::
This feature may disrupt test suites which apply and treat warnings themselves, and can be
disabled in your pytest.ini:
.. code-block:: ini
[pytest]
addopts = -p no:warnings
See the warnings documentation page <https://docs.pytest.org/en/latest/warnings.html>_ for more
information.
Thanks nicoddemus_ for the PR.
Added junit_suite_name ini option to specify root <testsuite> name for JUnit XML reports (533_).
Added an ini option doctest_encoding to specify which encoding to use for doctest files.
Thanks wheerd for the PR (2101).
pytest.warns now checks for subclass relationship rather than
class equality. Thanks lesteve for the PR (2166)
pytest.raises now asserts that the error message matches a text or regex
with the match keyword argument. Thanks Kriechi_ for the PR.
pytest.param can be used to declare test parameter sets with marks and test ids.
Thanks RonnyPfannschmidt_ for the PR.
Changes
remove all internal uses of pytestnamespace hooks,
this is to prepare the removal of preloadconfig in pytest 4.0
Thanks to RonnyPfannschmidt for the PR.
pytest now warns when a callable ids raises in a parametrized test. Thanks fogo_ for the PR.
It is now possible to skip test classes from being collected by setting a
__test__ attribute to False in the class body (2007). Thanks
to syre for the report and lwm_ for the PR.
Change junitxml.py to produce reports that comply with Junitxml schema.
If the same test fails with failure in call and then errors in teardown
we split testcase element into two, one containing the error and the other
the failure. (2228) Thanks to kkoukiou for the PR.
Testcase reports with a url attribute will now properly write this to junitxml.
Thanks fushi for the PR (1874).
Remove common items from dict comparision output when verbosity=1. Also update
the truncation message to make it clearer that pytest truncates all
assertion messages if verbosity < 2 (1512).
Thanks mattduck for the PR
--pdbcls no longer implies --pdb. This makes it possible to use
addopts=--pdbcls=module.SomeClass on pytest.ini. Thanks davidszotten for
the PR (1952).
fix 2013_: turn RecordedWarning into namedtuple,
to give it a comprehensible repr while preventing unwarranted modification.
fix 2208_: ensure a iteration limit for _pytest.compat.get_realfunc.
Thanks RonnyPfannschmidt for the report and PR.
Hooks are now verified after collection is complete, rather than right after loading installed plugins. This
makes it easy to write hooks for plugins which will be loaded during collection, for example using the
pytest_plugins special variable (1821).
Thanks nicoddemus for the PR.
Modify pytest_make_parametrize_id() hook to accept argname as an
additional parameter.
Thanks unsignedint_ for the PR.
Add venv to the default norecursedirs setting.
Thanks The-Compiler_ for the PR.
PluginManager.import_plugin now accepts unicode plugin names in Python 2.
Thanks reutsharabani_ for the PR.
fix 2308: When using both --lf and --ff, only the last failed tests are run.
Thanks ojii for the PR.
Replace minor/patch level version numbers in the documentation with placeholders.
This significantly reduces change-noise as different contributors regnerate
the documentation on different platforms.
Thanks RonnyPfannschmidt_ for the PR.
fix 2391_: consider pytestplugins on all plugin modules
Thanks RonnyPfannschmidt for the PR.
Bug Fixes
Fix AttributeError on sys.stdout.buffer / sys.stderr.buffer
while using capsys fixture in python 3. (1407).
Thanks to asottile.
Change capture.py's DontReadFromInput class to throw io.UnsupportedOperation errors rather
than ValueErrors in the fileno method (2276).
Thanks metasyn and vlad-dragos_ for the PR.
Fix exception formatting while importing modules when the exception message
contains non-ascii characters (2336).
Thanks fabioz for the report and nicoddemus_ for the PR.
Added documentation related to issue (1937)
Thanks skylarjhdownes for the PR.
Allow collecting files with any file extension as Python modules (2369).
Thanks Kodiologist for the PR.
Show the correct error message when collect "parametrize" func with wrong args (2383).
Thanks The-Compiler for the report and robin0371_ for the PR.
3789: Do not require typing module for python>=3.5
Bugs fixed
3754: HTML builder crashes if HTML theme appends own stylesheets
3756: epub: Entity 'mdash' not defined
3758: Sphinx crashed if logs are emitted in conf.py
3755: incorrectly warns about dedent with literalinclude
3742: RTD <https://readthedocs.org/> PDF builds of Sphinx own docs are
missing an index entry in the bookmarks and table of contents. This is
rtfd/readthedocs.org2857 <https://github.com/rtfd/readthedocs.org/issues/2857> issue, a workaround
is obtained using some extra LaTeX code in Sphinx's own :file:conf.py
3770: Build fails when a "code-block" has the option emphasize-lines and the
number indicated is higher than the number of lines
3774: Incremental HTML building broken when using citations
3772: 'str object' has no attribute 'filename'
3763: got epubcheck validations error if epub_cover is set
3779: 'ImportError' in sphinx.ext.autodoc due to broken 'sys.meta_path'.
Thanks to Tatiana Tereshchenko.
3796: env.resolve_references() crashes when non-document node given
3803: Sphinx crashes with invalid PO files
3791: PDF "continued on next page" for long tables isn't internationalized
3788: smartquotes emits warnings for unsupported languages
3807: latex Makefile for make latexpdf is only for unixen
3781: double hyphens in option directive are compiled as endashes
3817: latex builder raises AttributeError
1.6.1
=====================================
Dependencies
1.6
LDML format support in i18n feature
sphinx.addnodes.termsep
Some functions and classes in sphinx.util.pycompat:
zip_longest, product, all, any, next, open,
class_types, base_exception, relpath, StringIO, BytesIO.
Please use the standard library version instead;
If any deprecation warning like RemovedInSphinxXXXWarning are displayed,
please refer :ref:when-deprecation-warnings-are-displayed.
Features added
1.6b3
3588: No compact (p tag) html output in the i18n document build even when
:confval:html_compact_lists is True.
The make latexpdf from 1.6b1 (for GNU/Linux and Mac OS, using
latexmk) aborted earlier in case of LaTeX errors than was the case with
1.5 series, due to hard-coded usage of --halt-on-error option. (refs 3695)
3683: sphinx.websupport module is not provided by default
3683: Failed to build document if builder.css_file.insert() is called
3714: viewcode extension not taking highlight_code='none' in account
3698: Moving :doc: to std domain broke backwards compatibility
3633: misdetect unreferenced citations
1.6b2
3662: builder.css_files is deprecated. Please use add_stylesheet()
API instead.
1.6b1
sphinx.util.compat.Directive class is now deprecated. Please use
docutils.parsers.rst.Directive instead.
sphinx.util.compat.docutils_version is now deprecated
2367: Sphinx.warn(), Sphinx.info() and other logging methods are now
deprecated. Please use sphinx.util.logging (:ref:logging-api) instead.
3318: notice is now deprecated as LaTeX environment name and will be
removed at Sphinx 1.7. Extension authors please use sphinxadmonition
instead (as Sphinx does since 1.5.)
Sphinx.status_iterator() and Sphinx.old_status_iterator() is now
deprecated. Please use sphinx.util:status_iterator() instead.
Sphinx._directive_helper() is deprecated. Please use
sphinx.util.docutils.directive_helper() instead.
BuildEnvironment.set_warnfunc() is now deprecated
Following methods of BuildEnvironment is now deprecated.
BuildEnvironment.note_toctree()
BuildEnvironment.get_toc_for()
BuildEnvironment.get_toctree_for()
BuildEnvironment.create_index()
Please use sphinx.environment.adapters modules instead.
latex package footnote is not loaded anymore by its bundled replacement
footnotehyper-sphinx. The redefined macros keep the same names as in the
original package.
3429: deprecate config setting latex_keep_old_macro_names. It will be
removed at 1.7, and already its default value has changed from True to
False.
3221: epub2 builder is deprecated
3254: sphinx.websupport is now separated into independent package;
sphinxcontrib-websupport. sphinx.websupport will be removed in
Sphinx-2.0.
3628: sphinx_themes entry_point is deprecated. Please use
sphinx.html_themes instead.
Django 1.11.1 -> 1.11.2
1.11.2
===========================
June 1, 2017
Django 1.11.2 adds a minor feature and fixes several bugs in 1.11.1. Also, the
latest string translations from Transifex are incorporated.
Minor feature
The new LiveServerTestCase.port attribute reallows the use case of binding
to a specific port following the :ref:bind to port zero <liveservertestcase-port-zero-change> change in Django 1.11.
Bugfixes
Added detection for GDAL 2.1 and 2.0, and removed detection for unsupported
versions 1.7 and 1.8 (:ticket:28181).
Changed contrib.gis to raise ImproperlyConfigured rather than
GDALException if gdal isn't installed, to allow third-party apps to
catch that exception (:ticket:28178).
Fixed django.utils.http.is_safe_url() crash on invalid IPv6 URLs
(:ticket:28142).
Fixed regression causing pickling of model fields to crash (:ticket:28188).
Fixed django.contrib.auth.authenticate() when multiple authentication
backends don't accept a positional request argument (:ticket:28207).
Fixed introspection of index field ordering on PostgreSQL (:ticket:28197).
Fixed a regression where Model._state.adding wasn't set correctly on
multi-table inheritance parent models after saving a child model
(:ticket:28210).
Allowed DjangoJSONEncoder to serialize
django.utils.deprecation.CallableBool (:ticket:28230).
Relaxed the validation added in Django 1.11 of the fields in the defaults
argument of QuerySet.get_or_create() and update_or_create() to
reallow settable model properties (:ticket:28222).
Fixed MultipleObjectMixin.paginate_queryset() crash on Python 2 if the
InvalidPage message contains non-ASCII (:ticket:28204).
Prevented Subquery from adding an unnecessary CAST which resulted in
invalid SQL (:ticket:28199).
Corrected detection of GDAL 2.1 on Windows (:ticket:28181).
Made date-based generic views return a 404 rather than crash when given an
out of range date (:ticket:28209).
Fixed a regression where file_move_safe() crashed when moving files to a
CIFS mount (:ticket:28170).
Moved the ImageField file extension validation added in Django 1.11 from
the model field to the form field to reallow the use case of storing images
without an extension (:ticket:28242).
Updates
Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.
Changelogs
pytest 3.0.7 -> 3.1.1
sphinx 1.5.6 -> 1.6.2
Django 1.11.1 -> 1.11.2
That's it for now!
Happy merging! 🤖