Pytest 3.1.1 (2017-05-30)

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 (2017-05-22)

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:

    [pytest]
    addopts = -p no:warnings
    

    See the warnings documentation page 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.

3.0.7 (2017-03-14)

3.0.6 (2017-01-22)

3.0.5 (2016-12-05)

3.0.4 (2016-11-09)

3.0.3 (2016-09-28)

3.0.2 (2016-09-01)

3.0.1 (2016-08-23)

3.0.0 (2016-08-18)

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.

New Features

Changes

Bug Fixes

2.9.2 (2016-05-31)

Bug Fixes

2.9.1 (2016-03-17)

Bug Fixes

2.9.0 (2016-02-29)

New Features

Changes

Bug Fixes

2.8.7 (2016-01-24)

2.8.6 (2016-01-21)

2.8.5 (2015-12-11)

2.8.4 (2015-12-06)

2.8.3 (2015-11-18)

2.8.2 (2015-10-07)

2.8.1 (2015-09-29)

2.8.0 (2015-09-18)

2.7.3 (2015-09-15)

2.7.2 (2015-06-23)

2.7.1 (2015-05-19)

2.7.0 (2015-03-26)

2.6.4 (2014-10-24)

2.6.3 (2014-09-24)

2.6.2 (2014-09-05)

2.6.1 (2014-08-07)

2.6

2.5.2 (2014-01-29)

2.5.1 (2013-12-17)

2.5.0 (2013-12-12)

2.4.2 (2013-10-04)

2.4.1 (2013-10-02)

2.4

known incompatibilities:

new features:

Bug fixes:

2.3.5 (2013-04-30)

2.3.4 (2012-11-20)

2.3.3 (2012-11-06)

2.3.2 (2012-10-25)

2.3.1 (2012-10-20)

2.3.0 (2012-10-19)

2.2.4 (2012-05-22)

2.2.3 (2012-02-05)

2.2.2 (2012-02-05)

2.2.1 (2011-12-16)

2.2.0 (2011-11-18)

2.1.3 (2011-10-18)

2.1.2 (2011-09-24)

2.1.1

2.1.0 (2011-07-09)

2.0.3 (2011-05-11)

2.0.2 (2011-03-09)

2.0.1 (2011-02-07)

2.0.0 (2010-11-25)

1.3.4 (2010-09-14)

1.3.3 (2010-07-30)

1.3.2 (2010-07-08)

New features

Bug fixes

1.3.1 (2010-05-25)

New features

Bug Fixes

1.3.0 (2010-05-05)

1.2.0 (2010-01-18)

1.1.1 (2009-11-24)

1.1.0 (2009-11-05)

1.0.3

1.0.2 (2009-08-27)

1.0.1 (2009-08-19)

1.0.0 (2009-08-04)

1.0.0b9 (2009-07-31)

1.0.0b8 (2009-07-22)

1.0.0b7

1.0.0b3 (2009-06-19)

1.0.0b1

XXX lots of things missing here XXX

0.9.2

0.9.1

This is a fairly complete list of v0.9.1, which can serve as a reference for developers.