Skip to content

Merge master into features #3914

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

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
6991a16
Fix bad console output when using console_output_style=classic
nicoddemus Aug 26, 2018
47bb53f
Cache now obeys -q when showing summary for --lf and --ff
nicoddemus Aug 26, 2018
1e8e17c
Improve the coverage of testing/code
asottile Aug 26, 2018
10544c4
Merge pull request #3886 from nicoddemus/ff-quiet
asottile Aug 27, 2018
9620b16
Merge pull request #3887 from asottile/improve_test_code
nicoddemus Aug 27, 2018
ab5af52
Fix macOS specific code that uses capturemanager.
jirikuncar Aug 27, 2018
f786335
travis: run tests on macOS
jirikuncar Aug 27, 2018
cdc72bf
Travis: add baseline stage
blueyed Aug 27, 2018
2a059b1
Merge pull request #3885 from nicoddemus/bad-output-classic
nicoddemus Aug 27, 2018
29e114b
Try to fix test in MacOS-X
nicoddemus Aug 27, 2018
b2f7e02
Reorganize osx environments to avoid repetition as suggested in review
nicoddemus Aug 27, 2018
a260e58
Drop 3.6 from OS-X to reduce build time
nicoddemus Aug 27, 2018
32575f9
set TOXENV in test-macos template otherwise it will inherit "coveralls"
nicoddemus Aug 27, 2018
82a7ca9
Avoid possible infinite recursion when writing pyc files in assert re…
nicoddemus Aug 27, 2018
b77e533
Merge pull request #3893 from jirikuncar/3892-macos
nicoddemus Aug 28, 2018
16f452e
Merge pull request #3894 from blueyed/baseline
blueyed Aug 28, 2018
10c1c7c
Merge pull request #3895 from nicoddemus/issue-3506
nicoddemus Aug 28, 2018
b0a32da
Use https; save a redirect
stevepiercy Aug 28, 2018
2e09089
Use https
stevepiercy Aug 28, 2018
bde3d1a
Use https; save a redirect
stevepiercy Aug 28, 2018
f19cfbb
Fix 404 to a somewhat better historical note
stevepiercy Aug 28, 2018
00e0b43
Use https, save a redirect
stevepiercy Aug 28, 2018
e040fd2
Use https, save a redirect
stevepiercy Aug 28, 2018
67c3c28
Use https, save a redirect
stevepiercy Aug 28, 2018
28c3ef1
Use https, save a redirect, fix hostname
stevepiercy Aug 28, 2018
103d980
Use https, save a redirect
stevepiercy Aug 28, 2018
8ef21f5
Fix 404
stevepiercy Aug 28, 2018
eab5020
Fix hostname
stevepiercy Aug 28, 2018
37a6568
add changelog entry
stevepiercy Aug 28, 2018
bf47033
Fix linting
nicoddemus Aug 29, 2018
4345efa
Merge pull request #3902 from stevepiercy/fix-pytest.org-links
nicoddemus Aug 29, 2018
aea962d
Preparing release version 3.7.4
asottile Aug 29, 2018
d76fb83
Merge pull request #3906 from asottile/release-3.7.4
asottile Aug 29, 2018
f730291
Travis: report coverage with all builds
blueyed Sep 26, 2017
417516c
squash! Travis: report coverage with all builds
blueyed Aug 29, 2018
3ca7069
Skip the "test" stage when making a release
nicoddemus Aug 29, 2018
77cad3c
Update release procedure [ci skip]
asottile Aug 29, 2018
f1bd462
Merge pull request #3909 from asottile/update_release
asottile Aug 29, 2018
338953a
Merge pull request #3908 from nicoddemus/optimize-release
nicoddemus Aug 29, 2018
8c96eea
doc fix: raises accepts tuples instead of lists (fixes #3907)
hoefling Aug 29, 2018
f0e852b
Merge pull request #2800 from blueyed/coverage
nicoddemus Aug 30, 2018
9bd4b0a
Merge pull request #3910 from hoefling/docfix
nicoddemus Aug 30, 2018
11e591e
Merge remote-tracking branch 'upstream/master' into merge-master-into…
nicoddemus Aug 30, 2018
2256f2f
Remove test which is no longer required and improve test_lf_and_ff_pr…
nicoddemus Aug 31, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
[run]
omit =
# standlonetemplate is read dynamically and tested by test_genscript
*standalonetemplate.py
source = _pytest,testing
parallel = 1
65 changes: 52 additions & 13 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
sudo: false
language: python
stages:
- linting
- test
- baseline
- name: test
if: repo = pytest-dev/pytest AND tag IS NOT present
- name: deploy
if: repo = pytest-dev/pytest AND tag IS present
python:
Expand All @@ -11,13 +12,8 @@ install:
- pip install --upgrade --pre tox
env:
matrix:
# coveralls is not listed in tox's envlist, but should run in travis
- TOXENV=coveralls
# note: please use "tox --listenvs" to populate the build matrix below
# please remove the linting env in all cases
- TOXENV=py27
- TOXENV=py34
- TOXENV=py36
- TOXENV=py27-pexpect
- TOXENV=py27-xdist
- TOXENV=py27-trial
Expand All @@ -30,20 +26,42 @@ env:
- TOXENV=py36-pluggymaster
- TOXENV=py27-nobyte
- TOXENV=doctesting
- TOXENV=docs
- TOXENV=docs PYTEST_NO_COVERAGE=1

jobs:
include:
- env: TOXENV=pypy
# Coverage tracking is slow with pypy, skip it.
- env: TOXENV=pypy PYTEST_NO_COVERAGE=1
python: 'pypy-5.4'
- env: TOXENV=py35
python: '3.5'
- env: TOXENV=py36-freeze
- env: TOXENV=py36-freeze PYTEST_NO_COVERAGE=1
python: '3.6'
- env: TOXENV=py37
python: '3.7'
sudo: required
dist: xenial
- &test-macos
language: generic
os: osx
osx_image: xcode9.4
sudo: required
install:
- python -m pip install --pre tox
env: TOXENV=py27
- <<: *test-macos
env: TOXENV=py37
before_install:
- brew update
- brew upgrade python
- brew unlink python
- brew link python

- stage: baseline
env: TOXENV=py27
- env: TOXENV=py34
- env: TOXENV=py36
- env: TOXENV=linting PYTEST_NO_COVERAGE=1

- stage: deploy
python: '3.6'
Expand All @@ -60,12 +78,33 @@ jobs:
on:
tags: true
repo: pytest-dev/pytest
- stage: linting
python: '3.6'
env: TOXENV=linting

before_script:
- |
if [[ "$PYTEST_NO_COVERAGE" != 1 ]]; then
export _PYTEST_TOX_COVERAGE_RUN="env COVERAGE_FILE=$PWD/.coverage COVERAGE_PROCESS_START=$PWD/.coveragerc coverage run --source {envsitepackagesdir}/_pytest/,$PWD/testing -m"
export _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
fi

script: tox --recreate

after_success:
- |
if [[ "$PYTEST_NO_COVERAGE" != 1 ]]; then
set -e
pip install codecov
coverage combine
coverage xml
coverage report -m
codecov --required -X gcov pycov search -f coverage.xml --flags ${TOXENV//-/ }

# Coveralls does not support merged reports.
if [[ "$TOXENV" = py37 ]]; then
pip install coveralls
coveralls
fi
fi

notifications:
irc:
channels:
Expand Down
25 changes: 25 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,31 @@ with advance notice in the **Deprecations** section of releases.

.. towncrier release notes start

pytest 3.7.4 (2018-08-29)
=========================

Bug Fixes
---------

- `#3506 <https://github.com/pytest-dev/pytest/issues/3506>`_: Fix possible infinite recursion when writing ``.pyc`` files.


- `#3853 <https://github.com/pytest-dev/pytest/issues/3853>`_: Cache plugin now obeys the ``-q`` flag when ``--last-failed`` and ``--failed-first`` flags are used.


- `#3883 <https://github.com/pytest-dev/pytest/issues/3883>`_: Fix bad console output when using ``console_output_style=classic``.


- `#3888 <https://github.com/pytest-dev/pytest/issues/3888>`_: Fix macOS specific code using ``capturemanager`` plugin in doctests.



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

- `#3902 <https://github.com/pytest-dev/pytest/issues/3902>`_: Fix pytest.org links


pytest 3.7.3 (2018-08-26)
=========================

Expand Down
3 changes: 3 additions & 0 deletions HOWTORELEASE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,13 @@ taking a lot of time to make a new one.

#. After all tests pass and the PR has been approved, publish to PyPI by pushing the tag::

git tag <VERSION>
git push [email protected]:pytest-dev/pytest.git <VERSION>

Wait for the deploy to complete, then make sure it is `available on PyPI <https://pypi.org/project/pytest>`_.

#. Merge the PR into ``master``.

#. Send an email announcement with the contents from::

doc/en/announce/release-<VERSION>.rst
Expand Down
20 changes: 10 additions & 10 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.. image:: http://docs.pytest.org/en/latest/_static/pytest1.png
:target: http://docs.pytest.org
.. image:: https://docs.pytest.org/en/latest/_static/pytest1.png
:target: https://docs.pytest.org/en/latest/
:align: center
:alt: pytest

Expand Down Expand Up @@ -66,23 +66,23 @@ To execute it::
========================== 1 failed in 0.04 seconds ===========================


Due to ``pytest``'s detailed assertion introspection, only plain ``assert`` statements are used. See `getting-started <http://docs.pytest.org/en/latest/getting-started.html#our-first-test-run>`_ for more examples.
Due to ``pytest``'s detailed assertion introspection, only plain ``assert`` statements are used. See `getting-started <https://docs.pytest.org/en/latest/getting-started.html#our-first-test-run>`_ for more examples.


Features
--------

- Detailed info on failing `assert statements <http://docs.pytest.org/en/latest/assert.html>`_ (no need to remember ``self.assert*`` names);
- Detailed info on failing `assert statements <https://docs.pytest.org/en/latest/assert.html>`_ (no need to remember ``self.assert*`` names);

- `Auto-discovery
<http://docs.pytest.org/en/latest/goodpractices.html#python-test-discovery>`_
<https://docs.pytest.org/en/latest/goodpractices.html#python-test-discovery>`_
of test modules and functions;

- `Modular fixtures <http://docs.pytest.org/en/latest/fixture.html>`_ for
- `Modular fixtures <https://docs.pytest.org/en/latest/fixture.html>`_ for
managing small or parametrized long-lived test resources;

- Can run `unittest <http://docs.pytest.org/en/latest/unittest.html>`_ (or trial),
`nose <http://docs.pytest.org/en/latest/nose.html>`_ test suites out of the box;
- Can run `unittest <https://docs.pytest.org/en/latest/unittest.html>`_ (or trial),
`nose <https://docs.pytest.org/en/latest/nose.html>`_ test suites out of the box;

- Python 2.7, Python 3.4+, PyPy 2.3, Jython 2.5 (untested);

Expand All @@ -92,7 +92,7 @@ Features
Documentation
-------------

For full documentation, including installation, tutorials and PDF documents, please see http://docs.pytest.org.
For full documentation, including installation, tutorials and PDF documents, please see https://docs.pytest.org/en/latest/.


Bugs/Requests
Expand All @@ -104,7 +104,7 @@ Please use the `GitHub issue tracker <https://github.com/pytest-dev/pytest/issue
Changelog
---------

Consult the `Changelog <http://docs.pytest.org/en/latest/changelog.html>`__ page for fixes and enhancements of each version.
Consult the `Changelog <https://docs.pytest.org/en/latest/changelog.html>`__ page for fixes and enhancements of each version.


License
Expand Down
1 change: 1 addition & 0 deletions changelog/3907.doc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Corrected type of the exceptions collection passed to ``xfail``: ``raises`` argument accepts a ``tuple`` instead of ``list``.
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.7.4
release-3.7.3
release-3.7.2
release-3.7.1
Expand Down
22 changes: 22 additions & 0 deletions doc/en/announce/release-3.7.4.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
pytest-3.7.4
=======================================

pytest 3.7.4 has just been released to PyPI.

This is a bug-fix release, being a drop-in replacement. To upgrade::

pip install --upgrade pytest

The full changelog is available at https://docs.pytest.org/en/latest/changelog.html.

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

* Anthony Sottile
* Bruno Oliveira
* Daniel Hahler
* Jiri Kuncar
* Steve Piercy


Happy testing,
The pytest Development Team
20 changes: 10 additions & 10 deletions doc/en/example/markers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -200,17 +200,17 @@ You can ask which markers exist for your test suite - the list includes our just
$ pytest --markers
@pytest.mark.webtest: mark a test as a webtest.

@pytest.mark.filterwarnings(warning): add a warning filter to the given test. see http://pytest.org/latest/warnings.html#pytest-mark-filterwarnings
@pytest.mark.filterwarnings(warning): add a warning filter to the given test. see https://docs.pytest.org/en/latest/warnings.html#pytest-mark-filterwarnings

@pytest.mark.skip(reason=None): skip the given test function with an optional reason. Example: skip(reason="no way of currently testing this") skips the test.

@pytest.mark.skipif(condition): skip the given test function if eval(condition) results in a True value. Evaluation happens within the module global context. Example: skipif('sys.platform == "win32"') skips the test if we are on the win32 platform. see http://pytest.org/latest/skipping.html
@pytest.mark.skipif(condition): skip the given test function if eval(condition) results in a True value. Evaluation happens within the module global context. Example: skipif('sys.platform == "win32"') skips the test if we are on the win32 platform. see https://docs.pytest.org/en/latest/skipping.html

@pytest.mark.xfail(condition, reason=None, run=True, raises=None, strict=False): mark the test function as an expected failure if eval(condition) has a True value. Optionally specify a reason for better reporting and run=False if you don't even want to execute the test function. If only specific exception(s) are expected, you can list them in raises, and if the test fails in other ways, it will be reported as a true failure. See http://pytest.org/latest/skipping.html
@pytest.mark.xfail(condition, reason=None, run=True, raises=None, strict=False): mark the test function as an expected failure if eval(condition) has a True value. Optionally specify a reason for better reporting and run=False if you don't even want to execute the test function. If only specific exception(s) are expected, you can list them in raises, and if the test fails in other ways, it will be reported as a true failure. See https://docs.pytest.org/en/latest/skipping.html

@pytest.mark.parametrize(argnames, argvalues): call a test function multiple times passing in different arguments in turn. argvalues generally needs to be a list of values if argnames specifies only one name or a list of tuples of values if argnames specifies multiple names. Example: @parametrize('arg1', [1,2]) would lead to two calls of the decorated test function, one with arg1=1 and another with arg1=2.see http://pytest.org/latest/parametrize.html for more info and examples.
@pytest.mark.parametrize(argnames, argvalues): call a test function multiple times passing in different arguments in turn. argvalues generally needs to be a list of values if argnames specifies only one name or a list of tuples of values if argnames specifies multiple names. Example: @parametrize('arg1', [1,2]) would lead to two calls of the decorated test function, one with arg1=1 and another with arg1=2.see https://docs.pytest.org/en/latest/parametrize.html for more info and examples.

@pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see http://pytest.org/latest/fixture.html#usefixtures
@pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see https://docs.pytest.org/en/latest/fixture.html#usefixtures

@pytest.mark.tryfirst: mark a hook implementation function such that the plugin machinery will try to call it first/as early as possible.

Expand Down Expand Up @@ -376,17 +376,17 @@ The ``--markers`` option always gives you a list of available markers::
$ pytest --markers
@pytest.mark.env(name): mark test to run only on named environment

@pytest.mark.filterwarnings(warning): add a warning filter to the given test. see http://pytest.org/latest/warnings.html#pytest-mark-filterwarnings
@pytest.mark.filterwarnings(warning): add a warning filter to the given test. see https://docs.pytest.org/en/latest/warnings.html#pytest-mark-filterwarnings

@pytest.mark.skip(reason=None): skip the given test function with an optional reason. Example: skip(reason="no way of currently testing this") skips the test.

@pytest.mark.skipif(condition): skip the given test function if eval(condition) results in a True value. Evaluation happens within the module global context. Example: skipif('sys.platform == "win32"') skips the test if we are on the win32 platform. see http://pytest.org/latest/skipping.html
@pytest.mark.skipif(condition): skip the given test function if eval(condition) results in a True value. Evaluation happens within the module global context. Example: skipif('sys.platform == "win32"') skips the test if we are on the win32 platform. see https://docs.pytest.org/en/latest/skipping.html

@pytest.mark.xfail(condition, reason=None, run=True, raises=None, strict=False): mark the test function as an expected failure if eval(condition) has a True value. Optionally specify a reason for better reporting and run=False if you don't even want to execute the test function. If only specific exception(s) are expected, you can list them in raises, and if the test fails in other ways, it will be reported as a true failure. See http://pytest.org/latest/skipping.html
@pytest.mark.xfail(condition, reason=None, run=True, raises=None, strict=False): mark the test function as an expected failure if eval(condition) has a True value. Optionally specify a reason for better reporting and run=False if you don't even want to execute the test function. If only specific exception(s) are expected, you can list them in raises, and if the test fails in other ways, it will be reported as a true failure. See https://docs.pytest.org/en/latest/skipping.html

@pytest.mark.parametrize(argnames, argvalues): call a test function multiple times passing in different arguments in turn. argvalues generally needs to be a list of values if argnames specifies only one name or a list of tuples of values if argnames specifies multiple names. Example: @parametrize('arg1', [1,2]) would lead to two calls of the decorated test function, one with arg1=1 and another with arg1=2.see http://pytest.org/latest/parametrize.html for more info and examples.
@pytest.mark.parametrize(argnames, argvalues): call a test function multiple times passing in different arguments in turn. argvalues generally needs to be a list of values if argnames specifies only one name or a list of tuples of values if argnames specifies multiple names. Example: @parametrize('arg1', [1,2]) would lead to two calls of the decorated test function, one with arg1=1 and another with arg1=2.see https://docs.pytest.org/en/latest/parametrize.html for more info and examples.

@pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see http://pytest.org/latest/fixture.html#usefixtures
@pytest.mark.usefixtures(fixturename1, fixturename2, ...): mark tests as needing all of the specified fixtures. see https://docs.pytest.org/en/latest/fixture.html#usefixtures

@pytest.mark.tryfirst: mark a hook implementation function such that the plugin machinery will try to call it first/as early as possible.

Expand Down
2 changes: 1 addition & 1 deletion doc/en/example/reportingdemo.rst
Original file line number Diff line number Diff line change
Expand Up @@ -617,5 +617,5 @@ get on the terminal - we are working on that)::
Metafunc.addcall is deprecated and scheduled to be removed in pytest 4.0.
Please use Metafunc.parametrize instead.

-- Docs: http://doc.pytest.org/en/latest/warnings.html
-- Docs: https://docs.pytest.org/en/latest/warnings.html
================== 42 failed, 1 warnings in 0.12 seconds ===================
2 changes: 1 addition & 1 deletion doc/en/funcarg_compare.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pytest-2.3: reasoning for fixture/funcarg evolution

**Target audience**: Reading this document requires basic knowledge of
python testing, xUnit setup methods and the (previous) basic pytest
funcarg mechanism, see http://pytest.org/2.2.4/funcargs.html
funcarg mechanism, see https://docs.pytest.org/en/latest/historical-notes.html#funcargs-and-pytest-funcarg.
If you are new to pytest, then you can simply ignore this
section and read the other sections.

Expand Down
2 changes: 1 addition & 1 deletion doc/en/skipping.rst
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ on a particular platform::
~~~~~~~~~~~~~~~~~~~~

If you want to be more specific as to why the test is failing, you can specify
a single exception, or a list of exceptions, in the ``raises`` argument.
a single exception, or a tuple of exceptions, in the ``raises`` argument.

.. code-block:: python

Expand Down
2 changes: 1 addition & 1 deletion doc/en/warnings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Running pytest now produces this output::
$REGENDOC_TMPDIR/test_show_warnings.py:4: UserWarning: api v1, should use functions from v2
warnings.warn(UserWarning("api v1, should use functions from v2"))

-- Docs: http://doc.pytest.org/en/latest/warnings.html
-- Docs: https://docs.pytest.org/en/latest/warnings.html
=================== 1 passed, 1 warnings in 0.12 seconds ===================

Pytest by default catches all warnings except for ``DeprecationWarning`` and ``PendingDeprecationWarning``.
Expand Down
2 changes: 1 addition & 1 deletion doc/en/writing_plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ additionally it is possible to copy examples for a example folder before running
$REGENDOC_TMPDIR/test_example.py:4: PytestExerimentalApiWarning: testdir.copy_example is an experimental api that may change over time
testdir.copy_example("test_example.py")

-- Docs: http://doc.pytest.org/en/latest/warnings.html
-- Docs: https://docs.pytest.org/en/latest/warnings.html
=================== 2 passed, 1 warnings in 0.12 seconds ===================

For more information about the result object that ``runpytest()`` returns, and
Expand Down
4 changes: 2 additions & 2 deletions scripts/release.minor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ 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
https://docs.pytest.org/en/latest/changelog.html

For complete documentation, please visit:

http://docs.pytest.org
https://docs.pytest.org/en/latest/

As usual, you can upgrade from pypi via:

Expand Down
2 changes: 1 addition & 1 deletion scripts/release.patch.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This is a bug-fix release, being a drop-in replacement. To upgrade::

pip install --upgrade pytest

The full changelog is available at http://doc.pytest.org/en/latest/changelog.html.
The full changelog is available at https://docs.pytest.org/en/latest/changelog.html.

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

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def main():
description="pytest: simple powerful testing with Python",
long_description=long_description,
use_scm_version={"write_to": "src/_pytest/_version.py"},
url="http://pytest.org",
url="https://docs.pytest.org/en/latest/",
project_urls={
"Source": "https://github.com/pytest-dev/pytest",
"Tracker": "https://github.com/pytest-dev/pytest/issues",
Expand Down
Loading