[Python-modules-commits] [pytest] 01/09: Import pytest_2.9.2.orig.tar.gz

Sebastian Ramacher sramacher at moszumanska.debian.org
Thu Jun 2 20:03:53 UTC 2016


This is an automated email from the git hooks/post-receive script.

sramacher pushed a commit to branch master
in repository pytest.

commit 25454da31503990848b614982e8b2d43ec96beac
Author: Sebastian Ramacher <sramacher at debian.org>
Date:   Thu Jun 2 21:28:55 2016 +0200

    Import pytest_2.9.2.orig.tar.gz
---
 AUTHORS                             |   4 ++
 CHANGELOG.rst                       |  67 ++++++++++++++++++-----
 PKG-INFO                            |   2 +-
 _pytest/__init__.py                 |   2 +-
 _pytest/_code/code.py               |  22 +++++---
 _pytest/cacheprovider.py            |   0
 _pytest/config.py                   |   2 +-
 _pytest/genscript.py                |   0
 _pytest/junitxml.py                 |   2 +-
 _pytest/mark.py                     |   2 +-
 _pytest/python.py                   |  34 ++++++------
 _pytest/skipping.py                 |  23 +++++---
 _pytest/standalonetemplate.py       |   0
 doc/en/_getdoctarget.py             |   0
 doc/en/announce/index.rst           |   3 +-
 doc/en/announce/release-2.9.0.rst   |   4 +-
 doc/en/announce/release-2.9.2.rst   |  73 +++++++++++++++++++++++++
 doc/en/assert.rst                   |   6 +--
 doc/en/bash-completion.rst          |   2 +-
 doc/en/cache.rst                    |   6 +--
 doc/en/capture.rst                  |   2 +-
 doc/en/doctest.rst                  |   2 +-
 doc/en/example/markers.rst          |  36 +++++++------
 doc/en/example/nonpython.rst        |  12 ++---
 doc/en/example/parametrize.rst      |  19 +++----
 doc/en/example/pythoncollection.rst |  52 ++++++++++--------
 doc/en/example/reportingdemo.rst    |  10 ++--
 doc/en/example/simple.rst           |  30 +++++------
 doc/en/fixture.rst                  | 103 ++++++++++++++++++++++++------------
 doc/en/getting-started.rst          |   4 +-
 doc/en/goodpractices.rst            |   4 +-
 doc/en/links.inc                    |   4 +-
 doc/en/nose.rst                     |   2 +-
 doc/en/parametrize.rst              |   6 +--
 doc/en/plugins.rst                  |   2 +-
 doc/en/projects.rst                 |   2 +-
 doc/en/skipping.rst                 |   2 +-
 doc/en/test/attic.rst               |   2 +-
 doc/en/test/plugin/helpconfig.rst   |   2 +-
 doc/en/test/plugin/terminal.rst     |   2 +-
 doc/en/tmpdir.rst                   |   2 +-
 doc/en/unittest.rst                 |   2 +-
 doc/en/usage.rst                    |  12 ++++-
 doc/en/writing_plugins.rst          |  15 ++++--
 extra/get_issues.py                 |  70 +++++++++++++-----------
 pytest.egg-info/PKG-INFO            |   2 +-
 pytest.egg-info/SOURCES.txt         |   1 +
 pytest.egg-info/entry_points.txt    |   2 +-
 pytest.egg-info/requires.txt        |   6 +--
 setup.py                            |   2 +-
 testing/acceptance_test.py          |   5 ++
 testing/code/test_excinfo.py        |  18 ++++++-
 testing/python/fixture.py           |  32 +++++++++++
 testing/python/metafunc.py          |   7 +++
 testing/test_cache.py               |   0
 testing/test_config.py              |  12 ++++-
 testing/test_junitxml.py            |   8 +--
 testing/test_skipping.py            |  28 +++++++++-
 tox.ini                             |   7 +--
 59 files changed, 546 insertions(+), 237 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index dfc0a54..f4a21b2 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -49,6 +49,7 @@ Jaap Broekhuizen
 Jan Balster
 Janne Vanhala
 Jason R. Coombs
+John Towler
 Joshua Bronson
 Jurko Gospodnetić
 Katarzyna Jachim
@@ -61,6 +62,7 @@ Marc Schlaich
 Mark Abramowitz
 Markus Unterwaditzer
 Martijn Faassen
+Martin Prusse
 Matt Bachmann
 Michael Aquilina
 Michael Birtwell
@@ -69,6 +71,7 @@ Nicolas Delaby
 Pieter Mulder
 Piotr Banaszkiewicz
 Punyashloka Biswal
+Quentin Pradet
 Ralf Schmitt
 Raphael Pierzina
 Ronny Pfannschmidt
@@ -85,3 +88,4 @@ Russel Winder
 Ben Webb
 Alexei Kozlenok
 Cal Leeming
+Feng Ma
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index f18f646..edc2341 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,3 +1,42 @@
+2.9.2
+=====
+
+**Bug Fixes**
+
+* fix `#510`_: skip tests where one parameterize dimension was empty
+  thanks Alex Stapleton for the Report and `@RonnyPfannschmidt`_ for the PR
+
+* Fix Xfail does not work with condition keyword argument.
+  Thanks `@astraw38`_ for reporting the issue (`#1496`_) and `@tomviner`_
+  for PR the (`#1524`_).
+
+* Fix win32 path issue when puttinging custom config file with absolute path
+  in ``pytest.main("-c your_absolute_path")``.
+
+* Fix maximum recursion depth detection when raised error class is not aware
+  of unicode/encoded bytes.
+  Thanks `@prusse-martin`_ for the PR (`#1506`_).
+
+* Fix ``pytest.mark.skip`` mark when used in strict mode.
+  Thanks `@pquentin`_ for the PR and `@RonnyPfannschmidt`_ for
+  showing how to fix the bug.
+
+* Minor improvements and fixes to the documentation.
+  Thanks `@omarkohl`_ for the PR.
+
+* Fix ``--fixtures`` to show all fixture definitions as opposed to just
+  one per fixture name.
+  Thanks to `@hackebrot`_ for the PR.
+
+.. _#510: https://github.com/pytest-dev/pytest/issues/510
+.. _#1506: https://github.com/pytest-dev/pytest/pull/1506
+.. _#1496: https://github.com/pytest-dev/pytest/issue/1496
+.. _#1524: https://github.com/pytest-dev/pytest/issue/1524
+
+.. _ at prusse-martin: https://github.com/prusse-martin
+.. _ at astraw38: https://github.com/astraw38
+
+
 2.9.1
 =====
 
@@ -51,7 +90,7 @@
   ``xfail_strict`` ini option that can be used to configure it project-wise.
   Thanks `@rabbbit`_ for the request and `@nicoddemus`_ for the PR (`#1355`_).
 
-* ``Parser.addini`` now supports options of type ``bool``. 
+* ``Parser.addini`` now supports options of type ``bool``.
   Thanks `@nicoddemus`_ for the PR.
 
 * New ``ALLOW_BYTES`` doctest option. This strips ``b`` prefixes from byte strings
@@ -62,26 +101,26 @@
   Fixes `#1366`_.
   Thanks to `@hpk42`_ for the report and `@RonnyPfannschmidt`_ for the PR.
 
-* Catch ``IndexError`` exceptions when getting exception source location. 
+* Catch ``IndexError`` exceptions when getting exception source location.
   Fixes a pytest internal error for dynamically generated code (fixtures and tests)
   where source lines are fake by intention.
 
 **Changes**
 
-* **Important**: `py.code <http://pylib.readthedocs.org/en/latest/code.html>`_ has been
-  merged into the ``pytest`` repository as ``pytest._code``. This decision 
-  was made because ``py.code`` had very few uses outside ``pytest`` and the 
-  fact that it was in a different repository made it difficult to fix bugs on 
+* **Important**: `py.code <https://pylib.readthedocs.io/en/latest/code.html>`_ has been
+  merged into the ``pytest`` repository as ``pytest._code``. This decision
+  was made because ``py.code`` had very few uses outside ``pytest`` and the
+  fact that it was in a different repository made it difficult to fix bugs on
   its code in a timely manner. The team hopes with this to be able to better
   refactor out and improve that code.
   This change shouldn't affect users, but it is useful to let users aware
   if they encounter any strange behavior.
-  
-  Keep in mind that the code for ``pytest._code`` is **private** and 
+
+  Keep in mind that the code for ``pytest._code`` is **private** and
   **experimental**, so you definitely should not import it explicitly!
 
-  Please note that the original ``py.code`` is still available in 
-  `pylib <http://pylib.readthedocs.org>`_.
+  Please note that the original ``py.code`` is still available in
+  `pylib <https://pylib.readthedocs.io>`_.
 
 * ``pytest_enter_pdb`` now optionally receives the pytest config object.
   Thanks `@nicoddemus`_ for the PR.
@@ -149,6 +188,8 @@
 .. _ at RonnyPfannschmidt: https://github.com/RonnyPfannschmidt
 .. _ at rabbbit: https://github.com/rabbbit
 .. _ at hackebrot: https://github.com/hackebrot
+.. _ at omarkohl: https://github.com/omarkohl
+.. _ at pquentin: https://github.com/pquentin
 
 2.8.7
 =====
@@ -172,7 +213,7 @@
 - fix #1292: monkeypatch calls (setattr, setenv, etc.) are now O(1).
   Thanks David R. MacIver for the report and Bruno Oliveira for the PR.
 
-- fix #1223: captured stdout and stderr are now properly displayed before 
+- fix #1223: captured stdout and stderr are now properly displayed before
   entering pdb when ``--pdb`` is used instead of being thrown away.
   Thanks Cal Leeming for the PR.
 
@@ -247,8 +288,8 @@
   Thanks Gabriel Reis for the PR.
 
 - add more talks to the documentation
-- extend documentation on the --ignore cli option 
-- use pytest-runner for setuptools integration 
+- extend documentation on the --ignore cli option
+- use pytest-runner for setuptools integration
 - minor fixes for interaction with OS X El Capitan
   system integrity protection (thanks Florian)
 
diff --git a/PKG-INFO b/PKG-INFO
index 7171715..7b801be 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pytest
-Version: 2.9.1
+Version: 2.9.2
 Summary: pytest: simple powerful testing with Python
 Home-page: http://pytest.org
 Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others
diff --git a/_pytest/__init__.py b/_pytest/__init__.py
index 723fb9e..23dac6d 100644
--- a/_pytest/__init__.py
+++ b/_pytest/__init__.py
@@ -1,2 +1,2 @@
 #
-__version__ = '2.9.1'
+__version__ = '2.9.2'
diff --git a/_pytest/_code/code.py b/_pytest/_code/code.py
index bc68aac..8995cc1 100644
--- a/_pytest/_code/code.py
+++ b/_pytest/_code/code.py
@@ -294,11 +294,11 @@ class Traceback(list):
     def filter(self, fn=lambda x: not x.ishidden()):
         """ return a Traceback instance with certain items removed
 
-            fn is a function that gets a single argument, a TracebackItem
+            fn is a function that gets a single argument, a TracebackEntry
             instance, and should return True when the item should be added
             to the Traceback, False when not
 
-            by default this removes all the TracebackItems which are hidden
+            by default this removes all the TracebackEntries which are hidden
             (see ishidden() above)
         """
         return Traceback(filter(fn, self))
@@ -314,7 +314,7 @@ class Traceback(list):
         return self[-1]
 
     def recursionindex(self):
-        """ return the index of the frame/TracebackItem where recursion
+        """ return the index of the frame/TracebackEntry where recursion
             originates if appropriate, None if no recursion occurred
         """
         cache = {}
@@ -579,9 +579,8 @@ class FormattedExcinfo(object):
         if self.tbfilter:
             traceback = traceback.filter()
         recursionindex = None
-        if excinfo.errisinstance(RuntimeError):
-            if "maximum recursion depth exceeded" in str(excinfo.value):
-                recursionindex = traceback.recursionindex()
+        if is_recursion_error(excinfo):
+            recursionindex = traceback.recursionindex()
         last = traceback[-1]
         entries = []
         extraline = None
@@ -793,3 +792,14 @@ def getrawcode(obj, trycall=True):
                     return x
         return obj
 
+if sys.version_info[:2] >= (3, 5):  # RecursionError introduced in 3.5
+    def is_recursion_error(excinfo):
+        return excinfo.errisinstance(RecursionError)  # noqa
+else:
+    def is_recursion_error(excinfo):
+        if not excinfo.errisinstance(RuntimeError):
+            return False
+        try:
+            return "maximum recursion depth exceeded" in str(excinfo.value)
+        except UnicodeError:
+            return False
diff --git a/_pytest/cacheprovider.py b/_pytest/cacheprovider.py
old mode 100644
new mode 100755
diff --git a/_pytest/config.py b/_pytest/config.py
index fb7b177..9a308df 100644
--- a/_pytest/config.py
+++ b/_pytest/config.py
@@ -104,7 +104,7 @@ def _prepareconfig(args=None, plugins=None):
     elif not isinstance(args, (tuple, list)):
         if not isinstance(args, str):
             raise ValueError("not a string or argument list: %r" % (args,))
-        args = shlex.split(args)
+        args = shlex.split(args, posix=sys.platform != "win32")
     config = get_config()
     pluginmanager = config.pluginmanager
     try:
diff --git a/_pytest/genscript.py b/_pytest/genscript.py
old mode 100644
new mode 100755
diff --git a/_pytest/junitxml.py b/_pytest/junitxml.py
index 660d718..f4de134 100644
--- a/_pytest/junitxml.py
+++ b/_pytest/junitxml.py
@@ -369,7 +369,7 @@ class LogXML(object):
         suite_stop_time = time.time()
         suite_time_delta = suite_stop_time - self.suite_start_time
 
-        numtests = self.stats['passed'] + self.stats['failure']
+        numtests = self.stats['passed'] + self.stats['failure'] + self.stats['skipped']
 
         logfile.write('<?xml version="1.0" encoding="utf-8"?>')
         logfile.write(Junit.testsuite(
diff --git a/_pytest/mark.py b/_pytest/mark.py
index 1a76354..d8b60de 100644
--- a/_pytest/mark.py
+++ b/_pytest/mark.py
@@ -58,7 +58,7 @@ pytest_cmdline_main.tryfirst = True
 
 
 def pytest_collection_modifyitems(items, config):
-    keywordexpr = config.option.keyword
+    keywordexpr = config.option.keyword.lstrip()
     matchexpr = config.option.markexpr
     if not keywordexpr and not matchexpr:
         return
diff --git a/_pytest/python.py b/_pytest/python.py
index 3580eae..21d78ae 100644
--- a/_pytest/python.py
+++ b/_pytest/python.py
@@ -871,8 +871,6 @@ class CallSpec2(object):
             getattr(self, valtype_for_arg)[arg] = val
             self.indices[arg] = param_index
             self._arg2scopenum[arg] = scopenum
-            if val is _notexists:
-                self._emptyparamspecified = True
         self._idlist.append(id)
         self.keywords.update(keywords)
 
@@ -990,6 +988,15 @@ class Metafunc(FuncargnamesCompatAttr):
                 argvalues = [(val,) for val in argvalues]
         if not argvalues:
             argvalues = [(_notexists,) * len(argnames)]
+            # we passed a empty list to parameterize, skip that test
+            #
+            fs, lineno = getfslineno(self.function)
+            newmark = pytest.mark.skip(
+                reason="got empty parameter set %r, function %s at %s:%d" % (
+                    argnames, self.function.__name__, fs, lineno))
+            newmarks = newkeywords.setdefault(0, {})
+            newmarks[newmark.markname] = newmark
+
 
         if scope is None:
             scope = "function"
@@ -1161,12 +1168,12 @@ def _showfixtures_main(config, session):
         assert fixturedefs is not None
         if not fixturedefs:
             continue
-        fixturedef = fixturedefs[-1]
-        loc = getlocation(fixturedef.func, curdir)
-        available.append((len(fixturedef.baseid),
-                          fixturedef.func.__module__,
-                          curdir.bestrelpath(loc),
-                          fixturedef.argname, fixturedef))
+        for fixturedef in fixturedefs:
+            loc = getlocation(fixturedef.func, curdir)
+            available.append((len(fixturedef.baseid),
+                              fixturedef.func.__module__,
+                              curdir.bestrelpath(loc),
+                              fixturedef.argname, fixturedef))
 
     available.sort()
     currentmodule = None
@@ -1408,15 +1415,6 @@ class Function(FunctionMixin, pytest.Item, FuncargnamesCompatAttr):
         self.ihook.pytest_pyfunc_call(pyfuncitem=self)
 
     def setup(self):
-        # check if parametrization happend with an empty list
-        try:
-            self.callspec._emptyparamspecified
-        except AttributeError:
-            pass
-        else:
-            fs, lineno = self._getfslineno()
-            pytest.skip("got empty parameter set, function %s at %s:%d" %(
-                self.function.__name__, fs, lineno))
         super(Function, self).setup()
         fillfixtures(self)
 
@@ -1451,7 +1449,7 @@ class FixtureRequest(FuncargnamesCompatAttr):
         self._pyfuncitem = pyfuncitem
         #: fixture for which this request is being performed
         self.fixturename = None
-        #: Scope string, one of "function", "cls", "module", "session"
+        #: Scope string, one of "function", "class", "module", "session"
         self.scope = "function"
         self._funcargs  = {}
         self._fixturedefs = {}
diff --git a/_pytest/skipping.py b/_pytest/skipping.py
index 69157f4..18e038d 100644
--- a/_pytest/skipping.py
+++ b/_pytest/skipping.py
@@ -31,6 +31,11 @@ def pytest_configure(config):
         setattr(pytest, "xfail", nop)
 
     config.addinivalue_line("markers",
+        "skip(reason=None): skip the given test function with an optional reason. "
+        "Example: skip(reason=\"no way of currently testing this\") skips the "
+        "test."
+    )
+    config.addinivalue_line("markers",
         "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\"') "
@@ -38,13 +43,13 @@ def pytest_configure(config):
         "http://pytest.org/latest/skipping.html"
     )
     config.addinivalue_line("markers",
-        "xfail(condition, reason=None, run=True, raises=None): mark the 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"
+        "xfail(condition, reason=None, run=True, raises=None, strict=False): "
+        "mark the 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"
     )
 
 
@@ -115,7 +120,7 @@ class MarkEvaluator:
             return self.result
         if self.holder:
             d = self._getglobals()
-            if self.holder.args:
+            if self.holder.args or 'condition' in self.holder.kwargs:
                 self.result = False
                 # "holder" might be a MarkInfo or a MarkDecorator; only
                 # MarkInfo keeps track of all parameters it received in an
@@ -125,6 +130,8 @@ class MarkEvaluator:
                 else:
                     arglist = [(self.holder.args, self.holder.kwargs)]
                 for args, kwargs in arglist:
+                    if 'condition' in kwargs:
+                        args = (kwargs['condition'],)
                     for expr in args:
                         self.expr = expr
                         if isinstance(expr, py.builtin._basestring):
diff --git a/_pytest/standalonetemplate.py b/_pytest/standalonetemplate.py
old mode 100644
new mode 100755
diff --git a/doc/en/_getdoctarget.py b/doc/en/_getdoctarget.py
old mode 100644
new mode 100755
diff --git a/doc/en/announce/index.rst b/doc/en/announce/index.rst
index 877afff..85bb341 100644
--- a/doc/en/announce/index.rst
+++ b/doc/en/announce/index.rst
@@ -7,6 +7,8 @@ Release announcements
 
 
    sprint2016
+   release-2.9.1
+   release-2.9.1
    release-2.9.0
    release-2.8.7
    release-2.8.6
@@ -45,4 +47,3 @@ Release announcements
    release-2.0.2
    release-2.0.1
    release-2.0.0
-
diff --git a/doc/en/announce/release-2.9.0.rst b/doc/en/announce/release-2.9.0.rst
index 99c1c63..011b1ff 100644
--- a/doc/en/announce/release-2.9.0.rst
+++ b/doc/en/announce/release-2.9.0.rst
@@ -75,7 +75,7 @@ The py.test Development Team
 
 **Changes**
 
-* **Important**: `py.code <http://pylib.readthedocs.org/en/latest/code.html>`_ has been
+* **Important**: `py.code <https://pylib.readthedocs.io/en/latest/code.html>`_ has been
   merged into the ``pytest`` repository as ``pytest._code``. This decision 
   was made because ``py.code`` had very few uses outside ``pytest`` and the 
   fact that it was in a different repository made it difficult to fix bugs on 
@@ -88,7 +88,7 @@ The py.test Development Team
   **experimental**, so you definitely should not import it explicitly!
 
   Please note that the original ``py.code`` is still available in 
-  `pylib <http://pylib.readthedocs.org>`_.
+  `pylib <https://pylib.readthedocs.io>`_.
 
 * ``pytest_enter_pdb`` now optionally receives the pytest config object.
   Thanks `@nicoddemus`_ for the PR.
diff --git a/doc/en/announce/release-2.9.2.rst b/doc/en/announce/release-2.9.2.rst
new file mode 100644
index 0000000..ca81aac
--- /dev/null
+++ b/doc/en/announce/release-2.9.2.rst
@@ -0,0 +1,73 @@
+pytest-2.9.1
+============
+
+pytest is a mature Python testing tool with more than a 1100 tests
+against itself, passing on many different interpreters and platforms.
+
+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:
+
+      Adam Chainz
+      Benjamin Dopplinger
+      Bruno Oliveira
+      Florian Bruhin
+      John Towler
+      Martin Prusse
+      Meng Jue
+      MengJueM
+      Omar Kohl
+      Quentin Pradet
+      Ronny Pfannschmidt
+      Thomas Güttler
+      TomV
+      Tyler Goodlet
+
+
+Happy testing,
+The py.test Development Team
+
+
+2.9.2 (compared to 2.9.1)
+---------------------------
+
+**Bug Fixes**
+
+* fix `#510`_: skip tests where one parameterize dimension was empty
+  thanks Alex Stapleton for the Report and `@RonnyPfannschmidt`_ for the PR
+
+* Fix Xfail does not work with condition keyword argument.
+  Thanks `@astraw38`_ for reporting the issue (`#1496`_) and `@tomviner`_
+  for PR the (`#1524`_).
+
+* Fix win32 path issue when puttinging custom config file with absolute path
+  in ``pytest.main("-c your_absolute_path")``.
+
+* Fix maximum recursion depth detection when raised error class is not aware
+  of unicode/encoded bytes.
+  Thanks `@prusse-martin`_ for the PR (`#1506`_).
+
+* Fix ``pytest.mark.skip`` mark when used in strict mode.
+  Thanks `@pquentin`_ for the PR and `@RonnyPfannschmidt`_ for
+  showing how to fix the bug.
+
+* Minor improvements and fixes to the documentation.
+  Thanks `@omarkohl`_ for the PR.
+
+* Fix ``--fixtures`` to show all fixture definitions as opposed to just
+  one per fixture name.
+  Thanks to `@hackebrot`_ for the PR.
+
+.. _#510: https://github.com/pytest-dev/pytest/issues/510
+.. _#1506: https://github.com/pytest-dev/pytest/pull/1506
+.. _#1496: https://github.com/pytest-dev/pytest/issue/1496
+.. _#1524: https://github.com/pytest-dev/pytest/issue/1524
+
+.. _ at prusse-martin: https://github.com/prusse-martin
+.. _ at astraw38: https://github.com/astraw38
diff --git a/doc/en/assert.rst b/doc/en/assert.rst
index e7f14e8..aff08f0 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 1 items
     
@@ -143,7 +143,7 @@ if you run this module::
 
     $ py.test test_assert2.py
     ======= test session starts ========
-    platform linux -- Python 3.4.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 1 items
     
@@ -156,7 +156,7 @@ if you run this module::
             set1 = set("1308")
             set2 = set("8035")
     >       assert set1 == set2
-    E       assert set(['0', '1', '3', '8']) == set(['0', '3', '5', '8'])
+    E       assert {'0', '1', '3', '8'} == {'0', '3', '5', '8'}
     E         Extra items in the left set:
     E         '1'
     E         Extra items in the right set:
diff --git a/doc/en/bash-completion.rst b/doc/en/bash-completion.rst
index b2a52fa..b820944 100644
--- a/doc/en/bash-completion.rst
+++ b/doc/en/bash-completion.rst
@@ -5,7 +5,7 @@ Setting up bash completion
 ==========================
 
 When using bash as your shell, ``pytest`` can use argcomplete
-(https://argcomplete.readthedocs.org/) for auto-completion.
+(https://argcomplete.readthedocs.io/) for auto-completion.
 For this ``argcomplete`` needs to be installed **and** enabled.
 
 Install argcomplete using::
diff --git a/doc/en/cache.rst b/doc/en/cache.rst
index 52abb52..de03204 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, 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 8892f5b..1778602 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, 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 db76414..2fc74b7 100644
--- a/doc/en/doctest.rst
+++ b/doc/en/doctest.rst
@@ -49,7 +49,7 @@ then you can just invoke ``py.test`` without command line options::
 
     $ py.test
     ======= test session starts ========
-    platform linux -- Python 3.4.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, 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 6bdc603..ccca811 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
     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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
     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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
     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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
     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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+  platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
   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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
     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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
     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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
     cachedir: .cache
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collecting ... collected 4 items
@@ -201,9 +201,11 @@ You can ask which markers exist for your test suite - the list includes our just
     $ py.test --markers
     @pytest.mark.webtest: mark a test as a webtest.
     
+    @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.xfail(condition, reason=None, run=True, raises=None): mark the 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 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.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.
     
@@ -350,7 +352,7 @@ the test needs::
 
     $ py.test -E stage2
     ======= test session starts ========
-    platform linux -- Python 3.4.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 1 items
     
@@ -362,7 +364,7 @@ and here is one that specifies exactly the environment needed::
 
     $ py.test -E stage1
     ======= test session starts ========
-    platform linux -- Python 3.4.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 1 items
     
@@ -375,9 +377,11 @@ The ``--markers`` option always gives you a list of available markers::
     $ py.test --markers
     @pytest.mark.env(name): mark test to run only on named environment
     
+    @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.xfail(condition, reason=None, run=True, raises=None): mark the 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 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.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.
     
@@ -481,7 +485,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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 4 items
     
@@ -495,7 +499,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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 4 items
     
@@ -547,7 +551,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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+  platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
   rootdir: $REGENDOC_TMPDIR, inifile: 
   collected 4 items
   
@@ -569,7 +573,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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+  platform linux -- Python 3.5.1, pytest-2.9.2, 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 6437e39..b7daa75 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.4
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 -- $PYTHON_PREFIX/bin/python3.5
     cachedir: .cache
     rootdir: $REGENDOC_TMPDIR/nonpython, inifile: 
     collecting ... collected 2 items
     
-    test_simple.yml::hello FAILED
     test_simple.yml::ok PASSED
+    test_simple.yml::hello FAILED
     
     ======= 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR/nonpython, inifile: 
     collected 2 items
     <YamlFile 'test_simple.yml'>
-      <YamlItem 'hello'>
       <YamlItem 'ok'>
+      <YamlItem 'hello'>
     
     ======= no tests ran in 0.12 seconds ========
diff --git a/doc/en/example/parametrize.rst b/doc/en/example/parametrize.rst
index 5d637ff..ef5b353 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 6 items
     <Module 'test_time.py'>
@@ -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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 4 items
     <Module 'test_scenarios.py'>
@@ -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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 2 items
     <Module 'test_backends.py'>
@@ -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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: $REGENDOC_TMPDIR, inifile: 
     collected 1 items
     <Module 'test_indirect_list.py'>
@@ -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:23: 'python3.3' not found
-   SKIP [12] $REGENDOC_TMPDIR/CWD/multipython.py:23: 'python2.6' 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.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
+    platform linux -- Python 3.5.1, pytest-2.9.2, 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 5faf4c6..bd63729 100644
--- a/doc/en/example/pythoncollection.rst
+++ b/doc/en/example/pythoncollection.rst
@@ -9,19 +9,19 @@ by passing the ``--ignore=path`` option on the cli. ``pytest`` allows multiple
 ``--ignore`` options. Example::
 
     tests/
-    ├── example
-    │   ├── test_example_01.py
-    │   ├── test_example_02.py
-    │   └── test_example_03.py
-    ├── foobar
-    │   ├── test_foobar_01.py
-    │   ├── test_foobar_02.py
-    │   └── test_foobar_03.py
-    └── hello
-        └── world
-            ├── test_world_01.py
-            ├── test_world_02.py
-            └── test_world_03.py
+    |-- example
+    |   |-- test_example_01.py
+    |   |-- test_example_02.py
+    |   '-- test_example_03.py
+    |-- foobar
+    |   |-- test_foobar_01.py
+    |   |-- test_foobar_02.py
+    |   '-- test_foobar_03.py
+    '-- hello
... 1165 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/pytest.git



More information about the Python-modules-commits mailing list