[pytest-dev] [TIP] pytest 2.8

holger krekel holger at merlinux.eu
Sat Sep 19 09:34:58 CEST 2015


Hi Bruno,

thanks for all the work on pytest-2.8 and the release!

Was wondering -- did you conciously choose to not re-create and install
docs before releasing? 

FWIW I just regen'ed docs and pointed pytest.org/latest to 2.8 (it previously
had "latest" point to 2.7).  The regen did not run fully to the end
so some examples have not been regenerated yet but it's better than having
a fully outdated doc version i think.  Maybe ronny could take a look why
"tox -e regen" chokes? 

cheers,
holger



On Fri, Sep 18, 2015 at 22:09 +0000, Bruno Oliveira wrote:
> Hi all,
> 
> pytest 2.8 has been released to pypi, with significant bug-fixes and
> features.
> 
> In case you wonder, pytest is a widely used mature test runner both for
> unit and functional test purposes in python.  See http://pytest.org for
> documentation and examples.
> 
> Here's the changelog for this version:
> 
> - new ``--lf`` and ``-ff`` options to run only the last failing tests or
>   "failing tests first" from the last run.  This functionality is provided
>   through porting the formerly external pytest-cache plugin into pytest
> core.
>   BACKWARD INCOMPAT: if you used pytest-cache's functionality to persist
>   data between test runs be aware that we don't serialize sets anymore.
>   Thanks Ronny Pfannschmidt for most of the merging work.
> 
> - "-r" option now accepts "a" to include all possible reports, similar
>   to passing "fEsxXw" explicitly (isse960).
>   Thanks Abhijeet Kasurde for the PR.
> 
> - avoid python3.5 deprecation warnings by introducing version
>   specific inspection helpers, thanks Michael Droettboom.
> 
> - fix issue562: @nose.tools.istest now fully respected.
> 
> - fix issue934: when string comparison fails and a diff is too large to
> display
>   without passing -vv, still show a few lines of the diff.
>   Thanks Florian Bruhin for the report and Bruno Oliveira for the PR.
> 
> - fix issue736: Fix a bug where fixture params would be discarded when
> combined
>   with parametrization markers.
>   Thanks to Markus Unterwaditzer for the PR.
> 
> - fix issue710: introduce ALLOW_UNICODE doctest option: when enabled, the
>   ``u`` prefix is stripped from unicode strings in expected doctest output.
> This
>   allows doctests which use unicode to run in Python 2 and 3 unchanged.
>   Thanks Jason R. Coombs for the report and Bruno Oliveira for the PR.
> 
> - parametrize now also generates meaningful test IDs for enum, regex and
> class
>   objects (as opposed to class instances).
>   Thanks to Florian Bruhin for the PR.
> 
> - Add 'warns' to assert that warnings are thrown (like 'raises').
>   Thanks to Eric Hunsberger for the PR.
> 
> - Fix issue683: Do not apply an already applied mark.  Thanks ojake for the
> PR.
> 
> - Deal with capturing failures better so fewer exceptions get lost to
>   /dev/null.  Thanks David Szotten for the PR.
> 
> - fix issue730: deprecate and warn about the --genscript option.
>   Thanks Ronny Pfannschmidt for the report and Christian Pommranz for the
> PR.
> 
> - fix issue751: multiple parametrize with ids bug if it parametrizes class
> with
>   two or more test methods. Thanks Sergey Chipiga for reporting and Jan
>   Bednarik for PR.
> 
> - fix issue82: avoid loading conftest files from
> setup.cfg/pytest.ini/tox.ini
>   files and upwards by default (--confcutdir can still be set to override
> this).
>   Thanks Bruno Oliveira for the PR.
> 
> - fix issue768: docstrings found in python modules were not setting up
> session
>   fixtures. Thanks Jason R. Coombs for reporting and Bruno Oliveira for the
> PR.
> 
> - added `tmpdir_factory`, a session-scoped fixture that can be used to
> create
>   directories under the base temporary directory. Previously this object was
>   installed as a `_tmpdirhandler` attribute of the `config` object, but now
> it
>   is part of the official API and using `config._tmpdirhandler` is
>   deprecated.
>   Thanks Bruno Oliveira for the PR.
> 
> - fix issue808: pytest's internal assertion rewrite hook now implements the
>   optional PEP302 get_data API so tests can access data files next to them.
>   Thanks xmo-odoo for request and example and Bruno Oliveira for
>   the PR.
> 
> - rootdir and inifile are now displayed during usage errors to help
>   users diagnose problems such as unexpected ini files which add
>   unknown options being picked up by pytest. Thanks to Pavel Savchenko for
>   bringing the problem to attention in #821 and Bruno Oliveira for the PR.
> 
> - Summary bar now is colored yellow for warning
>   situations such as: all tests either were skipped or xpass/xfailed,
>   or no tests were run at all (this is a partial fix for issue500).
> 
> - fix issue812: pytest now exits with status code 5 in situations where no
>   tests were run at all, such as the directory given in the command line
> does
>   not contain any tests or as result of a command line option filters
>   all out all tests (-k for example).
>   Thanks Eric Siegerman (issue812) and Bruno Oliveira for the PR.
> 
> - Summary bar now is colored yellow for warning
>   situations such as: all tests either were skipped or xpass/xfailed,
>   or no tests were run at all (related to issue500).
>   Thanks Eric Siegerman.
> 
> - New `testpaths` ini option: list of directories to search for tests
>   when executing pytest from the root directory. This can be used
>   to speed up test collection when a project has well specified directories
>   for tests, being usually more practical than configuring norecursedirs for
>   all directories that do not contain tests.
>   Thanks to Adrian for idea (#694) and Bruno Oliveira for the PR.
> 
> - fix issue713: JUnit XML reports for doctest failures.
>   Thanks Punyashloka Biswal.
> 
> - fix issue970: internal pytest warnings now appear as "pytest-warnings" in
>   the terminal instead of "warnings", so it is clear for users that those
>   warnings are from pytest and not from the builtin "warnings" module.
>   Thanks Bruno Oliveira.
> 
> - Include setup and teardown in junitxml test durations.
>   Thanks Janne Vanhala.
> 
> - fix issue735: assertion failures on debug versions of Python 3.4+
> 
> - new option ``--import-mode`` to allow to change test module importing
>   behaviour to append to sys.path instead of prepending.  This better
> allows
>   to run test modules against installated versions of a package even if the
>   package under test has the same import root.  In this example::
> 
>         testing/__init__.py
>         testing/test_pkg_under_test.py
>         pkg_under_test/
> 
>   the tests will run against the installed version
>   of pkg_under_test when ``--import-mode=append`` is used whereas
>   by default they would always pick up the local version.  Thanks Holger
> Krekel.
> 
> - pytester: add method ``TmpTestdir.delete_loaded_modules()``, and call it
>   from ``inline_run()`` to allow temporary modules to be reloaded.
>   Thanks Eduardo Schettino.
> 
> - internally refactor pluginmanager API and code so that there
>   is a clear distinction between a pytest-agnostic rather simple
>   pluginmanager and the PytestPluginManager which adds a lot of
>   behaviour, among it handling of the local conftest files.
>   In terms of documented methods this is a backward compatible
>   change but it might still break 3rd party plugins which relied on
>   details like especially the pluginmanager.add_shutdown() API.
>   Thanks Holger Krekel.
> 
> - pluginmanagement: introduce ``pytest.hookimpl`` and
>   ``pytest.hookspec`` decorators for setting impl/spec
>   specific parameters.  This substitutes the previous
>   now deprecated use of ``pytest.mark`` which is meant to
>   contain markers for test functions only.
> 
> - write/refine docs for "writing plugins" which now have their
>   own page and are separate from the "using/installing plugins`` page.
> 
> - fix issue732: properly unregister plugins from any hook calling
>   sites allowing to have temporary plugins during test execution.
> 
> - deprecate and warn about ``__multicall__`` argument in hook
>   implementations.  Use the ``hookwrapper`` mechanism instead already
>   introduced with pytest-2.7.
> 
> - speed up pytest's own test suite considerably by using inprocess
>   tests by default (testrun can be modified with --runpytest=subprocess
>   to create subprocesses in many places instead).  The main
>   APIs to run pytest in a test is "runpytest()" or "runpytest_subprocess"
>   and "runpytest_inprocess" if you need a particular way of running
>   the test.  In all cases you get back a RunResult but the inprocess
>   one will also have a "reprec" attribute with the recorded events/reports.
> 
> - fix monkeypatch.setattr("x.y", raising=False) to actually not raise
>   if "y" is not a pre-existing attribute. Thanks Florian Bruhin.
> 
> - fix issue741: make running output from testdir.run copy/pasteable
>   Thanks Bruno Oliveira.
> 
> - add a new ``--noconftest`` argument which ignores all ``conftest.py``
> files.
> 
> - add ``file`` and ``line`` attributes to JUnit-XML output.
> 
> - fix issue890: changed extension of all documentation files from ``txt`` to
>   ``rst``. Thanks to Abhijeet for the PR.
> 
> - fix issue714: add ability to apply indirect=True parameter on particular
> argnames.
>   Thanks Elizaveta239.
> 
> - fix issue714: add ability to apply indirect=True parameter on particular
> argnames.
> 
> - fix issue890: changed extension of all documentation files from ``txt`` to
>   ``rst``. Thanks to Abhijeet for the PR.
> 
> - fix issue957: "# doctest: SKIP" option will now register doctests as
> SKIPPED
>   rather than PASSED.
>   Thanks Thomas Grainger for the report and Bruno Oliveira for the PR.
> 
> - issue951: add new record_xml_property fixture, that supports logging
>   additional information on xml output. Thanks David Diaz for the PR.
> 
> - issue949: paths after normal options (for example `-s`, `-v`, etc) are now
>   properly used to discover `rootdir` and `ini` files.
>   Thanks Peter Lauri for the report and Bruno Oliveira for the PR.

> _______________________________________________
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
> http://lists.idyll.org/listinfo/testing-in-python


-- 
about me:    http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu


More information about the pytest-dev mailing list