Hello community,

here is the log from the commit of package python-pytest-cov for 
openSUSE:Factory checked in at 2019-02-24 17:06:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-cov (Old)
 and      /work/SRC/openSUSE:Factory/.python-pytest-cov.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pytest-cov"

Sun Feb 24 17:06:33 2019 rev:10 rq:674557 version:2.6.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest-cov/python-pytest-cov.changes      
2018-11-08 09:39:42.553714310 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-pytest-cov.new.28833/python-pytest-cov.changes
   2019-02-24 17:06:34.644589655 +0100
@@ -1,0 +2,8 @@
+Wed Feb 13 09:49:04 UTC 2019 - Tomáš Chvátal <[email protected]>
+
+- Update to 2.6.1:
+  * Added support for Pytest 4.1. Contributed by Daniel Hahler and Семён 
Марьясин in #253 and #230.
+  * Various test and docs fixes. Contributed by Daniel Hahler in #224 and #223.
+  * Fixed the "Module already imported" issue (#211). Contributed by Daniel 
Hahler in #228.
+
+-------------------------------------------------------------------

Old:
----
  pytest-cov-2.6.0.tar.gz

New:
----
  pytest-cov-2.6.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pytest-cov.spec ++++++
--- /var/tmp/diff_new_pack.CvFDDU/_old  2019-02-24 17:06:35.156589412 +0100
+++ /var/tmp/diff_new_pack.CvFDDU/_new  2019-02-24 17:06:35.156589412 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-pytest-cov
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,18 +18,25 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-pytest-cov
-Version:        2.6.0
+Version:        2.6.1
 Release:        0
 Summary:        Pytest plugin for coverage reporting
 License:        MIT
 Group:          Development/Languages/Python
 URL:            https://github.com/schlamar/pytest-cov
 Source:         
https://files.pythonhosted.org/packages/source/p/pytest-cov/pytest-cov-%{version}.tar.gz
+BuildRequires:  %{python_module coverage >= 4.4}
+BuildRequires:  %{python_module fields}
+BuildRequires:  %{python_module process-tests}
+BuildRequires:  %{python_module pytest >= 3.6}
+BuildRequires:  %{python_module pytest-xdist}
 BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module six}
+BuildRequires:  %{python_module virtualenv}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 Requires:       python-coverage >= 4.4
-Requires:       python-pytest >= 2.9.0
+Requires:       python-pytest >= 3.6
 BuildArch:      noarch
 %python_subpackages
 
@@ -51,6 +58,12 @@
 %python_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}/
 
+%check
+# test_dist_missing_data - needs internet access
+# test_central_subprocess_change_cwd_with_pythonpath - needs pytest cov in 
venv which is not doable in OBS build
+echo "import site;site.addsitedir(\"$(pwd)/src\")" > tests/sitecustomize.py
+%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib}:$PWD/tests 
py.test-%{$python_bin_suffix} -v -k 'not (test_dist_missing_data or 
test_central_subprocess_change_cwd_with_pythonpath)'
+
 %files %{python_files}
 %license LICENSE
 %doc AUTHORS.rst CHANGELOG.rst README.rst

++++++ pytest-cov-2.6.0.tar.gz -> pytest-cov-2.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/.bumpversion.cfg 
new/pytest-cov-2.6.1/.bumpversion.cfg
--- old/pytest-cov-2.6.0/.bumpversion.cfg       2018-09-04 01:10:14.000000000 
+0200
+++ new/pytest-cov-2.6.1/.bumpversion.cfg       2019-01-07 01:43:00.000000000 
+0100
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 2.6.0
+current_version = 2.6.1
 commit = True
 tag = True
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/.travis.yml 
new/pytest-cov-2.6.1/.travis.yml
--- old/pytest-cov-2.6.0/.travis.yml    2018-09-03 15:43:59.000000000 +0200
+++ new/pytest-cov-2.6.1/.travis.yml    2019-01-07 01:21:26.000000000 +0100
@@ -12,124 +12,73 @@
   include:
     - python: '2.7'
       env:
-        - TOXENV=py27-t35-c44
+        - TOXENV=py27-t310-c45
     - python: '2.7'
       env:
-        - TOXENV=py27-t35-c45
+        - TOXENV=py27-t40-c45
     - python: '2.7'
       env:
-        - TOXENV=py27-t36-c44
-    - python: '2.7'
-      env:
-        - TOXENV=py27-t36-c45
-    - python: '2.7'
-      env:
-        - TOXENV=py27-t37-c44
-    - python: '2.7'
-      env:
-        - TOXENV=py27-t37-c45
-    - python: '3.4'
-      env:
-        - TOXENV=py34-t35-c44
-    - python: '3.4'
-      env:
-        - TOXENV=py34-t35-c45
-    - python: '3.4'
-      env:
-        - TOXENV=py34-t36-c44
+        - TOXENV=py27-t41-c45
     - python: '3.4'
       env:
-        - TOXENV=py34-t36-c45
+        - TOXENV=py34-t310-c45
     - python: '3.4'
       env:
-        - TOXENV=py34-t37-c44
+        - TOXENV=py34-t40-c45
     - python: '3.4'
       env:
-        - TOXENV=py34-t37-c45
-    - python: '3.5'
-      env:
-        - TOXENV=py35-t35-c44
-    - python: '3.5'
-      env:
-        - TOXENV=py35-t35-c45
-    - python: '3.5'
-      env:
-        - TOXENV=py35-t36-c44
+        - TOXENV=py34-t41-c45
     - python: '3.5'
       env:
-        - TOXENV=py35-t36-c45
+        - TOXENV=py35-t310-c45
     - python: '3.5'
       env:
-        - TOXENV=py35-t37-c44
+        - TOXENV=py35-t40-c45
     - python: '3.5'
       env:
-        - TOXENV=py35-t37-c45
+        - TOXENV=py35-t41-c45
     - python: '3.6'
       env:
-        - TOXENV=py36-t35-c44
+        - TOXENV=py36-t310-c45
     - python: '3.6'
       env:
-        - TOXENV=py36-t35-c45
+        - TOXENV=py36-t40-c45
     - python: '3.6'
       env:
-        - TOXENV=py36-t36-c44
-    - python: '3.6'
-      env:
-        - TOXENV=py36-t36-c45
-    - python: '3.6'
-      env:
-        - TOXENV=py36-t37-c44
-    - python: '3.6'
-      env:
-        - TOXENV=py36-t37-c45
+        - TOXENV=py36-t41-c45
     - python: '3.7'
-      env:
-        - TOXENV=py37-t35-c44
       dist: xenial
       sudo: required
-    - python: '3.7'
       env:
-        - TOXENV=py37-t35-c45
-      dist: xenial
-      sudo: required
+        - TOXENV=py37-t310-c45
     - python: '3.7'
-      env:
-        - TOXENV=py37-t36-c44
       dist: xenial
       sudo: required
-    - python: '3.7'
       env:
-        - TOXENV=py37-t36-c45
-      dist: xenial
-      sudo: required
+        - TOXENV=py37-t40-c45
     - python: '3.7'
-      env:
-        - TOXENV=py37-t37-c44
       dist: xenial
       sudo: required
-    - python: '3.7'
       env:
-        - TOXENV=py37-t37-c45
-      dist: xenial
-      sudo: required
-    - python: 'pypy-5.4'
+        - TOXENV=py37-t41-c45
+    - python: 'pypy'
       env:
-        - TOXENV=pypy-t35-c44
-    - python: 'pypy-5.4'
+        - TOXENV=pypy-t310-c45
+    - python: 'pypy'
       env:
-        - TOXENV=pypy-t35-c45
-    - python: 'pypy-5.4'
+        - TOXENV=pypy-t40-c45
+    - python: 'pypy'
       env:
-        - TOXENV=pypy-t36-c44
-    - python: 'pypy-5.4'
+        - TOXENV=pypy-t41-c45
+    - python: 'pypy3'
       env:
-        - TOXENV=pypy-t36-c45
-    - python: 'pypy-5.4'
+        - TOXENV=pypy3-t310-c45
+    - python: 'pypy3'
       env:
-        - TOXENV=pypy-t37-c44
-    - python: 'pypy-5.4'
+        - TOXENV=pypy3-t40-c45
+    - python: 'pypy3'
       env:
-        - TOXENV=pypy-t37-c45
+        - TOXENV=pypy3-t41-c45
 before_install:
   - python --version
   - uname -a
@@ -140,6 +89,27 @@
   - easy_install --version
   - pip --version
   - tox --version
+  - |
+    set -ex
+    if [[ $TRAVIS_PYTHON_VERSION == 'pypy' ]]; then
+        (cd $HOME
+         wget 
https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2
+         tar xf pypy2-*.tar.bz2
+         pypy2-*/bin/pypy -m ensurepip
+         pypy2-*/bin/pypy -m pip install -U virtualenv)
+        export PATH=$(echo $HOME/pypy2-*/bin):$PATH
+        export TOXPYTHON=$(echo $HOME/pypy2-*/bin/pypy)
+    fi
+    if [[ $TRAVIS_PYTHON_VERSION == 'pypy3' ]]; then
+        (cd $HOME
+         wget 
https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux64.tar.bz2
+         tar xf pypy3-*.tar.bz2
+         pypy3-*/bin/pypy3 -m ensurepip
+         pypy3-*/bin/pypy3 -m pip install -U virtualenv)
+        export PATH=$(echo $HOME/pypy3-*/bin):$PATH
+        export TOXPYTHON=$(echo $HOME/pypy3-*/bin/pypy3)
+    fi
+    set +x
 script:
   - tox -v
 after_failure:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/AUTHORS.rst 
new/pytest-cov-2.6.1/AUTHORS.rst
--- old/pytest-cov-2.6.0/AUTHORS.rst    2018-09-03 12:12:23.000000000 +0200
+++ new/pytest-cov-2.6.1/AUTHORS.rst    2019-01-07 01:21:26.000000000 +0100
@@ -27,3 +27,4 @@
 * Terence Honles - https://github.com/terencehonles
 * Jeremy Bowman - https://github.com/jmbowman
 * Samuel Giffard - https://github.com/Mulugruntz
+* Семён Марьясин - https://github.com/MarSoft
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/CHANGELOG.rst 
new/pytest-cov-2.6.1/CHANGELOG.rst
--- old/pytest-cov-2.6.0/CHANGELOG.rst  2018-09-03 15:40:26.000000000 +0200
+++ new/pytest-cov-2.6.1/CHANGELOG.rst  2019-01-07 01:21:26.000000000 +0100
@@ -1,6 +1,18 @@
 Changelog
 =========
 
+2.6.1 (2019-01-07)
+------------------
+
+* Added support for Pytest 4.1. Contributed by Daniel Hahler and Семён 
Марьясин in
+  `#253 <https://github.com/pytest-dev/pytest-cov/pull/253>`_ and
+  `#230 <https://github.com/pytest-dev/pytest-cov/pull/230>`_.
+* Various test and docs fixes. Contributed by Daniel Hahler in
+  `#224 <https://github.com/pytest-dev/pytest-cov/pull/224>`_ and
+  `#223 <https://github.com/pytest-dev/pytest-cov/pull/223>`_.
+* Fixed the "Module already imported" issue (`#211 
<https://github.com/pytest-dev/pytest-cov/issues/211>`_).
+  Contributed by Daniel Hahler in `#228 
<https://github.com/pytest-dev/pytest-cov/pull/228>`_.
+
 2.6.0 (2018-09-03)
 ------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/CONTRIBUTING.rst 
new/pytest-cov-2.6.1/CONTRIBUTING.rst
--- old/pytest-cov-2.6.0/CONTRIBUTING.rst       2017-11-24 09:22:57.000000000 
+0100
+++ new/pytest-cov-2.6.1/CONTRIBUTING.rst       2019-01-07 01:21:26.000000000 
+0100
@@ -83,7 +83,7 @@
 
 To run a subset of tests::
 
-    tox -e envname -- py.test -k test_myfeature
+    tox -e envname -- pytest -k test_myfeature
 
 To run all the test environments in *parallel* (you need to ``pip install 
detox``)::
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/PKG-INFO 
new/pytest-cov-2.6.1/PKG-INFO
--- old/pytest-cov-2.6.0/PKG-INFO       2018-09-04 01:10:31.000000000 +0200
+++ new/pytest-cov-2.6.1/PKG-INFO       2019-01-07 01:43:12.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: pytest-cov
-Version: 2.6.0
+Version: 2.6.1
 Summary: Pytest plugin for measuring coverage.
 Home-page: https://github.com/pytest-dev/pytest-cov
 Author: Marc Schlaich
@@ -20,7 +20,7 @@
             * - tests
               - | |travis| |appveyor| |requires|
             * - package
-              - | |version| |wheel| |supported-versions| 
|supported-implementations|
+              - | |version| |conda-forge| |wheel| |supported-versions| 
|supported-implementations|
                 | |commits-since|
         
         .. |docs| image:: 
https://readthedocs.org/projects/pytest-cov/badge/?style=flat
@@ -43,9 +43,12 @@
             :alt: PyPI Package latest release
             :target: https://pypi.python.org/pypi/pytest-cov
         
-        .. |commits-since| image:: 
https://img.shields.io/github/commits-since/pytest-dev/pytest-cov/v2.6.0.svg
+        .. |conda-forge| image:: 
https://img.shields.io/conda/vn/conda-forge/pytest-cov.svg
+            :target: https://anaconda.org/conda-forge/pytest-cov
+        
+        .. |commits-since| image:: 
https://img.shields.io/github/commits-since/pytest-dev/pytest-cov/v2.6.1.svg
             :alt: Commits since latest release
-            :target: 
https://github.com/pytest-dev/pytest-cov/compare/v2.6.0...master
+            :target: 
https://github.com/pytest-dev/pytest-cov/compare/v2.6.1...master
         
         .. |wheel| image:: https://img.shields.io/pypi/wheel/pytest-cov.svg
             :alt: PyPI Wheel
@@ -108,7 +111,7 @@
         
         ::
         
-            py.test --cov=myproj tests/
+            pytest --cov=myproj tests/
         
         Would produce a report like::
         
@@ -174,6 +177,18 @@
         Changelog
         =========
         
+        2.6.1 (2019-01-07)
+        ------------------
+        
+        * Added support for Pytest 4.1. Contributed by Daniel Hahler and Семён 
Марьясин in
+          `#253 <https://github.com/pytest-dev/pytest-cov/pull/253>`_ and
+          `#230 <https://github.com/pytest-dev/pytest-cov/pull/230>`_.
+        * Various test and docs fixes. Contributed by Daniel Hahler in
+          `#224 <https://github.com/pytest-dev/pytest-cov/pull/224>`_ and
+          `#223 <https://github.com/pytest-dev/pytest-cov/pull/223>`_.
+        * Fixed the "Module already imported" issue (`#211 
<https://github.com/pytest-dev/pytest-cov/issues/211>`_).
+          Contributed by Daniel Hahler in `#228 
<https://github.com/pytest-dev/pytest-cov/pull/228>`_.
+        
         2.6.0 (2018-09-03)
         ------------------
         
@@ -307,6 +322,7 @@
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Software Development :: Testing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/README.rst 
new/pytest-cov-2.6.1/README.rst
--- old/pytest-cov-2.6.0/README.rst     2018-09-04 01:10:14.000000000 +0200
+++ new/pytest-cov-2.6.1/README.rst     2019-01-07 01:43:00.000000000 +0100
@@ -12,7 +12,7 @@
     * - tests
       - | |travis| |appveyor| |requires|
     * - package
-      - | |version| |wheel| |supported-versions| |supported-implementations|
+      - | |version| |conda-forge| |wheel| |supported-versions| 
|supported-implementations|
         | |commits-since|
 
 .. |docs| image:: https://readthedocs.org/projects/pytest-cov/badge/?style=flat
@@ -35,9 +35,12 @@
     :alt: PyPI Package latest release
     :target: https://pypi.python.org/pypi/pytest-cov
 
-.. |commits-since| image:: 
https://img.shields.io/github/commits-since/pytest-dev/pytest-cov/v2.6.0.svg
+.. |conda-forge| image:: 
https://img.shields.io/conda/vn/conda-forge/pytest-cov.svg
+    :target: https://anaconda.org/conda-forge/pytest-cov
+
+.. |commits-since| image:: 
https://img.shields.io/github/commits-since/pytest-dev/pytest-cov/v2.6.1.svg
     :alt: Commits since latest release
-    :target: https://github.com/pytest-dev/pytest-cov/compare/v2.6.0...master
+    :target: https://github.com/pytest-dev/pytest-cov/compare/v2.6.1...master
 
 .. |wheel| image:: https://img.shields.io/pypi/wheel/pytest-cov.svg
     :alt: PyPI Wheel
@@ -100,7 +103,7 @@
 
 ::
 
-    py.test --cov=myproj tests/
+    pytest --cov=myproj tests/
 
 Would produce a report like::
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/ci/bootstrap.py 
new/pytest-cov-2.6.1/ci/bootstrap.py
--- old/pytest-cov-2.6.0/ci/bootstrap.py        2018-08-09 15:49:27.000000000 
+0200
+++ new/pytest-cov-2.6.1/ci/bootstrap.py        2019-01-07 01:21:26.000000000 
+0100
@@ -4,15 +4,15 @@
 
 import os
 import sys
+from os.path import abspath
+from os.path import dirname
 from os.path import exists
 from os.path import join
-from os.path import dirname
-from os.path import abspath
 
 
 if __name__ == "__main__":
     base_path = dirname(dirname(abspath(__file__)))
-    print("Project path: {}".format(base_path))
+    print("Project path: {0}".format(base_path))
     env_path = join(base_path, ".tox", "bootstrap")
     if sys.platform == "win32":
         bin_path = join(env_path, "Scripts")
@@ -20,21 +20,23 @@
         bin_path = join(env_path, "bin")
     if not exists(env_path):
         import subprocess
-        print("Making bootstrap env in: {} ...".format(env_path))
+
+        print("Making bootstrap env in: {0} ...".format(env_path))
         try:
             subprocess.check_call(["virtualenv", env_path])
-        except Exception:
+        except subprocess.CalledProcessError:
             subprocess.check_call([sys.executable, "-m", "virtualenv", 
env_path])
-        print("Installing `jinja2` into bootstrap environment ...")
+        print("Installing `jinja2` into bootstrap environment...")
         subprocess.check_call([join(bin_path, "pip"), "install", "jinja2"])
-    activate = join(bin_path, "activate_this.py")
-    exec(compile(open(activate, "rb").read(), activate, "exec"), 
dict(__file__=activate))
+    python_executable = join(bin_path, "python")
+    if not os.path.samefile(python_executable, sys.executable):
+        print("Re-executing with: {0}".format(python_executable))
+        os.execv(python_executable, [python_executable, __file__])
 
     import jinja2
 
     import subprocess
 
-
     jinja = jinja2.Environment(
         loader=jinja2.FileSystemLoader(join(base_path, "ci", "templates")),
         trim_blocks=True,
@@ -42,15 +44,15 @@
         keep_trailing_newline=True
     )
 
-    tox_environments = [line.strip() for line in 
subprocess.check_output(['tox', '--listenvs'], 
universal_newlines=True).splitlines()]
+    tox_environments = [
+        line.strip()
+        # WARNING: 'tox' must be installed globally or in the project's 
virtualenv
+        for line in subprocess.check_output(['tox', '--listenvs'], 
universal_newlines=True).splitlines()
+    ]
     tox_environments = [line for line in tox_environments if line not in 
['clean', 'report', 'docs', 'check']]
 
-    template_vars = {'tox_environments': tox_environments}
-    for py_ver in '27 34 35 py'.split():
-        template_vars['py%s_environments' % py_ver] = [x for x in 
tox_environments if x.startswith('py' + py_ver)]
-
     for name in os.listdir(join("ci", "templates")):
         with open(join(base_path, name), "w") as fh:
-            fh.write(jinja.get_template(name).render(**template_vars))
+            
fh.write(jinja.get_template(name).render(tox_environments=tox_environments))
         print("Wrote {}".format(name))
     print("DONE.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/ci/templates/.travis.yml 
new/pytest-cov-2.6.1/ci/templates/.travis.yml
--- old/pytest-cov-2.6.0/ci/templates/.travis.yml       2018-09-03 
15:43:59.000000000 +0200
+++ new/pytest-cov-2.6.1/ci/templates/.travis.yml       2019-01-07 
01:21:26.000000000 +0100
@@ -11,14 +11,13 @@
 matrix:
   include:
 {%- for env in tox_environments %}{{ '' }}
-    - python: '{{ '{0[0]}-5.4'.format(env.split('-')) if 
env.startswith('pypy') else '{0[2]}.{0[3]}'.format(env) }}'
-      env:
-        - TOXENV={{ env -}}
+    - python: '{{ env.split("-")[0] if env.startswith("pypy") else 
"{0[2]}.{0[3]}".format(env) }}'
 {% if env.startswith('py37') %}
-
       dist: xenial
       sudo: required
-{%- endif -%}
+{% endif %}
+      env:
+        - TOXENV={{ env }}{% if 'cover' in env %},report,coveralls,codecov{% 
endif -%}
 {%- endfor %}{{ '' }}
 before_install:
   - python --version
@@ -30,6 +29,27 @@
   - easy_install --version
   - pip --version
   - tox --version
+  - |
+    set -ex
+    if [[ $TRAVIS_PYTHON_VERSION == 'pypy' ]]; then
+        (cd $HOME
+         wget 
https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2
+         tar xf pypy2-*.tar.bz2
+         pypy2-*/bin/pypy -m ensurepip
+         pypy2-*/bin/pypy -m pip install -U virtualenv)
+        export PATH=$(echo $HOME/pypy2-*/bin):$PATH
+        export TOXPYTHON=$(echo $HOME/pypy2-*/bin/pypy)
+    fi
+    if [[ $TRAVIS_PYTHON_VERSION == 'pypy3' ]]; then
+        (cd $HOME
+         wget 
https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux64.tar.bz2
+         tar xf pypy3-*.tar.bz2
+         pypy3-*/bin/pypy3 -m ensurepip
+         pypy3-*/bin/pypy3 -m pip install -U virtualenv)
+        export PATH=$(echo $HOME/pypy3-*/bin):$PATH
+        export TOXPYTHON=$(echo $HOME/pypy3-*/bin/pypy3)
+    fi
+    set +x
 script:
   - tox -v
 after_failure:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/docs/conf.py 
new/pytest-cov-2.6.1/docs/conf.py
--- old/pytest-cov-2.6.0/docs/conf.py   2018-09-04 01:10:14.000000000 +0200
+++ new/pytest-cov-2.6.1/docs/conf.py   2019-01-07 01:43:00.000000000 +0100
@@ -25,7 +25,7 @@
 year = '2016'
 author = 'pytest-cov contributors'
 copyright = '{}, {}'.format(year, author)
-version = release = '2.6.0'
+version = release = '2.6.1'
 
 pygments_style = 'trac'
 templates_path = ['.']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/docs/config.rst 
new/pytest-cov-2.6.1/docs/config.rst
--- old/pytest-cov-2.6.0/docs/config.rst        2018-09-03 10:51:53.000000000 
+0200
+++ new/pytest-cov-2.6.1/docs/config.rst        2019-01-07 01:21:26.000000000 
+0100
@@ -8,7 +8,7 @@
 For example if tests are contained within the directory tree being measured 
the tests may be
 excluded if desired by using a .coveragerc file with the omit option set::
 
-    py.test --cov-config .coveragerc
+    pytest --cov-config .coveragerc
             --cov=myproj
             myproj/tests/
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/docs/markers-fixtures.rst 
new/pytest-cov-2.6.1/docs/markers-fixtures.rst
--- old/pytest-cov-2.6.0/docs/markers-fixtures.rst      2018-08-09 
15:49:27.000000000 +0200
+++ new/pytest-cov-2.6.1/docs/markers-fixtures.rst      2019-01-06 
19:23:09.000000000 +0100
@@ -14,7 +14,7 @@
 
 .. code-block:: python
 
-    @pytest.marker.no_cover
+    @pytest.mark.no_cover
     def test_foobar():
         # do some stuff that needs coverage disabled
 
@@ -41,7 +41,3 @@
 For reasons that no one can remember there is a ``cov`` fixture that provides 
access to the underlying Coverage instance.
 Some say this is a disguised foot-gun and should be removed, and some think 
mysteries make life more interesting and it should
 be left alone.
-
-
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/docs/plugins.rst 
new/pytest-cov-2.6.1/docs/plugins.rst
--- old/pytest-cov-2.6.0/docs/plugins.rst       2018-08-09 15:49:27.000000000 
+0200
+++ new/pytest-cov-2.6.1/docs/plugins.rst       2019-01-07 01:21:26.000000000 
+0100
@@ -3,12 +3,12 @@
 ===============
 
 Getting coverage on pytest plugins is a very particular situation. Because how 
pytest implements plugins (using setuptools
-entrypoints) it doesn't allow controling the order in which the plugins load.
+entrypoints) it doesn't allow controlling the order in which the plugins load.
 See `pytest/issues/935 
<https://github.com/pytest-dev/pytest/issues/935#issuecomment-245107960>`_ for 
technical details.
 
 The current way of dealing with this problem is using the append feature and 
manually starting ``pytest-cov``'s engine, eg:
 
-    COV_CORE_SOURCE=src COV_CORE_CONFIG=.coveragerc 
COV_CORE_DATAFILE=.coverage.eager py.test --cov=src --cov-append
+    COV_CORE_SOURCE=src COV_CORE_CONFIG=.coveragerc 
COV_CORE_DATAFILE=.coverage.eager pytest --cov=src --cov-append
 
 Alternatively you can have this in ``tox.ini`` (if you're using `Tox 
<https://tox.readthedocs.io/en/latest/>`_ of course)::
 
@@ -21,5 +21,4 @@
 And in ``pytest.ini`` / ``tox.ini`` / ``setup.cfg``::
 
     [tool:pytest]
-    addopts =
-        --cov-append
+    addopts = --cov --cov-append
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/docs/reporting.rst 
new/pytest-cov-2.6.1/docs/reporting.rst
--- old/pytest-cov-2.6.0/docs/reporting.rst     2018-08-09 15:49:27.000000000 
+0200
+++ new/pytest-cov-2.6.1/docs/reporting.rst     2019-01-07 01:21:26.000000000 
+0100
@@ -8,7 +8,7 @@
 
 The terminal report without line numbers (default)::
 
-    py.test --cov-report term --cov=myproj tests/
+    pytest --cov-report term --cov=myproj tests/
 
     -------------------- coverage: platform linux2, python 2.6.4-final-0 
---------------------
     Name                 Stmts   Miss  Cover
@@ -22,7 +22,7 @@
 
 The terminal report with line numbers::
 
-    py.test --cov-report term-missing --cov=myproj tests/
+    pytest --cov-report term-missing --cov=myproj tests/
 
     -------------------- coverage: platform linux2, python 2.6.4-final-0 
---------------------
     Name                 Stmts   Miss  Cover   Missing
@@ -35,7 +35,7 @@
 
 The terminal report with skip covered::
 
-    py.test --cov-report term:skip-covered --cov=myproj tests/
+    pytest --cov-report term:skip-covered --cov=myproj tests/
 
     -------------------- coverage: platform linux2, python 2.6.4-final-0 
---------------------
     Name                 Stmts   Miss  Cover
@@ -51,7 +51,7 @@
 
 These three report options output to files without showing anything on the 
terminal::
 
-    py.test --cov-report html
+    pytest --cov-report html
             --cov-report xml
             --cov-report annotate
             --cov=myproj tests/
@@ -60,14 +60,14 @@
 report is a file. Where as the output location for the HTML and annotated 
source code reports are
 directories::
 
-    py.test --cov-report html:cov_html
+    pytest --cov-report html:cov_html
             --cov-report xml:cov.xml
             --cov-report annotate:cov_annotate
             --cov=myproj tests/
 
 The final report option can also suppress printing to the terminal::
 
-    py.test --cov-report= --cov=myproj tests/
+    pytest --cov-report= --cov=myproj tests/
 
 This mode can be especially useful on continuous integration servers, where a 
coverage file
 is needed for subsequent processing, but no local report needs to be viewed. 
For example,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/docs/xdist.rst 
new/pytest-cov-2.6.1/docs/xdist.rst
--- old/pytest-cov-2.6.0/docs/xdist.rst 2018-08-09 15:49:27.000000000 +0200
+++ new/pytest-cov-2.6.1/docs/xdist.rst 2019-01-07 01:21:26.000000000 +0100
@@ -11,7 +11,7 @@
 
 Running distributed testing with dist mode set to load::
 
-    py.test --cov=myproj -n 2 tests/
+    pytest --cov=myproj -n 2 tests/
 
 Shows a terminal report::
 
@@ -27,7 +27,7 @@
 
 Again but spread over different hosts and different directories::
 
-    py.test --cov=myproj --dist load
+    pytest --cov=myproj --dist load
             --tx ssh=memedough@host1//chdir=testenv1
             --tx 
ssh=memedough@host2//chdir=/tmp/testenv2//python=/tmp/env1/bin/python
             --rsyncdir myproj --rsyncdir tests --rsync examples
@@ -54,7 +54,7 @@
 
 Running distributed testing with dist mode set to each::
 
-    py.test --cov=myproj --dist each
+    pytest --cov=myproj --dist each
             --tx 
popen//chdir=/tmp/testenv3//python=/usr/local/python27/bin/python
             --tx 
ssh=memedough@host2//chdir=/tmp/testenv4//python=/tmp/env2/bin/python
             --rsyncdir myproj --rsyncdir tests --rsync examples
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/example/tox.ini 
new/pytest-cov-2.6.1/example/tox.ini
--- old/pytest-cov-2.6.0/example/tox.ini        2017-04-24 11:26:13.000000000 
+0200
+++ new/pytest-cov-2.6.1/example/tox.ini        2019-01-07 01:21:26.000000000 
+0100
@@ -6,7 +6,7 @@
 usedevelop=True
 setenv =
     COVERAGE_FILE = .coverage.{envname}
-commands = py.test --cov --cov-report= {posargs}
+commands = pytest --cov --cov-report= {posargs}
 deps =
     ../cov-core
     pytest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/setup.cfg 
new/pytest-cov-2.6.1/setup.cfg
--- old/pytest-cov-2.6.0/setup.cfg      2018-09-04 01:10:31.000000000 +0200
+++ new/pytest-cov-2.6.1/setup.cfg      2019-01-07 01:43:12.000000000 +0100
@@ -5,31 +5,12 @@
 max-line-length = 140
 exclude = tests/*,*/migrations/*,*/south_migrations/*
 
-[pytest]
-norecursedirs = 
-       .git
-       .tox
-       .env
-       venv
-       dist
-       build
-       south_migrations
-       migrations
-       example
-python_files = 
-       test_*.py
-       *_test.py
-       tests.py
+[tool:pytest]
+testpaths = tests
+python_files = test_*.py
 addopts = 
-       -rxEfsw
+       -ra
        --strict
-       --ignore=docs/conf.py
-       --ignore=setup.py
-       --ignore=src
-       --ignore=ci
-       --ignore=.eggs
-       --doctest-modules
-       --doctest-glob=\*.rst
        --tb=short
        -p pytester
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/setup.py 
new/pytest-cov-2.6.1/setup.py
--- old/pytest-cov-2.6.0/setup.py       2018-09-04 01:10:14.000000000 +0200
+++ new/pytest-cov-2.6.1/setup.py       2019-01-07 01:43:00.000000000 +0100
@@ -83,7 +83,7 @@
 
 setup(
     name='pytest-cov',
-    version='2.6.0',
+    version='2.6.1',
     license='MIT',
     description='Pytest plugin for measuring coverage.',
     long_description='%s\n%s' % (read('README.rst'), 
re.sub(':[a-z]+:`~?(.*?)`', r'``\1``', read('CHANGELOG.rst'))),
@@ -111,6 +111,7 @@
         'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Software Development :: Testing',
@@ -120,7 +121,7 @@
         'cover', 'coverage', 'pytest', 'py.test', 'distributed', 'parallel',
     ],
     install_requires=[
-        'pytest>=2.9',
+        'pytest>=3.6',
         'coverage>=4.4'
     ],
     python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/src/pytest_cov/__init__.py 
new/pytest-cov-2.6.1/src/pytest_cov/__init__.py
--- old/pytest-cov-2.6.0/src/pytest_cov/__init__.py     2018-09-04 
01:10:14.000000000 +0200
+++ new/pytest-cov-2.6.1/src/pytest_cov/__init__.py     2019-01-07 
01:43:00.000000000 +0100
@@ -1 +1,2 @@
-__version__ = "2.6.0"
+"""pytest-cov: avoid already-imported warning: PYTEST_DONT_REWRITE."""
+__version__ = "2.6.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/src/pytest_cov/embed.py 
new/pytest-cov-2.6.1/src/pytest_cov/embed.py
--- old/pytest-cov-2.6.0/src/pytest_cov/embed.py        2017-10-28 
03:59:46.000000000 +0200
+++ new/pytest-cov-2.6.1/src/pytest_cov/embed.py        2019-01-06 
19:11:51.000000000 +0100
@@ -56,7 +56,7 @@
             cov_config = True
 
         # Activate coverage for this process.
-        cov = active_cov = coverage.coverage(
+        cov = active_cov = coverage.Coverage(
             source=cov_source,
             branch=cov_branch,
             data_suffix=True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/src/pytest_cov/engine.py 
new/pytest-cov-2.6.1/src/pytest_cov/engine.py
--- old/pytest-cov-2.6.0/src/pytest_cov/engine.py       2018-09-03 
10:44:31.000000000 +0200
+++ new/pytest-cov-2.6.1/src/pytest_cov/engine.py       2019-01-06 
19:11:51.000000000 +0100
@@ -146,10 +146,10 @@
 
     def start(self):
         """Erase any previous coverage data and start coverage."""
-        self.cov = coverage.coverage(source=self.cov_source,
+        self.cov = coverage.Coverage(source=self.cov_source,
                                      branch=self.cov_branch,
                                      config_file=self.cov_config)
-        self.combining_cov = coverage.coverage(source=self.cov_source,
+        self.combining_cov = coverage.Coverage(source=self.cov_source,
                                                branch=self.cov_branch,
                                                
data_file=os.path.abspath(self.cov.config.data_file),
                                                config_file=self.cov_config)
@@ -185,10 +185,10 @@
         if self.cov_config and os.path.exists(self.cov_config):
             self.config.option.rsyncdir.append(self.cov_config)
 
-        self.cov = coverage.coverage(source=self.cov_source,
+        self.cov = coverage.Coverage(source=self.cov_source,
                                      branch=self.cov_branch,
                                      config_file=self.cov_config)
-        self.combining_cov = coverage.coverage(source=self.cov_source,
+        self.combining_cov = coverage.Coverage(source=self.cov_source,
                                                branch=self.cov_branch,
                                                
data_file=os.path.abspath(self.cov.config.data_file),
                                                config_file=self.cov_config)
@@ -224,7 +224,7 @@
                 node.slaveoutput['cov_slave_node_id']
                 )
 
-            cov = coverage.coverage(source=self.cov_source,
+            cov = coverage.Coverage(source=self.cov_source,
                                     branch=self.cov_branch,
                                     data_suffix=data_suffix,
                                     config_file=self.cov_config)
@@ -274,7 +274,7 @@
             self.cov_config = self.cov_config.replace(master_topdir, 
slave_topdir)
 
         # Erase any previous data and start coverage.
-        self.cov = coverage.coverage(source=self.cov_source,
+        self.cov = coverage.Coverage(source=self.cov_source,
                                      branch=self.cov_branch,
                                      data_suffix=True,
                                      config_file=self.cov_config)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/src/pytest_cov/plugin.py 
new/pytest-cov-2.6.1/src/pytest_cov/plugin.py
--- old/pytest-cov-2.6.0/src/pytest_cov/plugin.py       2018-09-03 
10:51:53.000000000 +0200
+++ new/pytest-cov-2.6.1/src/pytest_cov/plugin.py       2019-01-06 
19:23:09.000000000 +0100
@@ -1,5 +1,6 @@
 """Coverage plugin for pytest."""
 import os
+import warnings
 
 import pytest
 import argparse
@@ -177,7 +178,7 @@
         """At session start determine our implementation and delegate to it."""
 
         if self.options.no_cov:
-            # Coverage can be disabled because it does not cooperate with 
debuggers well.py
+            # Coverage can be disabled because it does not cooperate with 
debuggers well.
             self._disabled = True
             return
 
@@ -234,7 +235,10 @@
                 message = 'Failed to generate report: %s\n' % exc
                 
session.config.pluginmanager.getplugin("terminalreporter").write(
                     'WARNING: %s\n' % message, red=True, bold=True)
-                session.config.warn(code='COV-2', message=message)
+                if pytest.__version__ >= '3.8':
+                    warnings.warn(pytest.PytestWarning(message))
+                else:
+                    session.config.warn(code='COV-2', message=message)
                 self.cov_total = 0
             assert self.cov_total is not None, 'Test coverage should never be 
`None`'
             if self._failed_cov_total():
@@ -245,7 +249,10 @@
         if self._disabled:
             message = 'Coverage disabled via --no-cov switch!'
             terminalreporter.write('WARNING: %s\n' % message, red=True, 
bold=True)
-            terminalreporter.config.warn(code='COV-1', message=message)
+            if pytest.__version__ >= '3.8':
+                warnings.warn(pytest.PytestWarning(message))
+            else:
+                terminalreporter.config.warn(code='COV-1', message=message)
             return
         if self.cov_controller is None:
             return
@@ -286,7 +293,7 @@
 
     @compat.hookwrapper
     def pytest_runtest_call(self, item):
-        if (item.get_marker('no_cover')
+        if (item.get_closest_marker('no_cover')
                 or 'no_cover' in getattr(item, 'fixturenames', ())):
             self.cov_controller.pause()
             yield
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/src/pytest_cov.egg-info/PKG-INFO 
new/pytest-cov-2.6.1/src/pytest_cov.egg-info/PKG-INFO
--- old/pytest-cov-2.6.0/src/pytest_cov.egg-info/PKG-INFO       2018-09-04 
01:10:31.000000000 +0200
+++ new/pytest-cov-2.6.1/src/pytest_cov.egg-info/PKG-INFO       2019-01-07 
01:43:12.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: pytest-cov
-Version: 2.6.0
+Version: 2.6.1
 Summary: Pytest plugin for measuring coverage.
 Home-page: https://github.com/pytest-dev/pytest-cov
 Author: Marc Schlaich
@@ -20,7 +20,7 @@
             * - tests
               - | |travis| |appveyor| |requires|
             * - package
-              - | |version| |wheel| |supported-versions| 
|supported-implementations|
+              - | |version| |conda-forge| |wheel| |supported-versions| 
|supported-implementations|
                 | |commits-since|
         
         .. |docs| image:: 
https://readthedocs.org/projects/pytest-cov/badge/?style=flat
@@ -43,9 +43,12 @@
             :alt: PyPI Package latest release
             :target: https://pypi.python.org/pypi/pytest-cov
         
-        .. |commits-since| image:: 
https://img.shields.io/github/commits-since/pytest-dev/pytest-cov/v2.6.0.svg
+        .. |conda-forge| image:: 
https://img.shields.io/conda/vn/conda-forge/pytest-cov.svg
+            :target: https://anaconda.org/conda-forge/pytest-cov
+        
+        .. |commits-since| image:: 
https://img.shields.io/github/commits-since/pytest-dev/pytest-cov/v2.6.1.svg
             :alt: Commits since latest release
-            :target: 
https://github.com/pytest-dev/pytest-cov/compare/v2.6.0...master
+            :target: 
https://github.com/pytest-dev/pytest-cov/compare/v2.6.1...master
         
         .. |wheel| image:: https://img.shields.io/pypi/wheel/pytest-cov.svg
             :alt: PyPI Wheel
@@ -108,7 +111,7 @@
         
         ::
         
-            py.test --cov=myproj tests/
+            pytest --cov=myproj tests/
         
         Would produce a report like::
         
@@ -174,6 +177,18 @@
         Changelog
         =========
         
+        2.6.1 (2019-01-07)
+        ------------------
+        
+        * Added support for Pytest 4.1. Contributed by Daniel Hahler and Семён 
Марьясин in
+          `#253 <https://github.com/pytest-dev/pytest-cov/pull/253>`_ and
+          `#230 <https://github.com/pytest-dev/pytest-cov/pull/230>`_.
+        * Various test and docs fixes. Contributed by Daniel Hahler in
+          `#224 <https://github.com/pytest-dev/pytest-cov/pull/224>`_ and
+          `#223 <https://github.com/pytest-dev/pytest-cov/pull/223>`_.
+        * Fixed the "Module already imported" issue (`#211 
<https://github.com/pytest-dev/pytest-cov/issues/211>`_).
+          Contributed by Daniel Hahler in `#228 
<https://github.com/pytest-dev/pytest-cov/pull/228>`_.
+        
         2.6.0 (2018-09-03)
         ------------------
         
@@ -307,6 +322,7 @@
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Software Development :: Testing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-cov-2.6.0/src/pytest_cov.egg-info/requires.txt 
new/pytest-cov-2.6.1/src/pytest_cov.egg-info/requires.txt
--- old/pytest-cov-2.6.0/src/pytest_cov.egg-info/requires.txt   2018-09-04 
01:10:31.000000000 +0200
+++ new/pytest-cov-2.6.1/src/pytest_cov.egg-info/requires.txt   2019-01-07 
01:43:12.000000000 +0100
@@ -1,2 +1,2 @@
-pytest>=2.9
+pytest>=3.6
 coverage>=4.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/tests/test_pytest_cov.py 
new/pytest-cov-2.6.1/tests/test_pytest_cov.py
--- old/pytest-cov-2.6.0/tests/test_pytest_cov.py       2018-09-03 
10:51:53.000000000 +0200
+++ new/pytest-cov-2.6.1/tests/test_pytest_cov.py       2019-01-07 
01:21:26.000000000 +0100
@@ -9,11 +9,12 @@
 import py
 import pytest
 import virtualenv
+import xdist
+from fields import Namespace
 from process_tests import TestProcess as _TestProcess
 from process_tests import dump_on_error
 from process_tests import wait_for_strings
 from six import exec_
-from fields import Namespace
 
 try:
     from StringIO import StringIO
@@ -28,10 +29,10 @@
 import sys, helper
 
 def pytest_generate_tests(metafunc):
-    for i in range(10):
-        metafunc.addcall()
+    for i in [10]:
+        metafunc.parametrize('p', range(i))
 
-def test_foo():
+def test_foo(p):
     x = True
     helper.do_stuff()  # get some coverage in some other completely different 
location
     if sys.version_info[0] > 5:
@@ -70,8 +71,8 @@
 import sys
 
 def pytest_generate_tests(metafunc):
-    for i in range(2):
-        metafunc.addcall(funcargs=dict(idx=i))
+    for i in [2]:
+        metafunc.parametrize('idx', range(i))
 
 def test_foo(idx):
     out, err = subprocess.Popen(
@@ -90,8 +91,8 @@
 import os
 
 def pytest_generate_tests(metafunc):
-    for i in range(2):
-        metafunc.addcall(funcargs=dict(idx=i))
+    for i in [2]:
+        metafunc.parametrize('idx', range(i))
 
 def test_foo(idx):
     os.mkdir("foobar")
@@ -114,8 +115,8 @@
 import os
 
 def pytest_generate_tests(metafunc):
-    for i in range(2):
-        metafunc.addcall(funcargs=dict(idx=i))
+    for i in [2]:
+        if metafunc.function is test_foo: metafunc.parametrize('idx', range(i))
 
 def test_foo(idx):
     os.mkdir("foobar")
@@ -135,7 +136,7 @@
 import coverage
 
 def test_foo(cov):
-    assert isinstance(cov, coverage.coverage)
+    assert isinstance(cov, coverage.Coverage)
 '''
 
 SCRIPT_FUNCARG_NOT_ACTIVE = '''
@@ -143,18 +144,12 @@
     assert cov is None
 '''
 
-SCRIPT_FAIL = '''
-def test_fail():
-    assert False
-
-'''
-
 CHILD_SCRIPT_RESULT = '[56] * 100%'
 PARENT_SCRIPT_RESULT = '9 * 100%'
 DEST_DIR = 'cov_dest'
 REPORT_NAME = 'cov.xml'
 
-xdist = pytest.mark.parametrize('opts', ['', '-n 1'], ids=['nodist', 'xdist'])
+xdist_params = pytest.mark.parametrize('opts', ['', '-n 1'], ids=['nodist', 
'xdist'])
 
 
 @pytest.fixture(params=[
@@ -396,7 +391,7 @@
     assert result.ret == 0
 
 
-@xdist
+@xdist_params
 def test_central_with_path_aliasing(testdir, monkeypatch, opts, prop):
     mod1 = testdir.mkdir('src').join('mod.py')
     mod1.write(SCRIPT)
@@ -499,7 +494,11 @@
 
 
 def test_no_cov_on_fail(testdir):
-    script = testdir.makepyfile(SCRIPT_FAIL)
+    script = testdir.makepyfile('''
+def test_fail():
+    assert False
+
+''')
 
     result = testdir.runpytest('-v',
                                '--cov=%s' % script.dirpath(),
@@ -527,7 +526,11 @@
 
 
 def test_cov_and_failure_report_on_fail(testdir):
-    script = testdir.makepyfile(SCRIPT + SCRIPT_FAIL)
+    script = testdir.makepyfile(SCRIPT + '''
+def test_fail(p):
+    assert False
+
+''')
 
     result = testdir.runpytest('-v',
                                '--cov=%s' % script.dirpath(),
@@ -802,7 +805,7 @@
 def test_invalid_coverage_source(testdir):
     script = testdir.makepyfile(SCRIPT)
     testdir.makeini("""
-        [pytest]
+        [tool:pytest]
         console_output_style=classic
     """)
     result = testdir.runpytest('-v',
@@ -821,7 +824,7 @@
     ])
     assert result.ret == 0
 
-    matching_lines = [line for line in result.outlines if '%' in line]
+    matching_lines = [line for line in result.outlines if '%' in line and 
'PASSED' not in line]
     assert not matching_lines
 
 
@@ -838,7 +841,9 @@
         '-mpip',
         'install',
         'py==%s' % py.__version__,
-        'pytest==%s' % pytest.__version__
+        'pytest==%s' % pytest.__version__,
+        'pytest_xdist==%s' % xdist.__version__
+
     ])
     script = testdir.makepyfile(SCRIPT)
 
@@ -1022,7 +1027,8 @@
     testdir.makeconftest(CONFTEST)
     script = testdir.makepyfile(BASIC_TEST)
 
-    monkeypatch.setattr(testdir, 'run', lambda *args: _TestProcess(*map(str, 
args)))
+    monkeypatch.setattr(testdir, 'run',
+                        lambda *args, **kwargs: _TestProcess(*map(str, args)))
     with testdir.runpytest('-v',
                            '--cov=%s' % script.dirpath(),
                            '--looponfail',
@@ -1340,8 +1346,8 @@
     assert glob.glob(str(testdir.tmpdir.join('.coverage*')))
 
 
-@xdist
-def xtest_append_coverage(testdir, opts, prop):
+@xdist_params
+def test_append_coverage(testdir, opts, prop):
     script = testdir.makepyfile(test_1=prop.code)
     testdir.tmpdir.join('.coveragerc').write(prop.fullconf)
     result = testdir.runpytest('-v',
@@ -1363,10 +1369,10 @@
     ])
 
 
-@xdist
-def xtest_do_not_append_coverage(testdir, opts, prop):
+@xdist_params
+def test_do_not_append_coverage(testdir, opts, prop):
     script = testdir.makepyfile(test_1=prop.code)
-    testdir.tmpdir.join('.coveragerc').write("")
+    testdir.tmpdir.join('.coveragerc').write(prop.fullconf)
     result = testdir.runpytest('-v',
                                '--cov=%s' % script.dirpath(),
                                script,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-cov-2.6.0/tox.ini new/pytest-cov-2.6.1/tox.ini
--- old/pytest-cov-2.6.0/tox.ini        2018-09-03 15:41:26.000000000 +0200
+++ new/pytest-cov-2.6.1/tox.ini        2019-01-07 01:21:26.000000000 +0100
@@ -2,13 +2,14 @@
 
 [tox]
 envlist =
-    check,
-    {py27,py34,py35,py36,py37,pypy}-{t35,t36,t37}-{c44,c45}
+    check
+    {py27,py34,py35,py36,py37,pypy,pypy3}-{t310,t40,t41}-{c45}
     docs
 
 [testenv]
 basepython =
-    pypy: pypy
+    pypy: {env:TOXPYTHON:pypy}
+    pypy3: {env:TOXPYTHON:pypy3}
     {py27,docs}: {env:TOXPYTHON:python2.7}
     py34: {env:TOXPYTHON:python3.4}
     py35: {env:TOXPYTHON:python3.5}
@@ -21,13 +22,13 @@
 passenv =
     *
 deps =
-    t35: pytest==3.5.1
-    t36: pytest==3.6.4
-    t37: pytest==3.7.4
-    pytest-xdist==1.23.0
+    t310: pytest==3.10.1
+    t40: pytest==4.0.2
+    t41: pytest==4.1.0
+    pytest-xdist==1.25.0
 
     c44: coverage==4.4.2
-    c45: coverage==4.5.1
+    c45: coverage==4.5.2
 
     virtualenv
     hunter
@@ -37,7 +38,7 @@
 pip_pre = true
 
 commands =
-    {posargs:py.test -vv}
+    {posargs:pytest -vv}
 
 [testenv:spell]
 setenv =


Reply via email to