From ec02f694ef2b1ece4fbaf57989ad727d8f4ebcb2 Mon Sep 17 00:00:00 2001 From: aselus-hub Date: Wed, 9 Dec 2015 11:32:19 -0800 Subject: [PATCH 01/16] Update python.py updated dictionary itteration to create a list for generation, so that tests can be added in the generator functions under python3. This works fine as-is in python2 because python 2 already creates a list, whereas python3 returns an itterator. Forcing a list format for the return fixes python3 to work the same way as python2 --- _pytest/python.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_pytest/python.py b/_pytest/python.py index 4ff3f4fc0..926f503be 100644 --- a/_pytest/python.py +++ b/_pytest/python.py @@ -451,7 +451,7 @@ class PyCollector(PyobjMixin, pytest.Collector): seen = {} l = [] for dic in dicts: - for name, obj in dic.items(): + for name, obj in list(dic.items()): if name in seen: continue seen[name] = True From dfaeefd69207b4e8b0e5d2e24b037a3d49a3e4e5 Mon Sep 17 00:00:00 2001 From: aselus-hub Date: Thu, 10 Dec 2015 14:45:36 -0800 Subject: [PATCH 02/16] added test to verify injection. --- testing/python/collect.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/testing/python/collect.py b/testing/python/collect.py index 1a85faf9c..0dd9ef1da 100644 --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -1076,3 +1076,19 @@ def test_dont_collect_non_function_callable(testdir): 'WC2 *', '*1 passed, 1 pytest-warnings in *', ]) + + +def test_class_injection_does_not_break_collection(testdir): + testdir.makeconftest(""" + from test_inject import TestClass + def pytest_generate_tests(metafunc): + TestClass.changed_var = {} + """) + testdir.makepyfile(test_inject=''' + class TestClass(object): + def test_injection(self): + """Test being parametrized.""" + pass + ''') + result = testdir.runpytest() + assert "RuntimeError: dictionary changed size during iteration" not in result.stdout.str() \ No newline at end of file From af54e097590d3d24550e6dd0bb62fa0113aa6339 Mon Sep 17 00:00:00 2001 From: aselus-hub Date: Thu, 10 Dec 2015 14:46:51 -0800 Subject: [PATCH 03/16] nit: fixed newline --- testing/python/collect.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/python/collect.py b/testing/python/collect.py index 0dd9ef1da..eb0a399bd 100644 --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -1091,4 +1091,4 @@ def test_class_injection_does_not_break_collection(testdir): pass ''') result = testdir.runpytest() - assert "RuntimeError: dictionary changed size during iteration" not in result.stdout.str() \ No newline at end of file + assert "RuntimeError: dictionary changed size during iteration" not in result.stdout.str() From 34db8aed341418af52de742f83503bf0f948c6c5 Mon Sep 17 00:00:00 2001 From: aselus-hub Date: Thu, 10 Dec 2015 15:02:57 -0800 Subject: [PATCH 04/16] added verification that test actually passed. --- testing/python/collect.py | 1 + 1 file changed, 1 insertion(+) diff --git a/testing/python/collect.py b/testing/python/collect.py index eb0a399bd..34bf5d810 100644 --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -1092,3 +1092,4 @@ def test_class_injection_does_not_break_collection(testdir): ''') result = testdir.runpytest() assert "RuntimeError: dictionary changed size during iteration" not in result.stdout.str() + result.stdout.fnmatch_lines(['*== 1 passed in *']) From 74f7efd2a34e9dbbbccaeb21f93bd51fa234ab68 Mon Sep 17 00:00:00 2001 From: aselus-hub Date: Thu, 10 Dec 2015 15:10:55 -0800 Subject: [PATCH 05/16] added line comparison that is pytest-sugar agnostic. --- testing/python/collect.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/python/collect.py b/testing/python/collect.py index 34bf5d810..89b902fc9 100644 --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -1092,4 +1092,4 @@ def test_class_injection_does_not_break_collection(testdir): ''') result = testdir.runpytest() assert "RuntimeError: dictionary changed size during iteration" not in result.stdout.str() - result.stdout.fnmatch_lines(['*== 1 passed in *']) + result.stdout.fnmatch_lines(['*1 passed*']) From 2b2240e90496dbe04a59eb913125b08efa840c08 Mon Sep 17 00:00:00 2001 From: aselus-hub Date: Thu, 10 Dec 2015 15:15:09 -0800 Subject: [PATCH 06/16] added myself to authors, added changelog entry. --- AUTHORS | 1 + CHANGELOG | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/AUTHORS b/AUTHORS index 641e20441..7206125c8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -71,3 +71,4 @@ Eric Hunsberger Simon Gomizelj Russel Winder Ben Webb +Alexei Kozlenok diff --git a/CHANGELOG b/CHANGELOG index d1ac12a52..5232e7204 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,10 @@ 2.8.5.dev0 ---------- +- fix #1243: fixed injection to class breaking collection step, by replacing + generated interation with list traversal, added test to verify in python/collect.py + Thanks Ronny Pfannschmidt and Nicoddemus for the PR + - fix #1074: precompute junitxml chunks instead of storing the whole tree in objects Thanks Bruno Oliveira for the report and Ronny Pfannschmidt for the PR From 1216a27b44a2eeaae8f02dd2675596581d57246c Mon Sep 17 00:00:00 2001 From: aselus-hub Date: Thu, 10 Dec 2015 15:19:08 -0800 Subject: [PATCH 07/16] added docstrign to inection collection test. --- testing/python/collect.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/testing/python/collect.py b/testing/python/collect.py index 89b902fc9..bebc13318 100644 --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -1079,6 +1079,12 @@ def test_dont_collect_non_function_callable(testdir): def test_class_injection_does_not_break_collection(testdir): + """Tests whether injection during collection time will terminate testing. + + In this case the error should not occur if the TestClass itself + is modified during collection time, and the original method list + is still used for collection. + """ testdir.makeconftest(""" from test_inject import TestClass def pytest_generate_tests(metafunc): From ad05cbe6da758331026797c3886146448c3e5e1c Mon Sep 17 00:00:00 2001 From: aselus-hub Date: Thu, 10 Dec 2015 15:39:31 -0800 Subject: [PATCH 08/16] fixed meesage. --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 5232e7204..499660fa6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,7 +3,7 @@ - fix #1243: fixed injection to class breaking collection step, by replacing generated interation with list traversal, added test to verify in python/collect.py - Thanks Ronny Pfannschmidt and Nicoddemus for the PR + PR by Alexei Kozlenok, Thanks Ronny Pfannschmidt and Nicoddemus for the review and help. - fix #1074: precompute junitxml chunks instead of storing the whole tree in objects Thanks Bruno Oliveira for the report and Ronny Pfannschmidt for the PR From 1d60f61ba8ce07496a186c3453341306e3b36fe3 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Thu, 10 Dec 2015 23:48:17 -0200 Subject: [PATCH 09/16] Optimize appveyor build - AppVeyor does not run matrix builds in parallel, so creating a matrix with the intent to speed up the build will actually result in longer build times, as each matrix will execute in a brand new VM. - tox does not detect 64 bit installations in AppVeyor, it always installs interpreters from C:\PythonX.Y, so there's no point to have 64bit builds - No need for the auxiliary script "install.ps1" because all python versions we are interested in are already pre-installed in AppVeyor --- appveyor.yml | 105 ++++--------------------- appveyor/install.ps1 | 180 ------------------------------------------- 2 files changed, 13 insertions(+), 272 deletions(-) delete mode 100644 appveyor/install.ps1 diff --git a/appveyor.yml b/appveyor.yml index 63495ec9c..73948b5b6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,98 +1,19 @@ -environment: - matrix: - - # Pre-installed Python versions, which Appveyor may upgrade to - # a later point release. - - - PYTHON: "C:\\Python27" - PYTHON_VERSION: "2.7.x" # currently 2.7.9 - PYTHON_ARCH: "32" - TESTENV: "py27" - - - PYTHON: "C:\\Python27-x64" - PYTHON_VERSION: "2.7.x" # currently 2.7.9 - PYTHON_ARCH: "64" - TESTENV: "py27" - - - PYTHON: "C:\\Python33" - PYTHON_VERSION: "3.3.x" # currently 3.3.5 - PYTHON_ARCH: "32" - TESTENV: "py33" - - - PYTHON: "C:\\Python33-x64" - PYTHON_VERSION: "3.3.x" # currently 3.3.5 - PYTHON_ARCH: "64" - TESTENV: "py33" - - - PYTHON: "C:\\Python34" - PYTHON_VERSION: "3.4.x" # currently 3.4.3 - PYTHON_ARCH: "32" - TESTENV: "py34" - - - PYTHON: "C:\\Python34-x64" - PYTHON_VERSION: "3.4.x" # currently 3.4.3 - PYTHON_ARCH: "64" - TESTENV: "py34" - - - PYTHON: "C:\\Python35" - PYTHON_VERSION: "3.5.x" # currently 3.5.0 - PYTHON_ARCH: "32" - TESTENV: "py35" - - - PYTHON: "C:\\Python35-x64" - PYTHON_VERSION: "3.5.x" # currently 3.5.0 - PYTHON_ARCH: "64" - TESTENV: "py35" - - # Also test a Python version not pre-installed - # See: https://github.com/ogrisel/python-appveyor-demo/issues/10 - - - PYTHON: "C:\\Python266" - PYTHON_VERSION: "2.6.6" - PYTHON_ARCH: "32" - TESTENV: "py26" - - # xdist testing - - - PYTHON: "C:\\Python27" - PYTHON_VERSION: "2.7.x" # currently 2.7.9 - PYTHON_ARCH: "32" - TESTENV: "py27-xdist" - - - PYTHON: "C:\\Python35" - PYTHON_VERSION: "3.5.x" # currently 3.5.0 - PYTHON_ARCH: "32" - TESTENV: "py35-xdist" - - install: - - ECHO "Filesystem root:" - - ps: "ls \"C:/\"" + - echo Installed Pythons + - dir c:\Python* - - ECHO "Installed SDKs:" - - ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\"" - - # Install Python (from the official .msi of http://python.org) and pip when - # not already installed. - - ps: if (-not(Test-Path($env:PYTHON))) { & appveyor\install.ps1 } - - # Prepend newly installed Python to the PATH of this build (this cannot be - # done from inside the powershell script as it would require to restart - # the parent CMD process). - - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - - # Check that we have the expected version and architecture for Python - - "python --version" - - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" - - # Install the build dependencies of the project. If some dependencies contain - # compiled extensions and are not provided as pre-built wheel packages, - # pip will build them from source using the MSVC compiler matching the - # target Python version and architecture - - C:\Python27\python -m pip install tox + - C:\Python35\python -m pip install tox build: false # Not a C# project, build stuff at the test step instead. test_script: - # Build the compiled extension and run the project tests - - C:\Python27\python -m tox -e %TESTENV% + - 'set TESTENVS= + flakes, + py26, + py27, + py33, + py34, + py27-xdist, + py35-xdist + ' + - C:\Python35\python -m tox -e "%TESTENVS%" diff --git a/appveyor/install.ps1 b/appveyor/install.ps1 deleted file mode 100644 index 0f165d8bd..000000000 --- a/appveyor/install.ps1 +++ /dev/null @@ -1,180 +0,0 @@ -# Sample script to install Python and pip under Windows -# Authors: Olivier Grisel, Jonathan Helmus and Kyle Kastner -# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ - -$MINICONDA_URL = "http://repo.continuum.io/miniconda/" -$BASE_URL = "https://www.python.org/ftp/python/" -$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py" -$GET_PIP_PATH = "C:\get-pip.py" - - -function DownloadPython ($python_version, $platform_suffix) { - $webclient = New-Object System.Net.WebClient - $filename = "python-" + $python_version + $platform_suffix + ".msi" - $url = $BASE_URL + $python_version + "/" + $filename - - $basedir = $pwd.Path + "\" - $filepath = $basedir + $filename - if (Test-Path $filename) { - Write-Host "Reusing" $filepath - return $filepath - } - - # Download and retry up to 3 times in case of network transient errors. - Write-Host "Downloading" $filename "from" $url - $retry_attempts = 2 - for($i=0; $i -lt $retry_attempts; $i++){ - try { - $webclient.DownloadFile($url, $filepath) - break - } - Catch [Exception]{ - Start-Sleep 1 - } - } - if (Test-Path $filepath) { - Write-Host "File saved at" $filepath - } else { - # Retry once to get the error message if any at the last try - $webclient.DownloadFile($url, $filepath) - } - return $filepath -} - - -function InstallPython ($python_version, $architecture, $python_home) { - Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home - if (Test-Path $python_home) { - Write-Host $python_home "already exists, skipping." - return $false - } - if ($architecture -eq "32") { - $platform_suffix = "" - } else { - $platform_suffix = ".amd64" - } - $msipath = DownloadPython $python_version $platform_suffix - Write-Host "Installing" $msipath "to" $python_home - $install_log = $python_home + ".log" - $install_args = "/qn /log $install_log /i $msipath TARGETDIR=$python_home" - $uninstall_args = "/qn /x $msipath" - RunCommand "msiexec.exe" $install_args - if (-not(Test-Path $python_home)) { - Write-Host "Python seems to be installed else-where, reinstalling." - RunCommand "msiexec.exe" $uninstall_args - RunCommand "msiexec.exe" $install_args - } - if (Test-Path $python_home) { - Write-Host "Python $python_version ($architecture) installation complete" - } else { - Write-Host "Failed to install Python in $python_home" - Get-Content -Path $install_log - Exit 1 - } -} - -function RunCommand ($command, $command_args) { - Write-Host $command $command_args - Start-Process -FilePath $command -ArgumentList $command_args -Wait -Passthru -} - - -function InstallPip ($python_home) { - $pip_path = $python_home + "\Scripts\pip.exe" - $python_path = $python_home + "\python.exe" - if (-not(Test-Path $pip_path)) { - Write-Host "Installing pip..." - $webclient = New-Object System.Net.WebClient - $webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH) - Write-Host "Executing:" $python_path $GET_PIP_PATH - Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru - } else { - Write-Host "pip already installed." - } -} - - -function DownloadMiniconda ($python_version, $platform_suffix) { - $webclient = New-Object System.Net.WebClient - if ($python_version -eq "3.4") { - $filename = "Miniconda3-3.5.5-Windows-" + $platform_suffix + ".exe" - } else { - $filename = "Miniconda-3.5.5-Windows-" + $platform_suffix + ".exe" - } - $url = $MINICONDA_URL + $filename - - $basedir = $pwd.Path + "\" - $filepath = $basedir + $filename - if (Test-Path $filename) { - Write-Host "Reusing" $filepath - return $filepath - } - - # Download and retry up to 3 times in case of network transient errors. - Write-Host "Downloading" $filename "from" $url - $retry_attempts = 2 - for($i=0; $i -lt $retry_attempts; $i++){ - try { - $webclient.DownloadFile($url, $filepath) - break - } - Catch [Exception]{ - Start-Sleep 1 - } - } - if (Test-Path $filepath) { - Write-Host "File saved at" $filepath - } else { - # Retry once to get the error message if any at the last try - $webclient.DownloadFile($url, $filepath) - } - return $filepath -} - - -function InstallMiniconda ($python_version, $architecture, $python_home) { - Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home - if (Test-Path $python_home) { - Write-Host $python_home "already exists, skipping." - return $false - } - if ($architecture -eq "32") { - $platform_suffix = "x86" - } else { - $platform_suffix = "x86_64" - } - $filepath = DownloadMiniconda $python_version $platform_suffix - Write-Host "Installing" $filepath "to" $python_home - $install_log = $python_home + ".log" - $args = "/S /D=$python_home" - Write-Host $filepath $args - Start-Process -FilePath $filepath -ArgumentList $args -Wait -Passthru - if (Test-Path $python_home) { - Write-Host "Python $python_version ($architecture) installation complete" - } else { - Write-Host "Failed to install Python in $python_home" - Get-Content -Path $install_log - Exit 1 - } -} - - -function InstallMinicondaPip ($python_home) { - $pip_path = $python_home + "\Scripts\pip.exe" - $conda_path = $python_home + "\Scripts\conda.exe" - if (-not(Test-Path $pip_path)) { - Write-Host "Installing pip..." - $args = "install --yes pip" - Write-Host $conda_path $args - Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru - } else { - Write-Host "pip already installed." - } -} - -function main () { - InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON - InstallPip $env:PYTHON -} - -main From 946bb08da56805fa9e23cc822f2f730623910745 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Fri, 11 Dec 2015 00:36:26 -0200 Subject: [PATCH 10/16] Tyding up the CHANGELOG --- CHANGELOG | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 499660fa6..b0aedb9d0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,9 +1,8 @@ 2.8.5.dev0 ---------- -- fix #1243: fixed injection to class breaking collection step, by replacing - generated interation with list traversal, added test to verify in python/collect.py - PR by Alexei Kozlenok, Thanks Ronny Pfannschmidt and Nicoddemus for the review and help. +- fix #1243: fixed issue where class attributes injected during collection could break pytest. + PR by Alexei Kozlenok, thanks Ronny Pfannschmidt and Bruno Oliveira for the review and help. - fix #1074: precompute junitxml chunks instead of storing the whole tree in objects Thanks Bruno Oliveira for the report and Ronny Pfannschmidt for the PR From a1241634250194e7cfe645615946e4f1e3a4d142 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Fri, 11 Dec 2015 19:20:07 -0200 Subject: [PATCH 11/16] Prepare for 2.8.5: bump version, CHANGELOG, announce --- CHANGELOG | 4 ++-- _pytest/__init__.py | 2 +- doc/en/announce/index.rst | 1 + doc/en/announce/release-2.8.5.rst | 39 +++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 doc/en/announce/release-2.8.5.rst diff --git a/CHANGELOG b/CHANGELOG index b0aedb9d0..98f11661b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,5 @@ -2.8.5.dev0 ----------- +2.8.5 +----- - fix #1243: fixed issue where class attributes injected during collection could break pytest. PR by Alexei Kozlenok, thanks Ronny Pfannschmidt and Bruno Oliveira for the review and help. diff --git a/_pytest/__init__.py b/_pytest/__init__.py index 608589106..3427a3de7 100644 --- a/_pytest/__init__.py +++ b/_pytest/__init__.py @@ -1,2 +1,2 @@ # -__version__ = '2.8.5.dev0' +__version__ = '2.8.5' diff --git a/doc/en/announce/index.rst b/doc/en/announce/index.rst index 90da44dee..c0c6fbeca 100644 --- a/doc/en/announce/index.rst +++ b/doc/en/announce/index.rst @@ -6,6 +6,7 @@ Release announcements :maxdepth: 2 + release-2.8.5 release-2.8.4 release-2.8.3 release-2.8.2 diff --git a/doc/en/announce/release-2.8.5.rst b/doc/en/announce/release-2.8.5.rst new file mode 100644 index 000000000..7409022a1 --- /dev/null +++ b/doc/en/announce/release-2.8.5.rst @@ -0,0 +1,39 @@ +pytest-2.8.5 +============ + +pytest is a mature Python testing tool with more than a 1100 tests +against itself, passing on many different interpreters and platforms. +This release is supposed to be drop-in compatible to 2.8.4. + +See below for the changes and see docs at: + + http://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 Gaynor + aselus-hub + Bruno Oliveira + Ronny Pfannschmidt + + +Happy testing, +The py.test Development Team + + +2.8.5 (compared to 2.8.4) +------------------------- + +- fix #1243: fixed issue where class attributes injected during collection could break pytest. + PR by Alexei Kozlenok, thanks Ronny Pfannschmidt and Bruno Oliveira for the review and help. + +- fix #1074: precompute junitxml chunks instead of storing the whole tree in objects + Thanks Bruno Oliveira for the report and Ronny Pfannschmidt for the PR + +- fix #1238: fix ``pytest.deprecated_call()`` receiving multiple arguments + (Regression introduced in 2.8.4). Thanks Alex Gaynor for the report and + Bruno Oliveira for the PR. From 7d150c20cf7c0479a3da1794c48b39372c4fa265 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sat, 12 Dec 2015 01:00:31 +0100 Subject: [PATCH 12/16] Regenerate 2.8.5 docs. --- doc/en/assert.rst | 4 ++-- doc/en/cache.rst | 6 +++--- doc/en/capture.rst | 2 +- doc/en/doctest.rst | 2 +- doc/en/example/markers.rst | 28 ++++++++++++++-------------- doc/en/example/nonpython.rst | 12 ++++++------ doc/en/example/parametrize.rst | 19 ++++++++----------- doc/en/example/pythoncollection.rst | 6 +++--- doc/en/example/reportingdemo.rst | 2 +- doc/en/example/simple.rst | 26 +++++++++++++------------- doc/en/fixture.rst | 10 +++++----- doc/en/getting-started.rst | 4 ++-- doc/en/parametrize.rst | 4 ++-- doc/en/skipping.rst | 2 +- doc/en/tmpdir.rst | 2 +- doc/en/unittest.rst | 2 +- 16 files changed, 64 insertions(+), 67 deletions(-) diff --git a/doc/en/assert.rst b/doc/en/assert.rst index dcf579c21..795f52586 100644 --- a/doc/en/assert.rst +++ b/doc/en/assert.rst @@ -26,7 +26,7 @@ you will see the return value of the function call:: $ py.test test_assert1.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items @@ -146,7 +146,7 @@ if you run this module:: $ py.test test_assert2.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items diff --git a/doc/en/cache.rst b/doc/en/cache.rst index e032c5e90..3c3b5eb22 100644 --- a/doc/en/cache.rst +++ b/doc/en/cache.rst @@ -80,7 +80,7 @@ If you then run it with ``--lf``:: $ py.test --lf ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 run-last-failure: rerun last 2 failures rootdir: $REGENDOC_TMPDIR, inifile: collected 50 items @@ -121,7 +121,7 @@ of ``FF`` and dots):: $ py.test --ff ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 run-last-failure: rerun last 2 failures first rootdir: $REGENDOC_TMPDIR, inifile: collected 50 items @@ -226,7 +226,7 @@ You can always peek at the content of the cache using the $ py.test --cache-clear ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items diff --git a/doc/en/capture.rst b/doc/en/capture.rst index 23380fb73..3a246f5a5 100644 --- a/doc/en/capture.rst +++ b/doc/en/capture.rst @@ -64,7 +64,7 @@ of the failing function and hide the other one:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 2 items diff --git a/doc/en/doctest.rst b/doc/en/doctest.rst index 47a027cb0..0befa6702 100644 --- a/doc/en/doctest.rst +++ b/doc/en/doctest.rst @@ -46,7 +46,7 @@ then you can just invoke ``py.test`` without command line options:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: pytest.ini collected 1 items diff --git a/doc/en/example/markers.rst b/doc/en/example/markers.rst index 2d5985b2f..aaca80fb2 100644 --- a/doc/en/example/markers.rst +++ b/doc/en/example/markers.rst @@ -31,7 +31,7 @@ You can then restrict a test run to only run tests marked with ``webtest``:: $ py.test -v -m webtest ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 4 items @@ -45,7 +45,7 @@ Or the inverse, running all tests except the webtest ones:: $ py.test -v -m "not webtest" ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 4 items @@ -66,7 +66,7 @@ tests based on their module, class, method, or function name:: $ py.test -v test_server.py::TestClass::test_method ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 5 items @@ -79,7 +79,7 @@ You can also select on the class:: $ py.test -v test_server.py::TestClass ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 4 items @@ -92,7 +92,7 @@ Or select multiple nodes:: $ py.test -v test_server.py::TestClass test_server.py::test_send_http ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 8 items @@ -130,7 +130,7 @@ select tests based on their names:: $ py.test -v -k http # running with the above defined example module ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 4 items @@ -144,7 +144,7 @@ And you can also run all tests except the ones that match the keyword:: $ py.test -k "not send_http" -v ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 4 items @@ -160,7 +160,7 @@ Or to select "http" and "quick" tests:: $ py.test -k "http or quick" -v ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 4 items @@ -350,7 +350,7 @@ the test needs:: $ py.test -E stage2 ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items @@ -362,7 +362,7 @@ and here is one that specifies exactly the environment needed:: $ py.test -E stage1 ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items @@ -481,7 +481,7 @@ then you will see two test skipped and two executed tests as expected:: $ py.test -rs # this option reports skip reasons ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 4 items @@ -495,7 +495,7 @@ Note that if you specify a platform via the marker-command line option like this $ py.test -m linux2 ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 4 items @@ -547,7 +547,7 @@ We can now use the ``-m option`` to select one set:: $ py.test -m interface --tb=short ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 4 items @@ -569,7 +569,7 @@ or to select both "event" and "interface" tests:: $ py.test -m "interface or event" --tb=short ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 4 items diff --git a/doc/en/example/nonpython.rst b/doc/en/example/nonpython.rst index 679f026e5..d2b15ab69 100644 --- a/doc/en/example/nonpython.rst +++ b/doc/en/example/nonpython.rst @@ -27,11 +27,11 @@ now execute the test specification:: nonpython $ py.test test_simple.yml ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR/nonpython, inifile: collected 2 items - test_simple.yml .F + test_simple.yml F. ======= FAILURES ======== _______ usecase: hello ________ @@ -59,13 +59,13 @@ consulted when reporting in ``verbose`` mode:: nonpython $ py.test -v ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR/nonpython, inifile: collecting ... collected 2 items - test_simple.yml::ok PASSED test_simple.yml::hello FAILED + test_simple.yml::ok PASSED ======= FAILURES ======== _______ usecase: hello ________ @@ -81,11 +81,11 @@ interesting to just look at the collection tree:: nonpython $ py.test --collect-only ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR/nonpython, inifile: collected 2 items - + ======= no tests ran in 0.12 seconds ======== diff --git a/doc/en/example/parametrize.rst b/doc/en/example/parametrize.rst index f69ac6dd8..67eb316f4 100644 --- a/doc/en/example/parametrize.rst +++ b/doc/en/example/parametrize.rst @@ -130,7 +130,7 @@ objects, they are still using the default pytest representation:: $ py.test test_time.py --collect-only ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 6 items @@ -181,7 +181,7 @@ this is a fully self-contained example which you can run with:: $ py.test test_scenarios.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 4 items @@ -194,7 +194,7 @@ If you just collect tests you'll also nicely see 'advanced' and 'basic' as varia $ py.test --collect-only test_scenarios.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 4 items @@ -259,7 +259,7 @@ Let's first see how it looks like at collection time:: $ py.test test_backends.py --collect-only ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 2 items @@ -320,7 +320,7 @@ The result of this test will be successful:: $ py.test test_indirect_list.py --collect-only ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items @@ -397,11 +397,8 @@ is to be run with different sets of arguments for its three arguments: Running it results in some skips if we don't have all the python interpreters installed and otherwise runs all combinations (5 interpreters times 5 interpreters times 3 objects to serialize/deserialize):: . $ py.test -rs -q multipython.py - ssssssssssss...ssssssssssss - ======= short test summary info ======== - SKIP [12] $REGENDOC_TMPDIR/CWD/multipython.py:22: 'python2.6' not found - SKIP [12] $REGENDOC_TMPDIR/CWD/multipython.py:22: 'python3.3' not found - 3 passed, 24 skipped in 0.12 seconds + ........................... + 27 passed in 0.12 seconds Indirect parametrization of optional implementations/imports -------------------------------------------------------------------- @@ -448,7 +445,7 @@ If you run this with reporting for skips enabled:: $ py.test -rs test_module.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 2 items diff --git a/doc/en/example/pythoncollection.rst b/doc/en/example/pythoncollection.rst index 386c3cc2c..e7166e6e9 100644 --- a/doc/en/example/pythoncollection.rst +++ b/doc/en/example/pythoncollection.rst @@ -82,7 +82,7 @@ then the test collection looks like this:: $ py.test --collect-only ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: setup.cfg collected 2 items @@ -128,7 +128,7 @@ You can always peek at the collection tree without running tests like this:: . $ py.test --collect-only pythoncollection.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: pytest.ini collected 3 items @@ -182,7 +182,7 @@ interpreters and will leave out the setup.py file:: $ py.test --collect-only ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: pytest.ini collected 0 items diff --git a/doc/en/example/reportingdemo.rst b/doc/en/example/reportingdemo.rst index 9fa220a1d..824fd7598 100644 --- a/doc/en/example/reportingdemo.rst +++ b/doc/en/example/reportingdemo.rst @@ -13,7 +13,7 @@ get on the terminal - we are working on that): assertion $ py.test failure_demo.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR/assertion, inifile: collected 42 items diff --git a/doc/en/example/simple.rst b/doc/en/example/simple.rst index 51008781f..627fb19ab 100644 --- a/doc/en/example/simple.rst +++ b/doc/en/example/simple.rst @@ -108,7 +108,7 @@ directory with the above conftest.py:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 0 items @@ -156,7 +156,7 @@ and when running it will see a skipped "slow" test:: $ py.test -rs # "-rs" means report details on the little 's' ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 2 items @@ -170,7 +170,7 @@ Or run it including the ``slow`` marked test:: $ py.test --runslow ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 2 items @@ -262,7 +262,7 @@ which will add the string to the test header accordingly:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 project deps: mylib-1.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 0 items @@ -286,7 +286,7 @@ which will add info only when run with "--v":: $ py.test -v ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache info1: did you know that ... did you? @@ -299,7 +299,7 @@ and nothing when run plainly:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 0 items @@ -332,7 +332,7 @@ Now we can profile which test functions execute the slowest:: $ py.test --durations=3 ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 3 items @@ -341,7 +341,7 @@ Now we can profile which test functions execute the slowest:: ======= slowest 3 test durations ======== 0.20s call test_some_are_slow.py::test_funcslow2 0.10s call test_some_are_slow.py::test_funcslow1 - 0.00s teardown test_some_are_slow.py::test_funcslow2 + 0.00s setup test_some_are_slow.py::test_funcslow2 ======= 3 passed in 0.12 seconds ======== incremental testing - test steps @@ -394,7 +394,7 @@ If we run this:: $ py.test -rx ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 4 items @@ -465,7 +465,7 @@ We can run this:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 7 items @@ -479,7 +479,7 @@ We can run this:: file $REGENDOC_TMPDIR/b/test_error.py, line 1 def test_root(db): # no db here, will error out fixture 'db' not found - available fixtures: tmpdir, record_xml_property, cache, capsys, monkeypatch, recwarn, pytestconfig, tmpdir_factory, capfd + available fixtures: capsys, capfd, pytestconfig, tmpdir_factory, monkeypatch, record_xml_property, cache, tmpdir, recwarn use 'py.test --fixtures [testpath]' for help on them. $REGENDOC_TMPDIR/b/test_error.py:1 @@ -569,7 +569,7 @@ and run them:: $ py.test test_module.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 2 items @@ -660,7 +660,7 @@ and run it:: $ py.test -s test_module.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 3 items diff --git a/doc/en/fixture.rst b/doc/en/fixture.rst index 39fb18668..54d2eda18 100644 --- a/doc/en/fixture.rst +++ b/doc/en/fixture.rst @@ -75,7 +75,7 @@ marked ``smtp`` fixture function. Running the test looks like this:: $ py.test test_smtpsimple.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items @@ -193,7 +193,7 @@ inspect what is going on and can now run the tests:: $ py.test test_module.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 2 items @@ -480,7 +480,7 @@ Running the above tests results in the following test IDs being used:: $ py.test --collect-only ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 10 items @@ -531,7 +531,7 @@ Here we declare an ``app`` fixture which receives the previously defined $ py.test -v test_appsetup.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 2 items @@ -597,7 +597,7 @@ Let's run the tests in verbose mode and with looking at the print-output:: $ py.test -v -s test_module.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4 cachedir: .cache rootdir: $REGENDOC_TMPDIR, inifile: collecting ... collected 8 items diff --git a/doc/en/getting-started.rst b/doc/en/getting-started.rst index 14ff4684f..f91c38de9 100644 --- a/doc/en/getting-started.rst +++ b/doc/en/getting-started.rst @@ -27,7 +27,7 @@ Installation options:: To check your installation has installed the correct version:: $ py.test --version - This is pytest version 2.8.4, imported from $PYTHON_PREFIX/lib/python3.4/site-packages/pytest.py + This is pytest version 2.8.5, imported from $PYTHON_PREFIX/lib/python3.4/site-packages/pytest.py If you get an error checkout :ref:`installation issues`. @@ -49,7 +49,7 @@ That's it. You can execute the test function now:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items diff --git a/doc/en/parametrize.rst b/doc/en/parametrize.rst index d3df49b0d..c769d6f53 100644 --- a/doc/en/parametrize.rst +++ b/doc/en/parametrize.rst @@ -55,7 +55,7 @@ them in turn:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 3 items @@ -103,7 +103,7 @@ Let's run this:: $ py.test ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 3 items diff --git a/doc/en/skipping.rst b/doc/en/skipping.rst index f1f641cca..cb7730a19 100644 --- a/doc/en/skipping.rst +++ b/doc/en/skipping.rst @@ -165,7 +165,7 @@ Running it with the report-on-xfail option gives this output:: example $ py.test -rx xfail_demo.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR/example, inifile: collected 7 items diff --git a/doc/en/tmpdir.rst b/doc/en/tmpdir.rst index 076c8642b..db776932b 100644 --- a/doc/en/tmpdir.rst +++ b/doc/en/tmpdir.rst @@ -29,7 +29,7 @@ Running this would result in a passed test except for the last $ py.test test_tmpdir.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 1 items diff --git a/doc/en/unittest.rst b/doc/en/unittest.rst index 9940b13b6..f06e97c7f 100644 --- a/doc/en/unittest.rst +++ b/doc/en/unittest.rst @@ -88,7 +88,7 @@ the ``self.db`` values in the traceback:: $ py.test test_unittest_db.py ======= test session starts ======== - platform linux -- Python 3.4.3, pytest-2.8.4, py-1.4.30, pluggy-0.3.1 + platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 rootdir: $REGENDOC_TMPDIR, inifile: collected 2 items From 4263b8b407ad9b98354b182f52d35df4195029bd Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Fri, 11 Dec 2015 22:34:16 -0200 Subject: [PATCH 13/16] Restore regen-doc result --- doc/en/example/parametrize.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/doc/en/example/parametrize.rst b/doc/en/example/parametrize.rst index 67eb316f4..0a9afe58e 100644 --- a/doc/en/example/parametrize.rst +++ b/doc/en/example/parametrize.rst @@ -397,8 +397,11 @@ is to be run with different sets of arguments for its three arguments: Running it results in some skips if we don't have all the python interpreters installed and otherwise runs all combinations (5 interpreters times 5 interpreters times 3 objects to serialize/deserialize):: . $ py.test -rs -q multipython.py - ........................... - 27 passed in 0.12 seconds + ssssssssssss...ssssssssssss + ======= short test summary info ======== + SKIP [12] $REGENDOC_TMPDIR/CWD/multipython.py:22: 'python2.6' not found + SKIP [12] $REGENDOC_TMPDIR/CWD/multipython.py:22: 'python3.3' not found + 3 passed, 24 skipped in 0.12 seconds Indirect parametrization of optional implementations/imports -------------------------------------------------------------------- From 855b115daba16bfe9c9da29198c567921c405b93 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Fri, 11 Dec 2015 22:35:44 -0200 Subject: [PATCH 14/16] Remove plugins_index generation from HOWTORELEASE --- HOWTORELEASE.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/HOWTORELEASE.rst b/HOWTORELEASE.rst index ddc89eb42..fd104722a 100644 --- a/HOWTORELEASE.rst +++ b/HOWTORELEASE.rst @@ -41,8 +41,7 @@ Note: this assumes you have already registered on pypi. 8. Build the docs, you need a virtualenv with py and sphinx installed:: - cd doc/en - python plugins_index/plugins_index.py + cd doc/en make html Commit any changes before tagging the release. From e87facfb22eb8a9ded9c970a600bbfed9627d876 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Fri, 11 Dec 2015 23:07:25 -0200 Subject: [PATCH 15/16] Bump master to 2.8.6.dev1 --- _pytest/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_pytest/__init__.py b/_pytest/__init__.py index 3427a3de7..d9ec9eb3e 100644 --- a/_pytest/__init__.py +++ b/_pytest/__init__.py @@ -1,2 +1,2 @@ # -__version__ = '2.8.5' +__version__ = '2.8.6.dev1' From 7eea6b3b023ac20727cd71ef2d2dfd0b87a4398c Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Fri, 11 Dec 2015 23:11:26 -0200 Subject: [PATCH 16/16] Add 2.8.6.dev1 to CHANGELOG --- CHANGELOG | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 98f11661b..01ad82386 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +2.8.6.dev1 +---------- + + 2.8.5 -----