Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scheduled daily dependency update on friday #82

Merged
merged 4 commits into from
Jul 21, 2017

Conversation

pyup-bot
Copy link
Collaborator

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.

flake8 3.3.0 » 3.3.0 PyPI | Changelog | Repo
nose-htmloutput 0.6.0 » 0.6.0 PyPI | Changelog | Repo
pytest 3.1.3 » 3.1.3 PyPI | Changelog | Repo | Homepage
pytest-django 3.1.2 » 3.1.2 PyPI | Changelog | Docs

Changelogs

flake8 -> 3.3.0

3.3.0


You can view the 3.3.0 milestone_ on GitLab for more details.

  • Add support for Python 3.6 (via dependencies). Note Flake8 does not
    guarantee that all plugins will support Python 3.6.
  • Added unique error codes for all missing PyFlakes messages. (14 new
    codes, see "Error / Violation Codes")
  • Dramatically improve the performance of Flake8. (See also GitLab!156_)
  • Display the local file path instead of the temporary file path when
    using the git hook. (See also GitLab244_)
  • Add methods to Report class that will be called when Flake8 starts and
    finishes processing a file. (See also GitLab251_)
  • Fix problem where hooks should only check *.py files. (See also
    GitLab268_)
  • Fix handling of SyntaxErrors that do not include physical line information.
    (See also GitLab279_)
  • Update upper bound on PyFlakes to allow for PyFlakes 1.5.0. (See also
    GitLab290_)
  • Update setuptools integration to less eagerly deduplicate packages.
    (See also GitLab295_)
  • Force flake8 --version to be repeatable between invocations. (See also
    GitLab297_)

.. all links
.. _3.3.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/16

.. issue links
.. _GitLab244:
https://gitlab.com/pycqa/flake8/issues/244
.. _GitLab251:
https://gitlab.com/pycqa/flake8/issues/251
.. _GitLab268:
https://gitlab.com/pycqa/flake8/issues/268
.. _GitLab279:
https://gitlab.com/pycqa/flake8/issues/279
.. _GitLab290:
https://gitlab.com/pycqa/flake8/issues/290
.. _GitLab295:
https://gitlab.com/pycqa/flake8/issues/295
.. _GitLab297:
https://gitlab.com/pycqa/flake8/issues/297

.. merge request links
.. _GitLab!156:
https://gitlab.com/pycqa/flake8/merge_requests/156

3.2.1


You can view the 3.2.1 milestone_ on GitLab for more details.

  • Fix subtle bug when deciding whether to report an on-by-default's violation
    (See also GitLab257_)
  • Fix another bug around SyntaxErrors not being reported at the right column
    and row (See also GitLab259_ and GitLab237_ for a related, previously
    fixed bug)
  • Fix regression from 2.x where we run checks against explicitly provided
    files, even if they don't match the filename patterns. (See also
    GitLab266_)

.. links
.. _3.2.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/15
.. _GitLab237:
https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab257:
https://gitlab.com/pycqa/flake8/issues/257
.. _GitLab259:
https://gitlab.com/pycqa/flake8/issues/259
.. _GitLab266:
https://gitlab.com/pycqa/flake8/issues/266

3.2.0


You can view the 3.2.0 milestone_ on GitLab for more details.

  • Allow for pycodestyle 2.2.0 which fixes a bug in E305 (See also
    GitLab256_)

.. links
.. _3.2.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/14
.. _GitLab256:
https://gitlab.com/pycqa/flake8/issues/256

3.1.1


You can view the 3.1.1 milestone_ on GitLab for more details.

  • Do not attempt to install/distribute a man file with the Python package;
    leave this for others to do. (See also GitLab254_)
  • Fix packaging bug where wheel version constraints specified in setup.cfg did
    not match the constraints in setup.py. (See also GitLab255_)

.. links
.. _3.1.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/13
.. _GitLab254:
https://gitlab.com/pycqa/flake8/issues/254
.. _GitLab255:
https://gitlab.com/pycqa/flake8/issues/255

3.1.0


You can view the 3.1.0 milestone_ on GitLab for more details.

  • Add --bug-report flag to make issue reporters' lives easier.
  • Collect configuration files from the current directory when using our Git
    hook. (See also GitLab210, GitLab218, GitLab223_)
  • Avoid unhandled exceptions when dealing with SyntaxErrors. (See also
    GitLab214, GitLab238)
  • Exit early if the value for --diff is empty. (See also GitLab226_)
  • Handle empty --stdin-display-name values. (See also GitLab235_)
  • Properly report the column number of Syntax Errors. We were assuming that
    all reports of column numbers were 0-indexed, however, SyntaxErrors report
    the column number as 1-indexed. This caused us to report a column number
    that was 1 past the actual position. Further, when combined with
    SyntaxErrors that occur at a newline, this caused the position to be
    visually off by two. (See also GitLab237_)
  • Fix the behaviour of --enable-extensions. Previously, items specified
    here were still ignored due to the fact that the off-by-default extension
    codes were being left in the ignore list. (See also GitLab239_)
  • Fix problems around --select and --ignore behaviour that prevented
    codes that were neither explicitly selected nor explicitly ignored from
    being reported. (See also GitLab242_)
  • Truly be quiet when the user specifies -q one or more times. Previously,
    we were showing the if the user specified -q and --show-source. We
    have fixed this bug. (See also GitLab245_)
  • Add new File Processor attribute, previous_unindented_logical_line to
    accommodate pycodestyle 2.1.0. (See also GitLab246_)
  • When something goes wrong, exit non-zero. (See also GitLab248,
    GitLab209
    )
  • Add --tee as an option to allow use of --output-file and printing to
    standard out.
  • Allow the git plugin to actually be lazy when collecting files.
  • Allow for pycodestyle 2.1 series and pyflakes 1.3 series.

.. links
.. _3.1.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/12
.. _GitLab209:
https://gitlab.com/pycqa/flake8/issues/209
.. _GitLab210:
https://gitlab.com/pycqa/flake8/issues/210
.. _GitLab214:
https://gitlab.com/pycqa/flake8/issues/214
.. _GitLab218:
https://gitlab.com/pycqa/flake8/issues/218
.. _GitLab223:
https://gitlab.com/pycqa/flake8/issues/223
.. _GitLab226:
https://gitlab.com/pycqa/flake8/issues/226
.. _GitLab235:
https://gitlab.com/pycqa/flake8/issues/235
.. _GitLab237:
https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab238:
https://gitlab.com/pycqa/flake8/issues/238
.. _GitLab239:
https://gitlab.com/pycqa/flake8/issues/239
.. _GitLab242:
https://gitlab.com/pycqa/flake8/issues/242
.. _GitLab245:
https://gitlab.com/pycqa/flake8/issues/245
.. _GitLab246:
https://gitlab.com/pycqa/flake8/issues/246
.. _GitLab248:
https://gitlab.com/pycqa/flake8/issues/248

3.0.4


  • Side-step a Pickling Error when using Flake8 with multiprocessing on Unix
    systems. (See also GitLab164_)
  • Fix an Attribute Error raised when dealing with Invalid Syntax. (See also
    GitLab203_)
  • Fix an unhandled Syntax Error when tokenizing files. (See also
    GitLab205_)

.. links
.. _GitLab164:
https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab203:
https://gitlab.com/pycqa/flake8/issues/203
.. _GitLab205:
https://gitlab.com/pycqa/flake8/issues/205

3.0.3


  • Disable --jobs for any version of Python on Windows.
    (See also this Python bug report_)
  • Raise exception when entry_point in plugin not callable.
    This raises an informative error when a plugin fails to load because its
    entry_point is not callable, which can happen with a plugin which is buggy or
    not updated for the current version of flake8. This is nicer than raising a
    PicklingError about failing to pickle a module (See also GitLab164_)
  • Fix noqa comments followed by a : and explanation broken by
    3.0.0 (See also GitLab178_)
  • Always open our output file in append mode so we do not overwrite log
    messages. (See also GitLab193_)
  • When normalizing path values read from configuration, keep in context the
    directory where the configuration was found so that relative paths work.
    (See also GitLab194_)
  • Fix issue where users were unable to ignore plugin errors that were on
    by default. (See also GitLab195_)
  • Fix our legacy API StyleGuide's init_report method to actually override
    the previous formatter. (See also GitLab200_)

.. links
.. _GitLab164:
https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab178:
https://gitlab.com/pycqa/flake8/issues/178
.. _GitLab193:
https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab194:
https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab195:
https://gitlab.com/pycqa/flake8/issues/195
.. _GitLab200:
https://gitlab.com/pycqa/flake8/issues/200
.. _this Python bug report:
https://bugs.python.org/issue27649

3.0.2


  • Fix local config file discovery. (See also GitLab181_)
  • Fix indexing of column numbers. We accidentally were starting column indices
    at 0 instead of 1.
  • Fix regression in handling of errors like E402 that rely on a combination of
    attributes. (See also GitLab186_)

.. links
.. _GitLab181:
https://gitlab.com/pycqa/flake8/issues/181
.. _GitLab186:
https://gitlab.com/pycqa/flake8/issues/186

3.0.1


  • Fix regression in handling of noqa for multiline strings.
    (See also GitLab177_)
  • Fix regression in handling of --output-file when not also using
    --verbose. (See also GitLab180_)
  • Fix regression in handling of --quiet. (See also GitLab180_)
  • Fix regression in handling of --statistics. (See also GitLab180_)

.. links
.. _GitLab177:
https://gitlab.com/pycqa/flake8/issues/177
.. _GitLab180:
https://gitlab.com/pycqa/flake8/issues/180

3.0.0


  • Drop explicit support for Pythons 2.6, 3.2, and 3.3.
  • Remove dependence on pep8/pycodestyle for file processing, plugin
    dispatching, and more. We now control all of this while keeping backwards
    compatibility.
  • --select and --ignore can now both be specified and try to find the
    most specific rule from each. For example, if you do --select E --ignore E123 then we will report everything that starts with E except for
    E123. Previously, you would have had to do --ignore E123,F,W which
    will also still work, but the former should be far more intuitive.
  • Add support for in-line noqa comments to specify only the error
    codes to be ignored, e.g., noqa: E123,W503
  • Add entry-point for formatters as well as a base class that new formatters
    can inherit from. See the documentation for more details.
  • Add detailed verbose output using the standard library logging module.
  • Enhance our usage of optparse for plugin developers by adding new parameters
    to the add_option that plugins use to register new options.
  • Update --install-hook to require the name of version control system hook
    you wish to install a Flake8.
  • Stop checking sub-directories more than once via the setuptools command
  • When passing a file on standard-in, allow the caller to specify
    --stdin-display-name so the output is properly formatted
  • The Git hook now uses sys.executable to format the shebang line.
    This allows Flake8 to install a hook script from a virtualenv that points to
    that virtualenv's Flake8 as opposed to a global one (without the virtualenv
    being sourced).
  • Print results in a deterministic and consistent ordering when used with
    multiprocessing
  • When using --count, the output is no longer written to stderr.
  • AST plugins can either be functions or classes and all plugins can now
    register options so long as there are callable attributes named as we
    expect.
  • Stop forcibly re-adding .tox, .eggs, and *.eggs to
    --exclude. Flake8 2.x started always appending those three patterns
    to any exclude list (including the default and any user supplied list).
    Flake8 3 has stopped adding these in, so you may see errors when upgrading
    due to these patterns no longer being forcibly excluded by default if you
    have your own exclude patterns specified.

To fix this, add the appropriate patterns to your exclude patterns list.

.. note::

 This item was added in November of 2016, as a result of a bug
 report.

2.6.2


  • Bug Fix packaging error during release process.

2.6.1


  • Bug Update the config files to search for to include setup.cfg and
    tox.ini. This was broken in 2.5.5 when we stopped passing
    config_file to our Style Guide

2.6.0


  • Requirements Change Switch to pycodestyle as all future pep8 releases
    will use that package name
  • Improvement Allow for Windows users on select versions of Python to
    use --jobs and multiprocessing
  • Improvement Update bounds on McCabe
  • Improvement Update bounds on PyFlakes and blacklist known broken
    versions
  • Improvement Handle new PyFlakes warning with a new error code: F405

2.5.5


  • Bug Fix setuptools integration when parsing config files
  • Bug Don't pass the user's config path as the config_file when creating a
    StyleGuide

2.5.4


  • Bug Missed an attribute rename during the v2.5.3 release.

2.5.3


  • Bug Actually parse output_file and enable_extensions from config
    files

2.5.2


  • Bug Parse output_file and enable_extensions from config files
  • Improvement Raise upper bound on mccabe plugin to allow for version
    0.4.0

2.5.1


  • Bug Properly look for .flake8 in current working directory
    (GitLab103_)
  • Bug Monkey-patch pep8.stdin_get_value to cache the actual value in
    stdin. This helps plugins relying on the function when run with
    multiprocessing. (GitLab105, GitLab107)

.. _GitLab103: https://gitlab.com/pycqa/flake8/issues/103
.. _GitLab105: https://gitlab.com/pycqa/flake8/issues/105
.. _GitLab107: https://gitlab.com/pycqa/flake8/issues/107

2.5.0


  • Improvement Raise cap on PyFlakes for Python 3.5 support
  • Improvement Avoid deprecation warnings when loading extensions
    (GitLab59, GitLab90)
  • Improvement Separate logic to enable "off-by-default" extensions
    (GitLab67_)
  • Bug Properly parse options to setuptools Flake8 command (GitLab!41_)
  • Bug Fix exceptions when output on stdout is truncated before Flake8
    finishes writing the output (GitLab69_)
  • Bug Fix error on OS X where Flake8 can no longer acquire or create new
    semaphores (GitLab74_)

.. _GitLab!41: https://gitlab.com/pycqa/flake8/merge_requests/41
.. _GitLab59: https://gitlab.com/pycqa/flake8/issues/59
.. _GitLab67: https://gitlab.com/pycqa/flake8/issues/67
.. _GitLab69: https://gitlab.com/pycqa/flake8/issues/69
.. _GitLab74: https://gitlab.com/pycqa/flake8/issues/74
.. _GitLab90: https://gitlab.com/pycqa/flake8/issues/90

2.4.1


  • Bug Do not raise a SystemError unless there were errors in the
    setuptools command. (GitLab39, GitLab!23)
  • Bug Do not verify dependencies of extensions loaded via entry-points.
  • Improvement Blacklist versions of pep8 we know are broken

.. _GitLab39: https://gitlab.com/pycqa/flake8/issues/39
.. _GitLab!23: https://gitlab.com/pycqa/flake8/merge_requests/23

2.4.0


  • Bug Print filenames when using multiprocessing and -q option.
    (GitLab31_)
  • Bug Put upper cap on dependencies. The caps for 2.4.0 are:
  • pep8 < 1.6 (Related to GitLab35_)
  • mccabe < 0.4
  • pyflakes < 0.9

See also GitLab32_

  • Bug Files excluded in a config file were not being excluded when flake8
    was run from a git hook. (GitHub2_)
  • Improvement Print warnings for users who are providing mutually
    exclusive options to flake8. (GitLab8, GitLab!18)
  • Feature Allow git hook configuration to live in .git/config.
    See the updated VCS hooks docs_ for more details. (GitLab!20_)

.. _GitHub2: PyCQA/flake8#2
.. _GitLab8: https://gitlab.com/pycqa/flake8/issues/8
.. _GitLab31: https://gitlab.com/pycqa/flake8/issues/31
.. _GitLab32: https://gitlab.com/pycqa/flake8/issues/32
.. _GitLab35: https://gitlab.com/pycqa/flake8/issues/35
.. _GitLab!18: https://gitlab.com/pycqa/flake8/merge_requests/18
.. _GitLab!20: https://gitlab.com/pycqa/flake8/merge_requests/20
.. _VCS hooks docs: https://flake8.readthedocs.org/en/latest/vcs.html

2.3.0


  • Feature: Add --output-file option to specify a file to write to
    instead of stdout.
  • Bug Fix interleaving of output while using multiprocessing
    (GitLab17_)

.. _GitLab17: https://gitlab.com/pycqa/flake8/issues/17

2.2.5


  • Flush standard out when using multiprocessing
  • Make the check for " flake8: noqa" more strict

2.2.4


  • Fix bugs triggered by turning multiprocessing on by default (again)

Multiprocessing is forcibly disabled in the following cases:

  • Passing something in via stdin
  • Analyzing a diff
  • Using windows
  • Fix --install-hook when there are no config files present for pep8 or
    flake8.
  • Fix how the setuptools command parses excludes in config files
  • Fix how the git hook determines which files to analyze (Thanks Chris
    Buccella!)

2.2.3


  • Actually turn multiprocessing on by default

2.2.2


  • Re-enable multiprocessing by default while fixing the issue Windows users
    were seeing.

2.2.1


  • Turn off multiple jobs by default. To enable automatic use of all CPUs, use
    --jobs=auto. Fixes 155 and 154.

2.2.0


  • New option doctests to run Pyflakes checks on doctests too
  • New option jobs to launch multiple jobs in parallel
  • Turn on using multiple jobs by default using the CPU count
  • Add support for python -m flake8 on Python 2.7 and Python 3
  • Fix Git and Mercurial hooks: issues 88, 133, 148 and 149
  • Fix crashes with Python 3.4 by upgrading dependencies
  • Fix traceback when running tests with Python 2.6
  • Fix the setuptools command python setup.py flake8 to read
    the project configuration

2.1.0


  • Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
    mercurial hooks
  • Force git and mercurial hooks to repsect configuration in setup.cfg
  • Only check staged files if that is specified
  • Fix hook file permissions
  • Fix the git hook on python 3
  • Ignore non-python files when running the git hook
  • Ignore .tox directories by default
  • Flake8 now reports the column number for PyFlakes messages

2.0.0


  • Pyflakes errors are prefixed by an F instead of an E
  • McCabe complexity warnings are prefixed by a C instead of a W
  • Flake8 supports extensions through entry points
  • Due to the above support, we require setuptools
  • We publish the documentation <https://flake8.readthedocs.org/>_
  • Fixes 13: pep8, pyflakes and mccabe become external dependencies
  • Split run.py into main.py, engine.py and hooks.py for better logic
  • Expose our parser for our users
  • New feature: Install git and hg hooks automagically
  • By relying on pyflakes (0.6.1), we also fixed 45 and 35

1.7.0


  • Fixes part of 35: Exception for no WITHITEM being an attribute of Checker
    for Python 3.3
  • Support stdin
  • Incorporate phd's builtins pull request
  • Fix the git hook
  • Update pep8.py to the latest version

1.6.2


  • fixed the NameError: global name 'message' is not defined (46)

1.6.1


  • fixed the mercurial hook, a change from a previous patch was not properly
    applied
  • fixed an assumption about warnings/error messages that caused an exception
    to be thrown when McCabe is used

1.6


  • changed the signatures of the check_file function in flake8/run.py,
    skip_warning in flake8/util.py and the check, checkPath
    functions in flake8/pyflakes.py.
  • fix --exclude and --ignore command flags (14, 19)
  • fix the git hook that wasn't catching files not already added to the index
    (29)
  • pre-emptively includes the addition to pep8 to ignore certain lines.
    Add nopep8 to the end of a line to ignore it. (37)
  • check_file can now be used without any special prior setup (21)
  • unpacking exceptions will no longer cause an exception (20)
  • fixed crash on non-existent file (38)

1.5


  • fixed the stdin
  • make sure mccabe catches the syntax errors as warnings
  • pep8 upgrade
  • added max_line_length default value
  • added Flake8Command and entry points if setuptools is around
  • using the setuptools console wrapper when available

1.4


  • git_hook: Only check staged changes for compliance
  • use pep8 1.2

1.3.1


  • fixed support for Python 2.5

1.3


  • fixed false W402 warning on exception blocks.

1.2


  • added a git hook
  • now Python 3 compatible
  • mccabe and pyflakes have warning codes like pep8 now

1.1


  • fixed the value returned by --version
  • allow the flake8: header to be more generic
  • fixed the "hg hook raises 'physical lines'" bug
  • allow three argument form of raise
  • now uses setuptools if available, for 'develop' command

1.0


  • Deactivates by default the complexity checker
  • Introduces the complexity option in the HG hook and the command line.

0.9


  • update pep8 version to 0.6.1
  • mccabe check: gracefully handle compile failure

0.8


  • fixed hg hook
  • discard unexisting files on hook check

0.7


  • Fix pep8 initialization when run through Hg
  • Make pep8 short options work when run through the command line
  • Skip duplicates when controlling files via Hg

0.6


  • Fix the McCabe metric on some loops

nose-htmloutput -> 0.6.0

0.6.0


  • Added Error column.
  • Changed Fail/Error columns to be colored if there is a failure/error.

0.5.0


  • Made addError handle exceptions the same way as addFailure.

0.3.0


  • Fixed exception handling on Python 3.

0.1.0


  • First release on PyPI.

pytest -> 3.1.3

3.1.3

=========================

Bug Fixes

  • Fix decode error in Python 2 for doctests in docstrings. (2434 <https://github.com/pytest-dev/pytest/issues/2434>_)
  • Exceptions raised during teardown by finalizers are now suppressed until all
    finalizers are called, with the initial exception reraised. (2440 <https://github.com/pytest-dev/pytest/issues/2440>_)
  • Fix incorrect "collected items" report when specifying tests on the command-
    line. (2464 <https://github.com/pytest-dev/pytest/issues/2464>_)
  • deprecated_call in context-manager form now captures deprecation warnings
    even if the same warning has already been raised. Also, deprecated_call
    will always produce the same error message (previously it would produce
    different messages in context-manager vs. function-call mode). (2469 <https://github.com/pytest-dev/pytest/issues/2469>_)
  • Fix issue where paths collected by pytest could have triple leading /
    characters. (2475 <https://github.com/pytest-dev/pytest/issues/2475>_)
  • Fix internal error when trying to detect the start of a recursive traceback.
    (2486 <https://github.com/pytest-dev/pytest/issues/2486>_)

Improved Documentation

  • Explicitly state for which hooks the calls stop after the first non-None
    result. (2493 <https://github.com/pytest-dev/pytest/issues/2493>_)

Trivial/Internal Changes

  • Create invoke tasks for updating the vendored packages. (2474 <https://github.com/pytest-dev/pytest/issues/2474>_)
  • Update copyright dates in LICENSE, README.rst and in the documentation.
    (2499 <https://github.com/pytest-dev/pytest/issues/2499>_)

3.1.2

=========================

Bug Fixes

  • Required options added via pytest_addoption will no longer prevent using
    --help without passing them. (1999)
  • Respect python_files in assertion rewriting. (2121)
  • Fix recursion error detection when frames in the traceback contain objects
    that can't be compared (like numpy arrays). (2459)
  • UnicodeWarning is issued from the internal pytest warnings plugin only
    when the message contains non-ascii unicode (Python 2 only). (2463)
  • Added a workaround for Python 3.6 WindowsConsoleIO breaking due to Pytests's
    FDCapture. Other code using console handles might still be affected by the
    very same issue and might require further workarounds/fixes, i.e. colorama.
    (2467)

Improved Documentation

  • Fix internal API links to pluggy objects. (2331)
  • Make it clear that pytest.xfail stops test execution at the calling point
    and improve overall flow of the skipping docs. (810)

3.1.1

=========================

Bug Fixes

  • 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 pytest_namespace 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_real_func.
    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 pytest_plugins 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.

.. _davidszotten: https://github.com/davidszotten
.. _fabioz: https://github.com/fabioz
.. _fogo: https://github.com/fogo
.. _fushi: https://github.com/fushi
.. _Kodiologist: https://github.com/Kodiologist
.. _Kriechi: https://github.com/Kriechi
.. _mandeep: https://github.com/mandeep
.. _mattduck: https://github.com/mattduck
.. _metasyn: https://github.com/metasyn
.. _MichalTHEDUDE: https://github.com/MichalTHEDUDE
.. _ojii: https://github.com/ojii
.. _reutsharabani: https://github.com/reutsharabani
.. _robin0371: https://github.com/robin0371
.. _skylarjhdownes: https://github.com/skylarjhdownes
.. _unsignedint: https://github.com/unsignedint
.. _wheerd: https://github.com/wheerd

.. _1407: pytest-dev/pytest#1407
.. _1512: pytest-dev/pytest#1512
.. _1821: pytest-dev/pytest#1821
.. _1874: pytest-dev/pytest#1874
.. _1937: pytest-dev/pytest#1937
.. _1952: pytest-dev/pytest#1952
.. _2007: pytest-dev/pytest#2007
.. _2013: pytest-dev/pytest#2013
.. _2101: pytest-dev/pytest#2101
.. _2166: pytest-dev/pytest#2166
.. _2208: pytest-dev/pytest#2208
.. _2228: pytest-dev/pytest#2228
.. _2276: pytest-dev/pytest#2276
.. _2308: pytest-dev/pytest#2308
.. _2336: pytest-dev/pytest#2336
.. _2369: pytest-dev/pytest#2369
.. _2383: pytest-dev/pytest#2383
.. _2391: pytest-dev/pytest#2391
.. _533: pytest-dev/pytest#533

3.0.7

==================

  • Fix issue in assertion rewriting breaking due to modules silently discarding
    other modules when importing fails
    Notably, importing the anydbm module is fixed. (2248).
    Thanks pfhayes
    for the PR.
  • junitxml: Fix problematic case where system-out tag occured twice per testcase
    element in the XML report. Thanks kkoukiou_ for the PR.
  • Fix regression, pytest now skips unittest correctly if run with --pdb
    (2137). Thanks to gst for the report and mbyt_ for the PR.
  • Ignore exceptions raised from descriptors (e.g. properties) during Python test collection (2234).
    Thanks to bluetech
    .
  • --override-ini now correctly overrides some fundamental options like python_files (2238).
    Thanks sirex
    for the report and nicoddemus_ for the PR.
  • Replace raise StopIteration usages in the code by simple returns to finish generators, in accordance to PEP-479_ (2160).
    Thanks tgoodlet
    for the report and nicoddemus_ for the PR.
  • Fix internal errors when an unprintable AssertionError is raised inside a test.
    Thanks omerhadari_ for the PR.
  • Skipping plugin now also works with test items generated by custom collectors (2231).
    Thanks to vidartf
    .
  • Fix trailing whitespace in console output if no .ini file presented (2281). Thanks fbjorn for the PR.
  • Conditionless xfail markers no longer rely on the underlying test item
    being an instance of PyobjMixin, and can therefore apply to tests not
    collected by the built-in python test collector. Thanks barneygale_ for the
    PR.

.. _pfhayes: https://github.com/pfhayes
.. _bluetech: https://github.com/bluetech
.. _gst: https://github.com/gst
.. _sirex: https://github.com/sirex
.. _vidartf: https://github.com/vidartf
.. _kkoukiou: https://github.com/KKoukiou
.. _omerhadari: https://github.com/omerhadari
.. _fbjorn: https://github.com/fbjorn

.. _2248: pytest-dev/pytest#2248
.. _2137: pytest-dev/pytest#2137
.. _2160: pytest-dev/pytest#2160
.. _2231: pytest-dev/pytest#2231
.. _2234: pytest-dev/pytest#2234
.. _2238: pytest-dev/pytest#2238
.. _2281: pytest-dev/pytest#2281

.. _PEP-479: https://www.python.org/dev/peps/pep-0479/

3.0.6

==================

  • pytest no longer generates PendingDeprecationWarning from its own operations, which was introduced by mistake in version 3.0.5 (2118).
    Thanks to nicoddemus
    for the report and RonnyPfannschmidt_ for the PR.
  • pytest no longer recognizes coroutine functions as yield tests (2129).
    Thanks to malinoff
    for the PR.
  • Plugins loaded by the PYTEST_PLUGINS environment variable are now automatically
    considered for assertion rewriting (2185).
    Thanks nicoddemus
    for the PR.
  • Improve error message when pytest.warns fails (2150). The type(s) of the
    expected warnings and the list of caught warnings is added to the
    error message. Thanks lesteve
    for the PR.
  • Fix pytester internal plugin to work correctly with latest versions of
    zope.interface (1989). Thanks nicoddemus for the PR.
  • Assert statements of the pytester plugin again benefit from assertion rewriting (1920).
    Thanks RonnyPfannschmidt
    for the report and nicoddemus_ for the PR.
  • Specifying tests with colons like test_foo.py::test_bar for tests in
    subdirectories with ini configuration files now uses the correct ini file
    (2148). Thanks pelme.
  • Fail testdir.runpytest().assert_outcomes() explicitly if the pytest
    terminal output it relies on is missing. Thanks to eli-b_ for the PR.

.. _barneygale: https://github.com/barneygale
.. _lesteve: https://github.com/lesteve
.. _malinoff: https://github.com/malinoff
.. _pelme: https://github.com/pelme
.. _eli-b: https://github.com/eli-b

.. _2118: pytest-dev/pytest#2118

.. _1989: pytest-dev/pytest#1989
.. _1920: pytest-dev/pytest#1920
.. _2129: pytest-dev/pytest#2129
.. _2148: pytest-dev/pytest#2148
.. _2150: pytest-dev/pytest#2150
.. _2185: pytest-dev/pytest#2185

3.0.5

==================

  • Add warning when not passing option=value correctly to -o/--override-ini (2105).
    Also improved the help documentation. Thanks to mbukatov
    for the report and
    lwm_ for the PR.
  • Now --confcutdir and --junit-xml are properly validated if they are directories
    and filenames, respectively (2089_ and 2078). Thanks to lwm for the PR.
  • Add hint to error message hinting possible missing __init__.py (478). Thanks DuncanBetts.
  • More accurately describe when fixture finalization occurs in documentation (687). Thanks DuncanBetts.
  • Provide :ref: targets for recwarn.rst so we can use intersphinx referencing.
    Thanks to dupuy_ for the report and lwm_ for the PR.
  • In Python 2, use a simple +- ASCII string in the string representation of pytest.approx (for example &quot;4 +- 4.0e-06&quot;)
    because it is brittle to handle that in different contexts and representations internally in pytest
    which can result in bugs such as 2111. In Python 3, the representation still uses ± (for example 4 ± 4.0e-06).
    Thanks kerrick-lyft
    for the report and nicoddemus_ for the PR.
  • Using item.Function, item.Module, etc., is now issuing deprecation warnings, prefer
    pytest.Function, pytest.Module, etc., instead (2034).
    Thanks nmundar
    for the PR.
  • Fix error message using approx with complex numbers (2082).
    Thanks adler-j
    for the report and nicoddemus_ for the PR.
  • Fixed false-positives warnings from assertion rewrite hook for modules imported more than
    once by the pytest_plugins mechanism.
    Thanks nicoddemus_ for the PR.
  • Remove an internal cache which could cause hooks from conftest.py files in
    sub-directories to be called in other directories incorrectly (2016).
    Thanks d-b-w
    for the report and nicoddemus_ for the PR.
  • Remove internal code meant to support earlier Python 3 versions that produced the side effect
    of leaving None in sys.modules when expressions were evaluated by pytest (for example passing a condition
    as a string to pytest.mark.skipif)(2103).
    Thanks jaraco
    for the report and nicoddemus_ for the PR.
  • Cope gracefully with a .pyc file with no matching .py file (2038). Thanks
    nedbat
    .

.. _syre: https://github.com/syre
.. _adler-j: https://github.com/adler-j
.. _d-b-w: https://bitbucket.org/d-b-w/
.. _DuncanBetts: https://github.com/DuncanBetts
.. _dupuy: https://bitbucket.org/dupuy/
.. _kerrick-lyft: https://github.com/kerrick-lyft
.. _lwm: https://github.com/lwm
.. _mbukatov: https://github.com/mbukatov
.. _nedbat: https://github.com/nedbat
.. _nmundar: https://github.com/nmundar

.. _2016: pytest-dev/pytest#2016
.. _2034: pytest-dev/pytest#2034
.. _2038: pytest-dev/pytest#2038
.. _2078: pytest-dev/pytest#2078
.. _2082: pytest-dev/pytest#2082
.. _2089: pytest-dev/pytest#2089
.. _2103: pytest-dev/pytest#2103
.. _2105: pytest-dev/pytest#2105
.. _2111: pytest-dev/pytest#2111
.. _478: pytest-dev/pytest#478
.. _687: pytest-dev/pytest#687

3.0.4

==================

  • Import errors when collecting test modules now display the full traceback (1976).
    Thanks cwitty
    for the report and nicoddemus_ for the PR.
  • Fix confusing command-line help message for custom options with two or more metavar properties (2004).
    Thanks okulynyak
    and davehunt_ for the report and nicoddemus_ for the PR.
  • When loading plugins, import errors which contain non-ascii messages are now properly handled in Python 2 (1998).
    Thanks nicoddemus
    for the PR.
  • Fixed cyclic reference when pytest.raises is used in context-manager form (1965). Also as a
    result of this fix, sys.exc_info() is left empty in both context-manager and function call usages.
    Previously, sys.exc_info would contain the exception caught by the context manager,
    even when the expected exception occurred.
    Thanks MSeifert04
    for the report and the PR.
  • Fixed false-positives warnings from assertion rewrite hook for modules that were rewritten but
    were later marked explicitly by pytest.register_assert_rewrite
    or implicitly as a plugin (2005).
    Thanks RonnyPfannschmidt
    for the report and nicoddemus_ for the PR.
  • Report teardown output on test failure (442).
    Thanks matclab
    for the PR.
  • Fix teardown error message in generated xUnit XML.
    Thanks gdyuldin_ for the PR.
  • Properly handle exceptions in multiprocessing tasks (1984).
    Thanks adborden
    for the report and nicoddemus_ for the PR.
  • Clean up unittest TestCase objects after tests are complete (1649).
    Thanks d_b_w
    for the report and PR.

.. _adborden: https://github.com/adborden
.. _cwitty: https://github.com/cwitty
.. _d_b_w: https://github.com/d_b_w
.. _gdyuldin: https://github.com/gdyuldin
.. _matclab: https://github.com/matclab
.. _MSeifert04: https://github.com/MSeifert04
.. _okulynyak: https://github.com/okulynyak

.. _442: pytest-dev/pytest#442
.. _1965: pytest-dev/pytest#1965
.. _1976: pytest-dev/pytest#1976
.. _1984: pytest-dev/pytest#1984
.. _1998: pytest-dev/pytest#1998
.. _2004: pytest-dev/pytest#2004
.. _2005: pytest-dev/pytest#2005
.. _1649: pytest-dev/pytest#1649

3.0.3

==================

  • The ids argument to parametrize again accepts unicode strings
    in Python 2 (1905).
    Thanks philpep
    for the report and nicoddemus_ for the PR.
  • Assertions are now being rewritten for plugins in development mode
    (pip install -e) (1934).
    Thanks nicoddemus
    for the PR.
  • Fix pkg_resources import error in Jython projects (1853).
    Thanks raquel-ucl
    for the PR.
  • Got rid of AttributeError: &#39;Module&#39; object has no attribute &#39;_obj&#39; exception
    in Python 3 (1944).
    Thanks axil
    for the PR.
  • Explain a bad scope value passed to fixture declarations or
    a MetaFunc.parametrize() call. Thanks tgoodlet_ for the PR.
  • This version includes pluggy-0.4.0, which correctly handles
    VersionConflict errors in plugins (704).
    Thanks nicoddemus
    for the PR.

.. _philpep: https://github.com/philpep
.. _raquel-ucl: https://github.com/raquel-ucl
.. _axil: https://github.com/axil
.. _tgoodlet: https://github.com/tgoodlet
.. _vlad-dragos: https://github.com/vlad-dragos

.. _1853: pytest-dev/pytest#1853
.. _1905: pytest-dev/pytest#1905
.. _1934: pytest-dev/pytest#1934
.. _1944: pytest-dev/pytest#1944
.. _704: pytest-dev/pytest#704

3.0.2

==================

  • Improve error message when passing non-string ids to pytest.mark.parametrize (1857).
    Thanks okken
    for the report and nicoddemus_ for the PR.
  • Add buffer attribute to stdin stub class pytest.capture.DontReadFromInput
    Thanks joguSD_ for the PR.
  • Fix UnicodeEncodeError when string comparison with unicode has failed. (1864)
    Thanks AiOO
    for the PR.
  • pytest_plugins is now handled correctly if defined as a string (as opposed as
    a sequence of strings) when modules are considered for assertion rewriting.
    Due to this bug, much more modules were being rewritten than necessary
    if a test suite uses pytest_plugins to load internal plugins (1888).
    Thanks jaraco
    for the report and nicoddemus_ for the PR (1891_).
  • Do not call tearDown and cleanups when running tests from
    unittest.TestCase subclasses with --pdb
    enabled. This allows proper post mortem debugging for all applications
    which have significant logic in their tearDown machinery (1890). Thanks
    mbyt
    for the PR.
  • Fix use of deprecated getfuncargvalue method in the internal doctest plugin.
    Thanks ViviCoder_ for the report (1898_).

.. _joguSD: https://github.com/joguSD
.. _AiOO: https://github.com/AiOO
.. _mbyt: https://github.com/mbyt
.. _ViviCoder: https://github.com/ViviCoder

.. _1857: pytest-dev/pytest#1857
.. _1864: pytest-dev/pytest#1864
.. _1888: pytest-dev/pytest#1888
.. _1891: pytest-dev/pytest#1891
.. _1890: pytest-dev/pytest#1890
.. _1898: pytest-dev/pytest#1898

3.0.1

==================

  • Fix regression when importorskip is used at module level (1822).
    Thanks jaraco
    and The-Compiler_ for the report and nicoddemus_ for the PR.
  • Fix parametrization scope when session fixtures are used in conjunction
    with normal parameters in the same call (1832).
    Thanks The-Compiler
    for the report, Kingdread_ and nicoddemus_ for the PR.
  • Fix internal error when parametrizing tests or fixtures using an empty ids argument (1849).
    Thanks OPpuolitaival
    for the report and nicoddemus_ for the PR.
  • Fix loader error when running pytest embedded in a zipfile.
    Thanks mbachry_ for the PR.

.. _Kingdread: https://github.com/Kingdread
.. _mbachry: https://github.com/mbachry
.. _OPpuolitaival: https://github.com/OPpuolitaival

.. _1822: pytest-dev/pytest#1822
.. _1832: pytest-dev/pytest#1832
.. _1849: pytest-dev/pytest#1849

3.0.0

==================

Incompatible changes

A number of incompatible changes were made in this release, with the intent of removing features deprecated for a long
time or change existing behaviors in order to make them less surprising/more useful.

  • Reinterpretation mode has now been removed. Only plain and rewrite
    mode are available, consequently the --assert=reinterp option is
    no longer available. This also means files imported from plugins or
    conftest.py will not benefit from improved assertions by
    default, you should use pytest.register_assert_rewrite() to
    explicitly turn on assertion rewriting for those files. Thanks
    flub_ for the PR.
  • The following deprecated commandline options were removed:
  • --genscript: no longer supported;
  • --no-assert: use --assert=plain instead;
  • --nomagic: use --assert=plain instead;
  • --report: use -r instead;

Thanks to RedBeardCode_ for the PR (1664_).

  • ImportErrors in plugins now are a fatal error instead of issuing a
    pytest warning (1479). Thanks to The-Compiler for the PR.
  • Removed support code for Python 3 versions < 3.3 (1627_).
  • Removed all py.test-X* entry points. The versioned, suffixed entry points
    were never documented and a leftover from a pre-virtualenv era. These entry
    points also created broken entry points in wheels, so removing them also
    removes a source of confusion for users (1632).
    Thanks obestwalter
    for the PR.
  • pytest.skip() now raises an error when used to decorate a test function,
    as opposed to its original intent (to imperatively skip a test inside a test function). Previously
    this usage would cause the entire module to be skipped (607).
    Thanks omarkohl
    for the complete PR (1519_).
  • Exit tests if a collection error occurs. A poll indicated most users will hit CTRL-C
    anyway as soon as they see collection errors, so pytest might as well make that the default behavior (1421).
    A --continue-on-collection-errors option has been added to restore the previous behaviour.
    Thanks olegpidsadnyi
    and omarkohl_ for the complete PR (1628_).
  • Renamed the pytest pdb module (plugin) into debugging to avoid clashes with the builtin pdb module.
  • Raise a helpful failure message when requesting a parametrized fixture at runtime,
    e.g. with request.getfixturevalue. Previously these parameters were simply
    never defined, so a fixture decorated like pytest.fixture(params=[0, 1, 2])
    only ran once (460).
    Thanks to nikratio
    for the bug report, RedBeardCode_ and tomviner_ for the PR.
  • _pytest.monkeypatch.monkeypatch class has been renamed to _pytest.monkeypatch.MonkeyPatch
    so it doesn't conflict with the monkeypatch fixture.
  • --exitfirst / -x can now be overridden by a following --maxfail=N
    and is just a synonym for --maxfail=1.

New Features

  • Support nose-style __test__ attribute on methods of classes,
    including unittest-style Classes. If set to False, the test will not be
    collected.
  • New doctest_namespace fixture for injecting names into the
    namespace in which doctests run.
    Thanks milliams_ for the complete PR (1428_).
  • New --doctest-report option available to change the output format of diffs
    when running (failing) doctests (implements 1749).
    Thanks hartym
    for the PR.
  • New name argument to pytest.fixture decorator which allows a custom name
    for a fixture (to solve the funcarg-shadowing-fixture problem).
    Thanks novas0x2a_ for the complete PR (1444_).
  • New approx() function for easily comparing floating-point numbers in
    tests.
    Thanks kalekundert_ for the complete PR (1441_).
  • Ability to add global properties in the final xunit output file by accessing
    the internal junitxml plugin (experimental).
    Thanks tareqalayan_ for the complete PR 1454_).
  • New ExceptionInfo.match() method to match a regular expression on the
    string representation of an exception (372).
    Thanks omarkohl
    for the complete PR (1502_).
  • __tracebackhide__ can now also be set to a callable which then can decide
    whether to filter the traceback based on the ExceptionInfo object passed
    to it. Thanks The-Compiler_ for the complete PR (1526_).
  • New pytest_make_parametrize_id(config, val) hook which can be used by plugins to provide
    friendly strings for custom types.
    Thanks palaviv_ for the PR.
  • capsys and capfd now have a disabled() context-manager method, which
    can be used to temporarily disable capture within a test.
    Thanks nicoddemus_ for the PR.
  • New cli flag --fixtures-per-test: shows which fixtures are being used
    for each selected test item. Features doc strings of fixtures by default.
    Can also show where fixtures are defined if combined with -v.
    Thanks hackebrot_ for the PR.
  • Introduce pytest command as recommended entry point. Note that py.test
    still works and is not scheduled for removal. Closes proposal
    1629. Thanks obestwalter and davehunt_ for the complete PR
    (1633_).
  • New cli flags:
  • --setup-plan: performs normal collection and reports
    the potential setup and teardown and does not execute any fixtures and tests;
  • --setup-only: performs normal collection, executes setup and teardown of
    fixtures and reports them;
  • --setup-show: performs normal test execution and additionally shows
    setup and teardown of fixtures;
  • --keep-duplicates: py.test now ignores duplicated paths given in the command
    line. To retain the previous behavior where the same test could be run multiple
    times by specifying it in the command-line multiple times, pass the --keep-duplicates
    argument (1609_);

Thanks d6e, kvas-it, sallner, ioggstream and omarkohl_ for the PRs.

  • New CLI flag --override-ini/-o: overrides values from the ini file.
    For example: &quot;-o xfail_strict=True&quot;'.
    Thanks blueyed_ and fengxx_ for the PR.
  • New hooks:
  • pytest_fixture_setup(fixturedef, request): executes fixture setup;
  • pytest_fixture_post_finalizer(fixturedef): called after the fixture's
    finalizer and has access to the fixture's result cache.

Thanks d6e, sallner.

  • Issue warnings for asserts whose test is a tuple literal. Such asserts will
    never fail because tuples are always truthy and are usually a mistake
    (see 1562). Thanks kvas-it, for the PR.
  • Allow passing a custom debugger class (e.g. --pdbcls=IPython.core.debugger:Pdb).
    Thanks to anntzer_ for the PR.

Changes

  • Plugins now benefit from assertion rewriting. Thanks
    sober7, nicoddemus and flub_ for the PR.
  • Change report.outcome for xpassed tests to &quot;passed&quot; in non-strict
    mode and &quot;failed&quot; in strict mode. Thanks to hackebrot_ for the PR
    (1795) and gprasad84 for report (1546_).
  • Tests marked with xfail(strict=False) (the default) now appear in
    JUnitXML reports as passing tests instead of skipped.
    Thanks to hackebrot_ for the PR (1795_).
  • Highlight path of the file location in the error report to make it easier to copy/paste.
    Thanks suzaku_ for the PR (1778_).
  • Fixtures marked with pytest.fixture can now use yield statements exactly like
    those marked with the pytest.yield_fixture decorator. This change renders
    pytest.yield_fixture deprecated and makes pytest.fixture with yield statements
    the preferred way to write teardown code (1461).
    Thanks csaftoiu
    for bringing this to attention and nicoddemus_ for the PR.
  • Explicitly passed parametrize ids do not get escaped to ascii (1351).
    Thanks ceridwen
    for the PR.
  • Fixtures are now sorted in the error message displayed when an unknown
    fixture is declared in a test function.
    Thanks nicoddemus_ for the PR.
  • pytest_terminal_summary hook now receives the exitstatus
    of the test session as argument. Thanks blueyed_ for the PR (1809_).
  • Parametrize ids can accept None as specific test id, in which case the
    automatically generated id for that argument will be used.
    Thanks palaviv_ for the complete PR (1468_).
  • The parameter to xunit-style setup/teardown methods (setup_method,
    setup_module, etc.) is now optional and may be omitted.
    Thanks okken_ for bringing this to attention and nicoddemus_ for the PR.
  • Improved automatic id generation selection in case of duplicate ids in
    parametrize.
    Thanks palaviv_ for the complete PR (1474_).
  • Now pytest warnings summary is shown up by default. Added a new flag
    --disable-pytest-warnings to explicitly disable the warnings summary (1668_).
  • Make ImportError during collection more explicit by reminding
    the user to check the name of the test module/package(s) (1426).
    Thanks omarkohl
    for the complete PR (1520_).
  • Add build/ and dist/ to the default --norecursedirs list. Thanks
    mikofski_ for the report and tomviner_ for the PR (1544_).
  • pytest.raises in the context manager form accepts a custom
    message to raise when no exception occurred.
    Thanks palaviv_ for the complete PR (1616_).
  • conftest.py files now benefit from assertion rewriting; previously it
    was only available for test modules. Thanks flub, sober7 and
    nicoddemus_ for the PR (1619_).
  • Text documents without any doctests no longer appear as "skipped".
    Thanks graingert_ for reporting and providing a full PR (1580_).
  • Ensure that a module within a namespace package can be found when it
    is specified on the command line together with the --pyargs
    option. Thanks to taschini_ for the PR (1597_).
  • Always include full assertion explanation during assertion rewriting. The previous behaviour was hiding
    sub-expressions that happened to be False, assuming this was redundant information.
    Thanks bagerard_ for reporting (1503). Thanks to davehunt and
    tomviner_ for the PR.
  • OptionGroup.addoption() now checks if option names were already
    added before, to make it easier to track down issues like 1618_.
    Before, you only got exceptions later from argparse library,
    giving no clue about the actual reason for double-added options.
  • yield-based tests are considered deprecated and will be removed in pytest-4.0.
    Thanks nicoddemus_ for the PR.
  • [pytest] sections in setup.cfg files should now be named [tool:pytest]
    to avoid conflicts with other distutils commands (see 567). [pytest] sections in
    pytest.ini or tox.ini files are supported and unchanged.
    Thanks nicoddemus
    for the PR.
  • Using pytest_funcarg__ prefix to declare fixtures is considered deprecated and will be
    removed in pytest-4.0 (1684).
    Thanks nicoddemus
    for the PR.
  • Passing a command-line string to pytest.main() is considered deprecated and scheduled
    for removal in pytest-4.0. It is recommended to pass a list of arguments instead (1723_).
  • Rename getfuncargvalue to getfixturevalue. getfuncargvalue is
    still present but is now considered deprecated. Thanks to RedBeardCode_ and tomviner_
    for the PR (1626_).
  • optparse type usage now triggers DeprecationWarnings (1740_).
  • optparse backward compatibility supports float/complex types (457_).
  • Refined logic for determining the rootdir, considering only valid
    paths which fixes a number of issues: 1594, 1435 and 1471.
    Updated the documentation according to current behavior. Thanks to
    blueyed
    , davehunt_ and matthiasha_ for the PR.
  • Always include full assertion explanation. The previous behaviour was hiding
    sub-expressions that happened to be False, assuming this was redundant information.
    Thanks bagerard_ for reporting (1503). Thanks to davehunt and
    tomviner_ for PR.
  • Better message in case of not using parametrized variable (see 1539).
    Thanks to tramwaj29
    for the PR.
  • Updated docstrings with a more uniform style.
  • Add stderr write for pytest.exit(msg) during startup. Previously the message was never shown.
    Thanks BeyondEvil_ for reporting 1210. Thanks to JonathonSonesen and
    tomviner_ for the PR.
  • No longer display the incorrect test deselection reason (1372).
    Thanks ronnypfannschmidt
    for the PR.
  • The --resultlog command line option has been deprecated: it is little used
    and there are more modern and better alternatives (see 830).
    Thanks nicoddemus
    for the PR.
  • Improve error message with fixture lookup errors: add an 'E' to the first
    line and '>' to the rest. Fixes 717. Thanks blueyed for reporting and
    a PR, eolo999_ for the initial PR and tomviner_ for his guidance during
    EuroPython2016 sprint.

Bug Fixes

  • Parametrize now correctly handles duplicated test ids.
  • Fix internal error issue when the method argument is missing for
    teardown_method() (1605_).
  • Fix exception visualization in case the current working directory (CWD) gets
    deleted during testing (1235). Thanks bukzor for reporting. PR by
    marscher_.
  • Improve test output for logical expression with brackets (925).
    Thanks DRMacIver
    for reporting and RedBeardCode_ for the PR.
  • Create correct diff for strings ending with newlines (1553).
    Thanks Vogtinator
    for reporting and RedBeardCode_ and
    tomviner_ for the PR.
  • ConftestImportFailure now shows the traceback making it easier to
    identify bugs in conftest.py files (1516). Thanks txomon for
    the PR.
  • Text documents without any doctests no longer appear as "skipped".
    Thanks graingert_ for reporting and providing a full PR (1580_).
  • Fixed collection of classes with custom __new__ method.
    Fixes 1579. Thanks to Stranger6667 for the PR.
  • Fixed scope overriding inside metafunc.parametrize (634).
    Thanks to Stranger6667
    for the PR.
  • Fixed the total tests tally in junit xml output (1798).
    Thanks to cryporchild
    for the PR.
  • Fixed off-by-one error with lines from request.node.warn.
    Thanks to blueyed_ for the PR.

.. _1210: pytest-dev/pytest#1210
.. _1235: pytest-dev/pytest#1235
.. _1351: pytest-dev/pytest#1351
.. _1372: pytest-dev/pytest#1372
.. _1421: pytest-dev/pytest#1421
.. _1426: pytest-dev/pytest#1426
.. _1428: pytest-dev/pytest#1428
.. _1435: pytest-dev/pytest#1435
.. _1441: pytest-dev/pytest#1441
.. _1444: pytest-dev/pytest#1444
.. _1454: pytest-dev/pytest#1454
.. _1461: pytest-dev/pytest#1461
.. _1468: pytest-dev/pytest#1468
.. _1471: pytest-dev/pytest#1471
.. _1474: pytest-dev/pytest#1474
.. _1479: pytest-dev/pytest#1479
.. _15

@puruckertom puruckertom merged commit 27f771e into dev Jul 21, 2017
@puruckertom puruckertom deleted the pyup-scheduled-update-07-21-2017 branch July 28, 2017 04:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants