Skip to content

Commit

Permalink
Merge branch 'master' into features
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoddemus committed Aug 1, 2017
2 parents 6e75472 + 0a15edd commit 40254b6
Show file tree
Hide file tree
Showing 46 changed files with 232 additions and 60 deletions.
166 changes: 166 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,172 @@
.. towncrier release notes start
Pytest 3.2.0 (2017-07-30)
=========================

Deprecations and Removals
-------------------------

- ``pytest.approx`` no longer supports ``>``, ``>=``, ``<`` and ``<=``
operators to avoid surprising/inconsistent behavior. See `the docs
<https://docs.pytest.org/en/latest/builtin.html#pytest.approx>`_ for more
information. (`#2003 <https://github.com/pytest-dev/pytest/issues/2003>`_)

- All old-style specific behavior in current classes in the pytest's API is
considered deprecated at this point and will be removed in a future release.
This affects Python 2 users only and in rare situations. (`#2147
<https://github.com/pytest-dev/pytest/issues/2147>`_)

- A deprecation warning is now raised when using marks for parameters
in ``pytest.mark.parametrize``. Use ``pytest.param`` to apply marks to
parameters instead. (`#2427 <https://github.com/pytest-dev/pytest/issues/2427>`_)


Features
--------

- Add support for numpy arrays (and dicts) to approx. (`#1994
<https://github.com/pytest-dev/pytest/issues/1994>`_)

- Now test function objects have a ``pytestmark`` attribute containing a list
of marks applied directly to the test function, as opposed to marks inherited
from parent classes or modules. (`#2516 <https://github.com/pytest-
dev/pytest/issues/2516>`_)

- Collection ignores local virtualenvs by default; `--collect-in-virtualenv`
overrides this behavior. (`#2518 <https://github.com/pytest-
dev/pytest/issues/2518>`_)

- Allow class methods decorated as ``@staticmethod`` to be candidates for
collection as a test function. (Only for Python 2.7 and above. Python 2.6
will still ignore static methods.) (`#2528 <https://github.com/pytest-
dev/pytest/issues/2528>`_)

- Introduce ``mark.with_args`` in order to allow passing functions/classes as
sole argument to marks. (`#2540 <https://github.com/pytest-
dev/pytest/issues/2540>`_)

- New ``cache_dir`` ini option: sets the directory where the contents of the
cache plugin are stored. Directory may be relative or absolute path: if relative path, then
directory is created relative to ``rootdir``, otherwise it is used as is.
Additionally path may contain environment variables which are expanded during
runtime. (`#2543 <https://github.com/pytest-dev/pytest/issues/2543>`_)

- Introduce the ``PYTEST_CURRENT_TEST`` environment variable that is set with
the ``nodeid`` and stage (``setup``, ``call`` and ``teardown``) of the test
being currently executed. See the `documentation
<https://docs.pytest.org/en/latest/example/simple.html#pytest-current-test-
environment-variable>`_ for more info. (`#2583 <https://github.com/pytest-
dev/pytest/issues/2583>`_)

- Introduced ``@pytest.mark.filterwarnings`` mark which allows overwriting the
warnings filter on a per test, class or module level. See the `docs
<https://docs.pytest.org/en/latest/warnings.html#pytest-mark-
filterwarnings>`_ for more information. (`#2598 <https://github.com/pytest-
dev/pytest/issues/2598>`_)

- ``--last-failed`` now remembers forever when a test has failed and only
forgets it if it passes again. This makes it easy to fix a test suite by
selectively running files and fixing tests incrementally. (`#2621
<https://github.com/pytest-dev/pytest/issues/2621>`_)

- New ``pytest_report_collectionfinish`` hook which allows plugins to add
messages to the terminal reporting after collection has been finished
successfully. (`#2622 <https://github.com/pytest-dev/pytest/issues/2622>`_)

- Added support for `PEP-415's <https://www.python.org/dev/peps/pep-0415/>`_
``Exception.__suppress_context__``. Now if a ``raise exception from None`` is
caught by pytest, pytest will no longer chain the context in the test report.
The behavior now matches Python's traceback behavior. (`#2631
<https://github.com/pytest-dev/pytest/issues/2631>`_)

- Exceptions raised by ``pytest.fail``, ``pytest.skip`` and ``pytest.xfail``
now subclass BaseException, making them harder to be caught unintentionally
by normal code. (`#580 <https://github.com/pytest-dev/pytest/issues/580>`_)


Bug Fixes
---------

- Set ``stdin`` to a closed ``PIPE`` in ``pytester.py.Testdir.popen()`` for
avoid unwanted interactive ``pdb`` (`#2023 <https://github.com/pytest-
dev/pytest/issues/2023>`_)

- Add missing ``encoding`` attribute to ``sys.std*`` streams when using
``capsys`` capture mode. (`#2375 <https://github.com/pytest-
dev/pytest/issues/2375>`_)

- Fix terminal color changing to black on Windows if ``colorama`` is imported
in a ``conftest.py`` file. (`#2510 <https://github.com/pytest-
dev/pytest/issues/2510>`_)

- Fix line number when reporting summary of skipped tests. (`#2548
<https://github.com/pytest-dev/pytest/issues/2548>`_)

- capture: ensure that EncodedFile.name is a string. (`#2555
<https://github.com/pytest-dev/pytest/issues/2555>`_)

- The options ```--fixtures`` and ```--fixtures-per-test`` will now keep
indentation within docstrings. (`#2574 <https://github.com/pytest-
dev/pytest/issues/2574>`_)

- doctests line numbers are now reported correctly, fixing `pytest-sugar#122
<https://github.com/Frozenball/pytest-sugar/issues/122>`_. (`#2610
<https://github.com/pytest-dev/pytest/issues/2610>`_)

- Fix non-determinism in order of fixture collection. Adds new dependency
(ordereddict) for Python 2.6. (`#920 <https://github.com/pytest-
dev/pytest/issues/920>`_)


Improved Documentation
----------------------

- Clarify ``pytest_configure`` hook call order. (`#2539
<https://github.com/pytest-dev/pytest/issues/2539>`_)

- Extend documentation for testing plugin code with the ``pytester`` plugin.
(`#971 <https://github.com/pytest-dev/pytest/issues/971>`_)


Trivial/Internal Changes
------------------------

- Update help message for ``--strict`` to make it clear it only deals with
unregistered markers, not warnings. (`#2444 <https://github.com/pytest-
dev/pytest/issues/2444>`_)

- Internal code move: move code for pytest.approx/pytest.raises to own files in
order to cut down the size of python.py (`#2489 <https://github.com/pytest-
dev/pytest/issues/2489>`_)

- Renamed the utility function ``_pytest.compat._escape_strings`` to
``_ascii_escaped`` to better communicate the function's purpose. (`#2533
<https://github.com/pytest-dev/pytest/issues/2533>`_)

- Improve error message for CollectError with skip/skipif. (`#2546
<https://github.com/pytest-dev/pytest/issues/2546>`_)

- Emit warning about ``yield`` tests being deprecated only once per generator.
(`#2562 <https://github.com/pytest-dev/pytest/issues/2562>`_)

- Ensure final collected line doesn't include artifacts of previous write.
(`#2571 <https://github.com/pytest-dev/pytest/issues/2571>`_)

- Fixed all flake8 errors and warnings. (`#2581 <https://github.com/pytest-
dev/pytest/issues/2581>`_)

- Added ``fix-lint`` tox environment to run automatic pep8 fixes on the code.
(`#2582 <https://github.com/pytest-dev/pytest/issues/2582>`_)

- Turn warnings into errors in pytest's own test suite in order to catch
regressions due to deprecations more promptly. (`#2588
<https://github.com/pytest-dev/pytest/issues/2588>`_)

- Show multiple issue links in CHANGELOG entries. (`#2620
<https://github.com/pytest-dev/pytest/issues/2620>`_)


Pytest 3.1.3 (2017-07-03)
=========================

Expand Down
2 changes: 1 addition & 1 deletion HOWTORELEASE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ How to release pytest
where PYPI_NAME is the name of pypi.python.org as configured in your ``~/.pypirc``
file `for devpi <http://doc.devpi.net/latest/quickstart-releaseprocess.html?highlight=pypirc#devpi-push-releasing-to-an-external-index>`_.

#. After a minor/major release, merge ``features`` into ``master`` and push (or open a PR).
#. After a minor/major release, merge ``release-X.Y.Z`` into ``master`` and push (or open a PR).

.. _devpi-cloud-test: https://github.com/obestwalter/devpi-cloud-test
.. _AppVeyor: https://www.appveyor.com/
Expand Down
1 change: 0 additions & 1 deletion changelog/1994.feature

This file was deleted.

2 changes: 0 additions & 2 deletions changelog/2003.removal

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2023.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2147.removal

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2375.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2427.removal

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2444.trivial

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2489.trivial

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2510.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2516.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2518.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2528.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2533.trivial

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2539.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2540.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2543.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2546.trivial

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2548.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2555.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2562.trivial

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2571.trivial

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2574.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2581.trivial

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2582.trivial

This file was deleted.

2 changes: 0 additions & 2 deletions changelog/2583.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2588.trivial

This file was deleted.

2 changes: 0 additions & 2 deletions changelog/2598.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2610.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/2620.trivial

This file was deleted.

2 changes: 0 additions & 2 deletions changelog/2621.feature

This file was deleted.

2 changes: 0 additions & 2 deletions changelog/2622.feature

This file was deleted.

4 changes: 0 additions & 4 deletions changelog/2631.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/580.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/920.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/971.doc

This file was deleted.

1 change: 1 addition & 0 deletions doc/en/announce/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Release announcements
:maxdepth: 2


release-3.2.0
release-3.1.3
release-3.1.2
release-3.1.1
Expand Down
48 changes: 48 additions & 0 deletions doc/en/announce/release-3.2.0.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
pytest-3.2.0
=======================================

The pytest team is proud to announce the 3.2.0 release!

pytest is a mature Python testing tool with more than a 1600 tests
against itself, passing on many different interpreters and platforms.

This release contains a number of bugs fixes and improvements, so users are encouraged
to take a look at the CHANGELOG:

http://doc.pytest.org/en/latest/changelog.html

For complete documentation, please visit:

http://docs.pytest.org

As usual, you can upgrade from pypi via:

pip install -U pytest

Thanks to all who contributed to this release, among them:

* Alex Hartoto
* Andras Tim
* Bruno Oliveira
* Daniel Hahler
* Florian Bruhin
* Floris Bruynooghe
* John Still
* Jordan Moldow
* Kale Kundert
* Lawrence Mitchell
* Llandy Riveron Del Risco
* Maik Figura
* Martin Altmayer
* Mihai Capotă
* Nathaniel Waisbrot
* Nguyễn Hồng Quân
* Pauli Virtanen
* Raphael Pierzina
* Ronny Pfannschmidt
* Segev Finer
* V.Kuznetsov


Happy testing,
The Pytest Development Team
16 changes: 8 additions & 8 deletions doc/en/builtin.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,14 @@ You can ask for available builtin or project-custom
The returned ``monkeypatch`` fixture provides these
helper methods to modify objects, dictionaries or os.environ::
monkeypatch.setattr(obj, name, value, raising=True)
monkeypatch.delattr(obj, name, raising=True)
monkeypatch.setitem(mapping, name, value)
monkeypatch.delitem(obj, name, raising=True)
monkeypatch.setenv(name, value, prepend=False)
monkeypatch.delenv(name, value, raising=True)
monkeypatch.syspath_prepend(path)
monkeypatch.chdir(path)
monkeypatch.setattr(obj, name, value, raising=True)
monkeypatch.delattr(obj, name, raising=True)
monkeypatch.setitem(mapping, name, value)
monkeypatch.delitem(obj, name, raising=True)
monkeypatch.setenv(name, value, prepend=False)
monkeypatch.delenv(name, value, raising=True)
monkeypatch.syspath_prepend(path)
monkeypatch.chdir(path)
All modifications will be undone after the requesting
test function or fixture has finished. The ``raising``
Expand Down
4 changes: 2 additions & 2 deletions doc/en/cache.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ If you then run it with ``--lf``::
$ pytest --lf
======= test session starts ========
platform linux -- Python 3.x.y, pytest-3.x.y, py-1.x.y, pluggy-0.x.y
run-last-failure: rerun last 2 failures
rootdir: $REGENDOC_TMPDIR, inifile:
collected 50 items
run-last-failure: rerun previous 2 failures
test_50.py FF
Expand Down Expand Up @@ -119,9 +119,9 @@ of ``FF`` and dots)::
$ pytest --ff
======= test session starts ========
platform linux -- Python 3.x.y, pytest-3.x.y, py-1.x.y, pluggy-0.x.y
run-last-failure: rerun last 2 failures first
rootdir: $REGENDOC_TMPDIR, inifile:
collected 50 items
run-last-failure: rerun previous 2 failures first
test_50.py FF................................................
Expand Down
2 changes: 1 addition & 1 deletion doc/en/example/markers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ then you will see two tests skipped and two executed tests as expected::
test_plat.py s.s.
======= short test summary info ========
SKIP [2] $REGENDOC_TMPDIR/conftest.py:12: cannot run on platform linux
SKIP [2] $REGENDOC_TMPDIR/conftest.py:13: cannot run on platform linux
======= 2 passed, 2 skipped in 0.12 seconds ========

Expand Down
4 changes: 2 additions & 2 deletions doc/en/example/parametrize.rst
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ Running it results in some skips if we don't have all the python interpreters in
. $ pytest -rs -q multipython.py
sssssssssssssss.........sss.........sss.........
======= short test summary info ========
SKIP [21] $REGENDOC_TMPDIR/CWD/multipython.py:23: 'python2.6' not found
SKIP [21] $REGENDOC_TMPDIR/CWD/multipython.py:24: 'python2.6' not found
27 passed, 21 skipped in 0.12 seconds

Indirect parametrization of optional implementations/imports
Expand Down Expand Up @@ -467,7 +467,7 @@ If you run this with reporting for skips enabled::
test_module.py .s
======= short test summary info ========
SKIP [1] $REGENDOC_TMPDIR/conftest.py:10: could not import 'opt2'
SKIP [1] $REGENDOC_TMPDIR/conftest.py:11: could not import 'opt2'
======= 1 passed, 1 skipped in 0.12 seconds ========

Expand Down
Loading

0 comments on commit 40254b6

Please sign in to comment.