Hello community,

here is the log from the commit of package python-coveralls for 
openSUSE:Factory checked in at 2020-06-17 14:54:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-coveralls (Old)
 and      /work/SRC/openSUSE:Factory/.python-coveralls.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-coveralls"

Wed Jun 17 14:54:19 2020 rev:10 rq:815335 version:2.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-coveralls/python-coveralls.changes        
2020-05-07 14:51:14.942049067 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-coveralls.new.3606/python-coveralls.changes  
    2020-06-17 14:55:07.109963419 +0200
@@ -1,0 +2,6 @@
+Wed Jun 17 04:05:52 UTC 2020 - Steve Kowalik <[email protected]>
+
+- Update to 2.0.0:
+  * Drop support for Python 2.7 and 3.4. 
+
+-------------------------------------------------------------------

Old:
----
  1.11.1.tar.gz

New:
----
  2.0.0.tar.gz

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

Other differences:
------------------
++++++ python-coveralls.spec ++++++
--- /var/tmp/diff_new_pack.vMVO8n/_old  2020-06-17 14:55:08.881969486 +0200
+++ /var/tmp/diff_new_pack.vMVO8n/_new  2020-06-17 14:55:08.881969486 +0200
@@ -17,12 +17,12 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
 Name:           python-coveralls
-Version:        1.11.1
+Version:        2.0.0
 Release:        0
 Summary:        Module for showing coverage stats online via coverallsio
 License:        MIT
-Group:          Development/Languages/Python
 URL:            https://github.com/coveralls-clients/coveralls-python
 Source:         
https://github.com/coveralls-clients/coveralls-python/archive/%{version}.tar.gz
 BuildRequires:  %{python_module PyYAML >= 3.10}

++++++ 1.11.1.tar.gz -> 2.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/.circleci/config.yml 
new/coveralls-python-2.0.0/.circleci/config.yml
--- old/coveralls-python-1.11.1/.circleci/config.yml    2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/.circleci/config.yml     2020-04-07 
04:53:40.000000000 +0200
@@ -8,14 +8,14 @@
     docker:
       - image: python:<<parameters.docker_image>>-alpine
     parameters:
+      cov_version:
+        default: ""
+        type: string
       docker_image:
         type: string
       # TODO: figure out `<<parameters.docker_image>>.replace('.','')`
       tox_environment:
         type: string
-      cov_version:
-        default: ""
-        type: string
     steps:
       - run: apk add --no-cache gcc git libffi-dev musl-dev openssh-client 
openssl-dev
       - checkout
@@ -31,123 +31,69 @@
             - run: tox -f 
<<parameters.tox_environment>>-cov<<parameters.cov_version>>
             - run: tox -e coveralls<<parameters.cov_version>>
 
-  # TODO: by introspecting `docker_image` (or `tox_environment`), we could
-  # these job definitions
   toxpypy:
     docker:
       - image: pypy:<<parameters.docker_image>>
     parameters:
-      docker_image:
-        type: string
-      # TODO: figure out `<<parameters.docker_image>>.replace('.','')`
-      tox_environment:
-        type: string
       cov_version:
-        default: ""
+        type: string
+      docker_image:
         type: string
     steps:
       - checkout
       - run: pip install tox tox-factor
-      - unless:
-          condition: <<parameters.cov_version>>
-          steps:
-            - run: tox -f <<parameters.tox_environment>>
-            - run: tox -e coveralls41
-      - when:
-          condition: <<parameters.cov_version>>
-          steps:
-            - run: tox -f 
<<parameters.tox_environment>>-cov<<parameters.cov_version>>
-            - run: tox -e coveralls<<parameters.cov_version>>
+      - run: tox -f pypy3-cov<<parameters.cov_version>>
+      - run: tox -e coveralls<<parameters.cov_version>>
 
 workflows:
-  run-jobs:
+  lint:
     jobs:
       - linter/pre-commit:
           python_version: 3.7.5
 
-      - toxpy:
-          name: test-py2.7
-          docker_image: '2.7'
-          tox_environment: py27
-      - toxpy:
-          name: test-py3.4
-          docker_image: '3.4'
-          tox_environment: py34
+  test-cpython:
+    jobs:
       - toxpy:
           name: test-py3.5
           docker_image: '3.5'
           tox_environment: py35
       - toxpy:
-          name: test-py3.6-cov4
-          docker_image: '3.6'
-          tox_environment: py36
-          cov_version: '41'
-      - toxpy:
-          name: test-py3.6-cov5
+          name: test-py3.6-cov<<matrix.cov_version>>
           docker_image: '3.6'
           tox_environment: py36
-          cov_version: '5'
+          matrix:
+            parameters:
+              cov_version: ['41', '5']
       - toxpy:
-          name: test-py3.7-cov4
+          name: test-py3.7-cov<<matrix.cov_version>>
           docker_image: '3.7'
           tox_environment: py37
-          cov_version: '41'
-      - toxpy:
-          name: test-py3.7-cov5
-          docker_image: '3.7'
-          tox_environment: py37
-          cov_version: '5'
-      - toxpy:
-          name: test-py3.8-cov4
-          docker_image: '3.8'
-          tox_environment: py38
-          cov_version: '41'
+          matrix:
+            parameters:
+              cov_version: ['41', '5']
       - toxpy:
-          name: test-py3.8-cov5
+          name: test-py3.8-cov<<matrix.cov_version>>
           docker_image: '3.8'
           tox_environment: py38
-          cov_version: '5'
+          matrix:
+            parameters:
+              cov_version: ['41', '5']
 
+  test-pypy:
+    jobs:
       - toxpypy:
-          name: test-pypy2-5
-          docker_image: 2-5
-          tox_environment: pypy
-      - toxpypy:
-          name: test-pypy2-6
-          docker_image: 2-6
-          tox_environment: pypy
-      - toxpypy:
-          name: test-pypy2-7
-          docker_image: 2-7
-          tox_environment: pypy
+          name: test-pypy<<matrix.docker_image>>-cov<<matrix.cov_version>>
+          matrix:
+            parameters:
+              cov_version: ['41', '5']
+              docker_image: ['3-5', '3-6', '3-7']
 
-      - toxpypy:
-          name: test-pypy3-5-cov4
-          docker_image: 3-5
-          tox_environment: pypy3
-          cov_version: '41'
-      - toxpypy:
-          name: test-pypy3-5-cov5
-          docker_image: 3-5
-          tox_environment: pypy3
-          cov_version: '5'
-      - toxpypy:
-          name: test-pypy3-6-cov4
-          docker_image: 3-6
-          tox_environment: pypy3
-          cov_version: '41'
-      - toxpypy:
-          name: test-pypy3-6-cov5
-          docker_image: 3-6
-          tox_environment: pypy3
-          cov_version: '5'
-      - toxpypy:
-          name: test-pypy3-7-cov4
-          docker_image: 3-7
-          tox_environment: pypy3
-          cov_version: '41'
-      - toxpypy:
-          name: test-pypy3-7-cov5
-          docker_image: 3-7
-          tox_environment: pypy3
-          cov_version: '5'
+  test-alphaversions:
+    jobs:
+      - toxpy:
+          name: test-py3.9-alpha-cov<<matrix.cov_version>>
+          docker_image: '3.9.0a2'
+          tox_environment: py39
+          matrix:
+            parameters:
+              cov_version: ['41', '5']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/.github/CODEOWNERS 
new/coveralls-python-2.0.0/.github/CODEOWNERS
--- old/coveralls-python-1.11.1/.github/CODEOWNERS      1970-01-01 
01:00:00.000000000 +0100
+++ new/coveralls-python-2.0.0/.github/CODEOWNERS       2020-04-07 
04:53:40.000000000 +0200
@@ -0,0 +1 @@
+*       @TheKevJames
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/coveralls-python-1.11.1/.github/workflows/pythonpackage.yml 
new/coveralls-python-2.0.0/.github/workflows/pythonpackage.yml
--- old/coveralls-python-1.11.1/.github/workflows/pythonpackage.yml     
2020-02-15 01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/.github/workflows/pythonpackage.yml      
2020-04-07 04:53:40.000000000 +0200
@@ -8,7 +8,7 @@
     strategy:
       max-parallel: 4
       matrix:
-        python-version: [2.7, 3.5, 3.6, 3.7, 3.8]
+        python-version: [3.5, 3.6, 3.7, 3.8]
 
     steps:
     - uses: actions/checkout@v1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/.gitignore 
new/coveralls-python-2.0.0/.gitignore
--- old/coveralls-python-1.11.1/.gitignore      2020-02-15 01:13:01.000000000 
+0100
+++ new/coveralls-python-2.0.0/.gitignore       2020-04-07 04:53:40.000000000 
+0200
@@ -1,104 +1,61 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
 *$py.class
-
-# C extensions
+*.cover
+*.egg
+*.egg-info/
+*.log
+*.manifest
+*.mo
+*.pot
+*.py[cod]
+*.sage.py
 *.so
-
-# Distribution / packaging
+*.spec
 .Python
+.cache
+.coverage
+.coverage.*
+.eggs/
+.env
+.hypothesis/
+.installed.cfg
+.ipynb_checkpoints
+.mypy_cache/
+.pytest_cache/
+.python-version
+.ropeproject
+.scrapy
+.spyderproject
+.spyproject
+.tox/
+.venv
+.webassets-cache
+/site
+ENV/
+MANIFEST
+__pycache__/
 build/
+celerybeat-schedule
+coverage.xml
+db.sqlite3
 develop-eggs/
 dist/
+docs/_build/
 downloads/
 eggs/
-.eggs/
+env.bak/
+env/
+htmlcov/
+instance/
 lib/
 lib64/
+local_settings.py
+nosetests.xml
 parts/
-sdist/
-var/
-wheels/
-*.egg-info/
-.installed.cfg
-*.egg
-MANIFEST
-
-# PyInstaller
-#  Usually these files are written by a python script from a template
-#  before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
 pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*.cover
-.hypothesis/
-.pytest_cache/
-
-# Translations
-*.mo
-*.pot
-
-# Django stuff:
-*.log
-local_settings.py
-db.sqlite3
-
-# Flask stuff:
-instance/
-.webassets-cache
-
-# Scrapy stuff:
-.scrapy
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
+pip-log.txt
+sdist/
 target/
-
-# Jupyter Notebook
-.ipynb_checkpoints
-
-# pyenv
-.python-version
-
-# celery beat schedule file
-celerybeat-schedule
-
-# SageMath parsed files
-*.sage.py
-
-# Environments
-.env
-.venv
-env/
-venv/
-ENV/
-env.bak/
+var/
 venv.bak/
-
-# Spyder project settings
-.spyderproject
-.spyproject
-
-# Rope project settings
-.ropeproject
-
-# mkdocs documentation
-/site
-
-# mypy
-.mypy_cache/
+venv/
+wheels/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/.pre-commit-config.yaml 
new/coveralls-python-2.0.0/.pre-commit-config.yaml
--- old/coveralls-python-1.11.1/.pre-commit-config.yaml 2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/.pre-commit-config.yaml  2020-04-07 
04:53:40.000000000 +0200
@@ -1,82 +1,103 @@
 repos:
 -   repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v2.1.0
+    rev: v2.5.0
     hooks:
-    -   id: check-ast
-    -   id: check-builtin-literals
     -   id: check-case-conflict
     -   id: check-executables-have-shebangs
     -   id: check-json
     -   id: check-merge-conflict
     -   id: check-symlinks
+    -   id: check-toml
     -   id: check-vcs-permalinks
     -   id: check-xml
     -   id: check-yaml
         args: [--allow-multiple-documents]
-    -   id: debug-statements
     -   id: detect-private-key
     -   id: end-of-file-fixer
         exclude: example/.*
     -   id: file-contents-sorter
-        files: .dockerignore .gitignore
+        files: .(docker|git)ignore
     -   id: mixed-line-ending
         args: [--fix=lf]
+    -   id: trailing-whitespace
+
+# python
+    -   id: check-ast
+    -   id: check-builtin-literals
+    -   id: check-docstring-first
+    -   id: debug-statements
+    -   id: double-quote-string-fixer
+        exclude: nonunicode/.*
     -   id: name-tests-test
     -   id: requirements-txt-fixer
-    -   id: trailing-whitespace
 -   repo: https://github.com/pre-commit/mirrors-pylint
-    rev: v2.3.1
+    rev: v2.4.4
     hooks:
     -   id: pylint
+        additional_dependencies:
+        # TODO: >0.2.0
+        - git+https://github.com/bayesimpact/pylint_import_modules@016f79e4d2
         args:
+        - --allowed-direct-imports="typing.*"
+        - --load-plugins=pylint_import_modules
         - --max-line-length=79
         - --ignore-imports=yes
         - -d broad-except
         - -d fixme
         - -d import-error
+        - -d import-only-modules
         - -d invalid-name
         - -d locally-disabled
         - -d missing-docstring
         - -d too-few-public-methods
-        - -d useless-object-inheritance
+        - -d ungrouped-imports
         exclude: example/.*
 -   repo: https://github.com/Lucas-C/pre-commit-hooks
-    rev: v1.1.6
+    rev: v1.1.7
     hooks:
     -   id: remove-tabs
 -   repo: https://github.com/asottile/reorder_python_imports
-    rev: v1.4.0
+    rev: v2.0.0
     hooks:
     -   id: reorder-python-imports
-        args: [--py26-plus]
-        files: coveralls/.*
+        args: [--py3-plus]
+        exclude: nonunicode/.*
+-   repo: https://github.com/asottile/pyupgrade
+    rev: v2.1.0
+    hooks:
+    -   id: pyupgrade
+        args: [--py3-plus]
+        exclude: nonunicode/.*
 -   repo: https://github.com/asottile/yesqa
-    rev: v0.0.10
+    rev: v1.1.0
     hooks:
     -   id: yesqa
         files: coveralls/.*
 -   repo: https://github.com/pre-commit/mirrors-autopep8
-    rev: v1.4.3
+    rev: v1.5
     hooks:
     -   id: autopep8
         files: coveralls/.*
 -   repo: https://github.com/PyCQA/pydocstyle
-    rev: 792b8d92  # TODO: >3.0.0
+    rev: 5.0.2
     hooks:
     -   id: pydocstyle
         args:
-        - --ignore=D1,D203,D205,D212,D400,D401,D404
+        - --ignore=D1,D203,D205,D212,D400,D401,D404,D413
         files: coveralls/.*
 -   repo: https://gitlab.com/pycqa/flake8
-    rev: 3.7.7
+    rev: 3.7.9
     hooks:
     -   id: flake8
         args:
-        - --ignore=E501,W503,F811,F821
+        - --ignore=E501,W503,F401,F811
         files: coveralls/.*
 -   repo: https://github.com/pre-commit/pygrep-hooks
-    rev: v1.2.0
+    rev: v1.5.1
     hooks:
+    -   id: python-no-eval
     -   id: python-no-log-warn
     -   id: python-use-type-annotations
+
+# rst
     -   id: rst-backticks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/.travis.yml 
new/coveralls-python-2.0.0/.travis.yml
--- old/coveralls-python-1.11.1/.travis.yml     2020-02-15 01:13:01.000000000 
+0100
+++ new/coveralls-python-2.0.0/.travis.yml      2020-04-07 04:53:40.000000000 
+0200
@@ -2,13 +2,10 @@
 
 language: python
 python:
-  - 2.7
-  - 3.4
   - 3.5
   - 3.6
   - 3.7
   - 3.8
-  - pypy
   - pypy3
 
 install:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/CHANGELOG.md 
new/coveralls-python-2.0.0/CHANGELOG.md
--- old/coveralls-python-1.11.1/CHANGELOG.md    2020-02-15 01:13:01.000000000 
+0100
+++ new/coveralls-python-2.0.0/CHANGELOG.md     2020-04-07 04:53:40.000000000 
+0200
@@ -1,3 +1,14 @@
+<a name="2.0.0"></a>
+## 2.0.0 (2020-04-07)
+
+#### Compatiblity (BREAKING CHANGES)
+
+*  We have now dropped support for End-Of-Life'd versions of Python and
+   particularly old versions of the `coverage` library; if you are still using
+   Python v2.7 or v3.4, or you are using `coverage<4.1`, this library will no
+   longer be compatible starting from this release -- please pin to
+   `coveralls<2.0.0`.
+
 <a name="1.11.1"></a>
 ## 1.11.1 (2020-02-15)
 
@@ -12,7 +23,7 @@
 
 #### Fixes
 
-* **github:**  add service_number for github actions ([9f93bd8e](9f93bd8e))
+* **github:**  add `service_number` for github actions ([9f93bd8e](9f93bd8e))
     This should fix support for parallel builds.
 
 #### Compatibility
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/README.rst 
new/coveralls-python-2.0.0/README.rst
--- old/coveralls-python-1.11.1/README.rst      2020-02-15 01:13:01.000000000 
+0100
+++ new/coveralls-python-2.0.0/README.rst       2020-04-07 04:53:40.000000000 
+0200
@@ -1,5 +1,5 @@
-Coveralls for Python
-====================
+Coveralls for Python (Docs)
+===========================
 
 :Test Status:
     .. image:: 
https://img.shields.io/circleci/project/github/coveralls-clients/coveralls-python/master.svg?style=flat-square&label=CircleCI
@@ -34,14 +34,35 @@
     .. image:: 
https://img.shields.io/pypi/implementation/coveralls.svg?style=flat-square&label=Python%20Implementations
         :target: https://pypi.org/project/coveralls/
 
-`coveralls.io`_ is a service for publishing your coverage stats online. This 
package provides seamless integration with `coverage.py`_ (and thus ``pytest``, 
``nosetests``, etc...) in your Python projects::
+`coveralls.io`_ is a service for publishing your coverage stats online. This
+package provides seamless integration with `coverage.py`_ (and thus ``pytest``,
+``nosetests``, etc...) in your Python projects::
 
     pip install coveralls
-    coverage run --source=mypkg setup.py test
+    coverage run --source=mypkg -m pytest tests/
     coveralls
 
 For more information and usage instructions, see our `documentation`_.
 
-.. _coveralls.io: https://coveralls.io/
+Version Compatibility
+---------------------
+
+As of version 2.0, we have dropped support for end-of-life'd versions of Python
+and particularly old version of coverage. Support for non-EOL'd environments is
+provided on a best-effort basis and will generally be removed once they make
+maintenance too difficult.
+
+If you're running on an outdated environment with a new enough package manager
+to support version checks (see `the PyPA docs`_), then installing the latest
+compatible version should do the trick. If you're even more outdated than that,
+please pin to ``coveralls<2``.
+
+If you're in an outdated environment and experiencing an issue, feel free to
+open a ticket -- but please mention your environment! I'm willing to backport
+fixes to the 1.x branch if need be.
+
+.. _Docs: http://coveralls-python.readthedocs.io/en/latest/
 .. _coverage.py: https://coverage.readthedocs.io/en/latest/
+.. _coveralls.io: https://coveralls.io/
 .. _documentation: http://coveralls-python.readthedocs.io/en/latest/
+.. _the PyPA docs: 
https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/coveralls/__init__.py 
new/coveralls-python-2.0.0/coveralls/__init__.py
--- old/coveralls-python-1.11.1/coveralls/__init__.py   2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/coveralls/__init__.py    2020-04-07 
04:53:40.000000000 +0200
@@ -1,4 +1,3 @@
-# coding: utf-8
 from .api import Coveralls
 from .version import __version__
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/coveralls/api.py 
new/coveralls-python-2.0.0/coveralls/api.py
--- old/coveralls-python-1.11.1/coveralls/api.py        2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/coveralls/api.py 2020-04-07 04:53:40.000000000 
+0200
@@ -1,4 +1,3 @@
-# coding: utf-8
 import codecs
 import json
 import logging
@@ -16,11 +15,13 @@
 log = logging.getLogger('coveralls.api')
 
 
-class Coveralls(object):
+class Coveralls:
     config_filename = '.coveralls.yml'
 
     def __init__(self, token_required=True, service_name=None, **kwargs):
         """
+        Initialize the main Coveralls collection entrypoint.
+
         * repo_token
           The secret token for your repository, found at the bottom of your
           repository's page on Coveralls.
@@ -95,7 +96,7 @@
         pr = None
         if os.environ.get('GITHUB_REF', '').startswith('refs/pull/'):
             pr = os.environ.get('GITHUB_REF', '//').split('/')[2]
-            service_number += '-PR-{0}'.format(pr)
+            service_number += '-PR-{}'.format(pr)
         return 'github-actions', service_number, pr
 
     @staticmethod
@@ -163,12 +164,12 @@
             with open(os.path.join(os.getcwd(),
                                    self.config_filename)) as config:
                 try:
-                    import yaml
+                    import yaml  # pylint: disable=import-outside-toplevel
                     return yaml.safe_load(config)
                 except ImportError:
                     log.warning('PyYAML is not installed, skipping %s.',
                                 self.config_filename)
-        except (OSError, IOError):
+        except OSError:
             log.debug('Missing %s file. Using only env variables.',
                       self.config_filename)
 
@@ -267,11 +268,7 @@
         config_file = self.config.get('config_file', True)
         workman = coverage.coverage(config_file=config_file)
         workman.load()
-
-        if hasattr(workman, '_harvest_data'):
-            workman._harvest_data()  # pylint: disable=W0212
-        else:
-            workman.get_data()
+        workman.get_data()
 
         return CoverallReporter(workman, workman.config).coverage
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/coveralls/cli.py 
new/coveralls-python-2.0.0/coveralls/cli.py
--- old/coveralls-python-1.11.1/coveralls/cli.py        2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/coveralls/cli.py 2020-04-07 04:53:40.000000000 
+0200
@@ -1,5 +1,5 @@
 """
-Publish coverage results online via coveralls.io
+Publish coverage results online via coveralls.io.
 
 Puts your coverage results on coveralls.io for everyone to see.
 
@@ -25,6 +25,7 @@
     -v --verbose      Print extra info, always enabled when debugging.
 
 Example:
+-------
     $ coveralls
     Submitting coverage to coveralls.io...
     Coverage submitted!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/coveralls/git.py 
new/coveralls-python-2.0.0/coveralls/git.py
--- old/coveralls-python-1.11.1/coveralls/git.py        2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/coveralls/git.py 2020-04-07 04:53:40.000000000 
+0200
@@ -18,20 +18,14 @@
             'command return code {}, STDOUT: "{}"\nSTDERR: "{}"'.format(
                 cmd.returncode, stdout, stderr))
 
-    try:
-        return stdout.decode().strip()
-    except UnicodeDecodeError:
-        return stdout.decode('utf-8').strip()
+    return stdout.decode().strip()
 
 
 def gitlog(fmt):
     glog = run_command('git', '--no-pager', 'log', '-1',
                        '--pretty=format:{}'.format(fmt))
 
-    try:
-        return str(glog)
-    except UnicodeEncodeError:
-        return unicode(glog)  # pylint: disable=undefined-variable
+    return str(glog)
 
 
 def git_branch():
@@ -62,6 +56,7 @@
     A hash of Git data that can be used to display more information to users.
 
     Example:
+    -------
         "git": {
             "head": {
                 "id": "5e837ce92220be64821128a70f6093f836dd2c05",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/coveralls/reporter.py 
new/coveralls-python-2.0.0/coveralls/reporter.py
--- old/coveralls-python-1.11.1/coveralls/reporter.py   2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/coveralls/reporter.py    2020-04-07 
04:53:40.000000000 +0200
@@ -1,21 +1,16 @@
-# coding: utf-8
 import logging
 import os
-import sys
 
 from coverage import __version__
 from coverage.misc import NoSource
 from coverage.misc import NotPython
-from coverage.phystokens import source_encoding
-
-from .exception import CoverallsException
 
 
 log = logging.getLogger('coveralls.reporter')
 
 
-class CoverallReporter(object):
-    """Custom coverage.py reporter for coveralls.io"""
+class CoverallReporter:
+    """Custom coverage.py reporter for coveralls.io."""
 
     def __init__(self, cov, conf):
         self.coverage = []
@@ -52,7 +47,7 @@
         #     if str(e) != 'No data to report.':
         #         raise
 
-        from coverage.files import FnmatchMatcher, prep_patterns
+        from coverage.files import FnmatchMatcher, prep_patterns  # pylint: 
disable=import-outside-toplevel
 
         # get_analysis_to_report starts here; changes marked with TODOs
         file_reporters = cov._get_file_reporters(None)  # pylint: disable=W0212
@@ -90,7 +85,7 @@
                         msg = "Couldn't parse Python file '{}'".format(
                             fr.filename)
                         cov._warn(msg,  # pylint: disable=W0212
-                                  slug="couldnt-parse")
+                                  slug='couldnt-parse')
                     else:
                         # TODO: deprecate changes
                         # raise
@@ -103,31 +98,19 @@
 
     def report(self, cov, conf, morfs=None):
         """
-        Generate a part of json report for coveralls
+        Generate a part of json report for coveralls.
 
         `morfs` is a list of modules or filenames.
         `outfile` is a file object to write the json to.
         """
         # pylint: disable=too-many-branches
         try:
-            from coverage.report import Reporter
+            from coverage.report import Reporter  # pylint: 
disable=import-outside-toplevel
             self.reporter = Reporter(cov, conf)
         except ImportError:  # coverage >= 5.0
             return self.report5(cov)
 
-        units = None
-        if hasattr(self.reporter, 'find_code_units'):
-            self.reporter.find_code_units(morfs)
-        else:
-            units = self.reporter.find_file_reporters(morfs)
-
-        if units is None:
-            if hasattr(self.reporter, 'code_units'):
-                units = self.reporter.code_units
-            else:
-                units = self.reporter.file_reporters
-
-        for cu in units:
+        for cu in self.reporter.find_file_reporters(morfs):
             try:
                 _fn = self.reporter.coverage._analyze  # pylint: disable=W0212
                 analyzed = _fn(cu)
@@ -141,18 +124,6 @@
                 if (cu.should_be_python()
                         and not self.reporter.config.ignore_errors):
                     log.warning('Source file is not python %s', cu.filename)
-            except KeyError:
-                version = [int(x) for x in __version__.split('.')]
-                cov3x = version[0] < 4
-                cov40 = version[0] == 4 and version[1] < 1
-                if cov3x or cov40:
-                    raise CoverallsException(
-                        'Old (<4.1) versions of coverage.py do not work '
-                        'consistently on new versions of Python. Please '
-                        'upgrade your coverage.py.'
-                    )
-
-                raise
 
         return self.coverage
 
@@ -210,40 +181,16 @@
         return branches
 
     def parse_file(self, cu, analysis):
-        """Generate data for single file"""
-        if hasattr(analysis, 'parser'):
-            filename = cu.file_locator.relative_filename(cu.filename)
-            source_lines = analysis.parser.lines
-            with cu.source_file() as source_file:
-                source = source_file.read()
-
-            try:
-                if sys.version_info < (3, 0):
-                    encoding = source_encoding(source)
-                    if encoding != 'utf-8':
-                        source = source.decode(encoding).encode('utf-8')
-            except UnicodeDecodeError:
-                log.warning(
-                    'Source file %s can not be properly decoded, skipping. '
-                    'Please check if encoding declaration is ok',
-                    os.path.basename(cu.filename))
-                return
-        else:
-            if hasattr(cu, 'relative_filename'):
-                filename = cu.relative_filename()
-            else:
-                filename = analysis.coverage.file_locator.relative_filename(
-                    cu.filename)
+        """Generate data for single file."""
+        filename = cu.relative_filename()
+        # ensure results are properly merged between platforms
+        posix_filename = filename.replace(os.path.sep, '/')
 
-            token_lines = analysis.file_reporter.source_token_lines()
-            source_lines = list(enumerate(token_lines))
-            source = analysis.file_reporter.source()
+        source = analysis.file_reporter.source()
 
+        token_lines = analysis.file_reporter.source_token_lines()
         coverage_lines = [self.get_hits(i, analysis)
-                          for i in range(1, len(source_lines) + 1)]
-
-        # ensure results are properly merged between platforms
-        posix_filename = filename.replace(os.path.sep, '/')
+                          for i, _ in enumerate(token_lines, 1)]
 
         results = {
             'name': posix_filename,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/coveralls/version.py 
new/coveralls-python-2.0.0/coveralls/version.py
--- old/coveralls-python-1.11.1/coveralls/version.py    2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/coveralls/version.py     2020-04-07 
04:53:40.000000000 +0200
@@ -1 +1 @@
-__version__ = '1.11.1'
+__version__ = '2.0.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/docs/conf.py 
new/coveralls-python-2.0.0/docs/conf.py
--- old/coveralls-python-1.11.1/docs/conf.py    2020-02-15 01:13:01.000000000 
+0100
+++ new/coveralls-python-2.0.0/docs/conf.py     2020-04-07 04:53:40.000000000 
+0200
@@ -1,9 +1,7 @@
 #!/usr/bin/env python3
-# -*- coding: utf-8 -*-
 from coveralls import __version__
 
 
-# -- General configuration ------------------------------------------------
 extensions = [
     'sphinx.ext.autodoc',
     'sphinx.ext.githubpages',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/docs/usage/tox.rst 
new/coveralls-python-2.0.0/docs/usage/tox.rst
--- old/coveralls-python-1.11.1/docs/usage/tox.rst      2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/docs/usage/tox.rst       2020-04-07 
04:53:40.000000000 +0200
@@ -6,7 +6,7 @@
 For example, on TravisCI::
 
     [tox]
-    envlist = py27,py34,py35,py36
+    envlist = py34,py35,py36,py37,py38
 
     [testenv]
     passenv = TRAVIS TRAVIS_*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/example/__init__.py 
new/coveralls-python-2.0.0/example/__init__.py
--- old/coveralls-python-1.11.1/example/__init__.py     2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/example/__init__.py      2020-04-07 
04:53:40.000000000 +0200
@@ -1 +0,0 @@
-# coding: utf-8
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/example/project.py 
new/coveralls-python-2.0.0/example/project.py
--- old/coveralls-python-1.11.1/example/project.py      2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/example/project.py       2020-04-07 
04:53:40.000000000 +0200
@@ -1,11 +1,8 @@
-# coding: utf-8
-
-
 def hello():
     print('world')
 
 
-class Foo(object):
+class Foo:
     """ Bar """
 
 
@@ -16,4 +13,4 @@
     if cond1:
         print('condition tested both ways')
     if cond2:
-        print('condition not tested both ways')
\ No newline at end of file
+        print('condition not tested both ways')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/example/runtests.py 
new/coveralls-python-2.0.0/example/runtests.py
--- old/coveralls-python-1.11.1/example/runtests.py     2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/example/runtests.py      2020-04-07 
04:53:40.000000000 +0200
@@ -1,7 +1,7 @@
-# coding: utf-8
-from project import hello, branch
+from project import branch
+from project import hello
 
 if __name__ == '__main__':
     hello()
     branch(False, True)
-    branch(True, True)
\ No newline at end of file
+    branch(True, True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/nonunicode/__init__.py 
new/coveralls-python-2.0.0/nonunicode/__init__.py
--- old/coveralls-python-1.11.1/nonunicode/__init__.py  2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/nonunicode/__init__.py   2020-04-07 
04:53:40.000000000 +0200
@@ -1 +0,0 @@
-# coding: utf-8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/setup.py 
new/coveralls-python-2.0.0/setup.py
--- old/coveralls-python-1.11.1/setup.py        2020-02-15 01:13:01.000000000 
+0100
+++ new/coveralls-python-2.0.0/setup.py 2020-04-07 04:53:40.000000000 +0200
@@ -9,7 +9,7 @@
 DESCRIPTION = open('README.rst').read()
 
 VERSION = None
-with open(VERSION_FILE, 'r') as f:
+with open(VERSION_FILE) as f:
     VERSION = f.read().split()[2][1:-1]
 
 
@@ -32,17 +32,15 @@
             'coveralls = coveralls.cli:main',
         ],
     },
+    python_requires='>= 3.5',
     install_requires=[
-        'coverage>=3.6,<6.0',
+        'coverage>=4.1,<6.0',
         'docopt>=0.6.1',
         'requests>=1.0.0',
     ],
     tests_require=['mock', 'pytest'],
     extras_require={
-        # N.B. PyYAML 5.3 dropped support for Python 3.4... which we should
-        # also do...
-        'yaml': ['PyYAML>=3.10,<5.3'],
-        ':python_version < "3"': ['urllib3[secure]'],
+        'yaml': ['PyYAML>=3.10'],
     },
     classifiers=[
         'Development Status :: 5 - Production/Stable',
@@ -51,8 +49,6 @@
         'License :: OSI Approved :: MIT License',
         'Operating System :: OS Independent',
         'Programming Language :: Python',
-        'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/__init__.py 
new/coveralls-python-2.0.0/tests/__init__.py
--- old/coveralls-python-1.11.1/tests/__init__.py       2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/__init__.py        2020-04-07 
04:53:40.000000000 +0200
@@ -1 +0,0 @@
-# coding: utf8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/api/__init__.py 
new/coveralls-python-2.0.0/tests/api/__init__.py
--- old/coveralls-python-1.11.1/tests/api/__init__.py   2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/api/__init__.py    2020-04-07 
04:53:40.000000000 +0200
@@ -1 +0,0 @@
-# coding: utf8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/coveralls-python-1.11.1/tests/api/configuration_test.py 
new/coveralls-python-2.0.0/tests/api/configuration_test.py
--- old/coveralls-python-1.11.1/tests/api/configuration_test.py 2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/api/configuration_test.py  2020-04-07 
04:53:40.000000000 +0200
@@ -1,4 +1,3 @@
-# coding: utf-8
 # pylint: disable=no-self-use
 import os
 import shutil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/api/encoding_test.py 
new/coveralls-python-2.0.0/tests/api/encoding_test.py
--- old/coveralls-python-1.11.1/tests/api/encoding_test.py      2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/api/encoding_test.py       2020-04-07 
04:53:40.000000000 +0200
@@ -1,12 +1,6 @@
-# coding: utf-8
 import json
-import logging
 import os
 import subprocess
-import sys
-
-import coverage
-import pytest
 
 from coveralls import Coveralls
 
@@ -27,23 +21,6 @@
     assert expected_json_part in actual_json
 
 
[email protected](sys.version_info >= (3, 0), reason='python 3 not affected')
[email protected](coverage.__version__.startswith('4.'),
-                    reason='coverage 4 not affected')
-def test_malformed_encoding_declaration(capfd):
-    os.chdir(NONUNICODE_DIR)
-    subprocess.call(['coverage', 'run', 'malformed.py'], cwd=NONUNICODE_DIR)
-
-    logging.getLogger('coveralls').addHandler(logging.StreamHandler())
-    assert Coveralls(repo_token='xxx').get_coverage() == []
-
-    _, err = capfd.readouterr()
-    assert 'Source file malformed.py can not be properly decoded' in err
-
-
[email protected](sys.version_info < (3, 0), reason='python 2 fails')
[email protected](coverage.__version__.startswith('3.'),
-                    reason='coverage 3 fails')
 def test_malformed_encoding_declaration_py3_or_coverage4():
     os.chdir(NONUNICODE_DIR)
     subprocess.call(['coverage', 'run', 'malformed.py'], cwd=NONUNICODE_DIR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/api/reporter_test.py 
new/coveralls-python-2.0.0/tests/api/reporter_test.py
--- old/coveralls-python-1.11.1/tests/api/reporter_test.py      2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/api/reporter_test.py       2020-04-07 
04:53:40.000000000 +0200
@@ -1,4 +1,3 @@
-# coding: utf-8
 # pylint: disable=no-self-use
 import os
 import subprocess
@@ -32,15 +31,15 @@
             pass
 
     def test_reporter(self):
-        subprocess.call(['coverage', 'run', 'runtests.py'], cwd=EXAMPLE_DIR)
+        subprocess.call(['coverage', 'run', '--omit=**/.tox/*',
+                         'runtests.py'], cwd=EXAMPLE_DIR)
         results = Coveralls(repo_token='xxx').get_coverage()
         assert len(results) == 2
 
         assert_coverage(results[0], {
-            'source': ('# coding: utf-8\n\n\n'
-                       'def hello():\n'
+            'source': ('def hello():\n'
                        '    print(\'world\')\n\n\n'
-                       'class Foo(object):\n'
+                       'class Foo:\n'
                        '    """ Bar """\n\n\n'
                        'def baz():\n'
                        '    print(\'this is not tested\')\n\n'
@@ -48,24 +47,24 @@
                        '    if cond1:\n'
                        '        print(\'condition tested both ways\')\n'
                        '    if cond2:\n'
-                       '        print(\'condition not tested both ways\')'),
+                       '        print(\'condition not tested both ways\')\n'),
             'name': 'project.py',
-            'coverage': [None, None, None, 1, 1, None, None, 1, None, None,
+            'coverage': [1, 1, None, None, 1, None, None,
                          None, 1, 0, None, 1, 1, 1, 1, 1]})
 
         assert_coverage(results[1], {
-            'source': ('# coding: utf-8\n'
-                       'from project import hello, branch\n\n'
+            'source': ('from project import branch\n'
+                       'from project import hello\n\n'
                        "if __name__ == '__main__':\n"
                        '    hello()\n'
                        '    branch(False, True)\n'
-                       '    branch(True, True)'),
+                       '    branch(True, True)\n'),
             'name': 'runtests.py',
-            'coverage': [None, 1, None, 1, 1, 1, 1]})
+            'coverage': [1, 1, None, 1, 1, 1, 1]})
 
     def test_reporter_with_branches(self):
-        subprocess.call(['coverage', 'run', '--branch', 'runtests.py'],
-                        cwd=EXAMPLE_DIR)
+        subprocess.call(['coverage', 'run', '--branch', '--omit=**/.tox/*',
+                         'runtests.py'], cwd=EXAMPLE_DIR)
         results = Coveralls(repo_token='xxx').get_coverage()
         assert len(results) == 2
 
@@ -74,10 +73,9 @@
         assert not len(results[1]['branches']) % 4
 
         assert_coverage(results[0], {
-            'source': ('# coding: utf-8\n\n\n'
-                       'def hello():\n'
+            'source': ('def hello():\n'
                        '    print(\'world\')\n\n\n'
-                       'class Foo(object):\n'
+                       'class Foo:\n'
                        '    """ Bar """\n\n\n'
                        'def baz():\n'
                        '    print(\'this is not tested\')\n\n'
@@ -85,28 +83,29 @@
                        '    if cond1:\n'
                        '        print(\'condition tested both ways\')\n'
                        '    if cond2:\n'
-                       '        print(\'condition not tested both ways\')'),
+                       '        print(\'condition not tested both ways\')\n'),
             'name': 'project.py',
-            'branches': [16, 0, 17, 1, 16, 0, 18, 1, 18, 0, 19, 1, 18, 0, 15,
+            'branches': [13, 0, 14, 1, 13, 0, 15, 1, 15, 0, 16, 1, 15, 0, 12,
                          0],
-            'coverage': [None, None, None, 1, 1, None, None, 1, None, None,
+            'coverage': [1, 1, None, None, 1, None, None,
                          None, 1, 0, None, 1, 1, 1, 1, 1]})
 
         assert_coverage(results[1], {
-            'source': ('# coding: utf-8\n'
-                       'from project import hello, branch\n\n'
+            'source': ('from project import branch\n'
+                       'from project import hello\n\n'
                        "if __name__ == '__main__':\n"
                        '    hello()\n'
                        '    branch(False, True)\n'
-                       '    branch(True, True)'),
+                       '    branch(True, True)\n'),
             'name': 'runtests.py',
-            'branches': [4, 0, 5, 1, 4, 0, 2, 0],
-            'coverage': [None, 1, None, 1, 1, 1, 1]})
+            'branches': [4, 0, 5, 1, 4, 0, 1, 0],
+            'coverage': [1, 1, None, 1, 1, 1, 1]})
 
     def test_missing_file(self):
         with open('extra.py', 'w') as f:
             f.write('print("Python rocks!")\n')
-        subprocess.call(['coverage', 'run', 'extra.py'], cwd=EXAMPLE_DIR)
+        subprocess.call(['coverage', 'run', '--omit=**/.tox/*',
+                         'extra.py'], cwd=EXAMPLE_DIR)
         try:
             os.remove('extra.py')
         except Exception:
@@ -116,7 +115,8 @@
     def test_not_python(self):
         with open('extra.py', 'w') as f:
             f.write('print("Python rocks!")\n')
-        subprocess.call(['coverage', 'run', 'extra.py'], cwd=EXAMPLE_DIR)
+        subprocess.call(['coverage', 'run', '--omit=**/.tox/*',
+                         'extra.py'], cwd=EXAMPLE_DIR)
         with open('extra.py', 'w') as f:
             f.write("<h1>This isn't python!</h1>\n")
         assert Coveralls(repo_token='xxx').get_coverage() == []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/api/wear_test.py 
new/coveralls-python-2.0.0/tests/api/wear_test.py
--- old/coveralls-python-1.11.1/tests/api/wear_test.py  2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/api/wear_test.py   2020-04-07 
04:53:40.000000000 +0200
@@ -1,4 +1,3 @@
-# coding: utf-8
 # pylint: disable=no-self-use
 import json
 import os
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/api_test.py 
new/coveralls-python-2.0.0/tests/api_test.py
--- old/coveralls-python-1.11.1/tests/api_test.py       2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/api_test.py        2020-04-07 
04:53:40.000000000 +0200
@@ -1,8 +1,8 @@
-# coding: utf-8
 import json
 import os
 
 import mock
+
 from coveralls import Coveralls
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/cli_test.py 
new/coveralls-python-2.0.0/tests/cli_test.py
--- old/coveralls-python-1.11.1/tests/cli_test.py       2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/cli_test.py        2020-04-07 
04:53:40.000000000 +0200
@@ -1,4 +1,3 @@
-# coding: utf-8
 import os
 
 import mock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/conftest.py 
new/coveralls-python-2.0.0/tests/conftest.py
--- old/coveralls-python-1.11.1/tests/conftest.py       1970-01-01 
01:00:00.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/conftest.py        2020-04-07 
04:53:40.000000000 +0200
@@ -0,0 +1,12 @@
+import os
+
+import pytest
+
+
[email protected](scope='session', autouse=True)
+def nuke_coverage():
+    for folder in ('.', './example', './nonunicode'):
+        try:
+            os.remove('{}/.coverage'.format(folder))
+        except FileNotFoundError:
+            pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tests/git_test.py 
new/coveralls-python-2.0.0/tests/git_test.py
--- old/coveralls-python-1.11.1/tests/git_test.py       2020-02-15 
01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tests/git_test.py        2020-04-07 
04:53:40.000000000 +0200
@@ -1,7 +1,4 @@
-# coding: utf-8
 # pylint: disable=no-self-use
-from __future__ import unicode_literals
-
 import os
 import re
 import shutil
@@ -77,28 +74,17 @@
         assert coveralls.git.gitlog('%s') == GIT_COMMIT_MSG
 
 
-def correct_encoding_for_envvars(value):
-    """
-    Env vars are unicode in Python 3 but bytes in Python 2
-    """
-    try:
-        str(value)
-    except UnicodeEncodeError:
-        value = value.encode('utf8')
-    return value
-
-
 class GitInfoTestEnvVars(unittest.TestCase):
     @mock.patch.dict(os.environ, {
         'GIT_ID': '5e837ce92220be64821128a70f6093f836dd2c05',
         'GIT_BRANCH': 'master',
-        'GIT_AUTHOR_NAME': correct_encoding_for_envvars(GIT_NAME),
-        'GIT_AUTHOR_EMAIL': correct_encoding_for_envvars(GIT_EMAIL),
-        'GIT_COMMITTER_NAME': correct_encoding_for_envvars(GIT_NAME),
-        'GIT_COMMITTER_EMAIL': correct_encoding_for_envvars(GIT_EMAIL),
-        'GIT_MESSAGE': correct_encoding_for_envvars(GIT_COMMIT_MSG),
-        'GIT_URL': correct_encoding_for_envvars(GIT_URL),
-        'GIT_REMOTE': correct_encoding_for_envvars(GIT_REMOTE),
+        'GIT_AUTHOR_NAME': GIT_NAME,
+        'GIT_AUTHOR_EMAIL': GIT_EMAIL,
+        'GIT_COMMITTER_NAME': GIT_NAME,
+        'GIT_COMMITTER_EMAIL': GIT_EMAIL,
+        'GIT_MESSAGE': GIT_COMMIT_MSG,
+        'GIT_URL': GIT_URL,
+        'GIT_REMOTE': GIT_REMOTE,
     }, clear=True)
     def test_gitlog_envvars(self):
         git_info = coveralls.git.git_info()
@@ -108,15 +94,15 @@
         assert git_info == {
             'git': {
                 'head': {
-                    'committer_email': correct_encoding_for_envvars(GIT_EMAIL),
-                    'author_email': correct_encoding_for_envvars(GIT_EMAIL),
-                    'author_name': correct_encoding_for_envvars(GIT_NAME),
-                    'message': correct_encoding_for_envvars(GIT_COMMIT_MSG),
-                    'committer_name': correct_encoding_for_envvars(GIT_NAME),
+                    'committer_email': GIT_EMAIL,
+                    'author_email': GIT_EMAIL,
+                    'author_name': GIT_NAME,
+                    'message': GIT_COMMIT_MSG,
+                    'committer_name': GIT_NAME,
                 },
                 'remotes': [{
-                    'url': correct_encoding_for_envvars(GIT_URL),
-                    'name': correct_encoding_for_envvars(GIT_REMOTE),
+                    'url': GIT_URL,
+                    'name': GIT_REMOTE,
                 }],
                 'branch': 'master',
             },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/coveralls-python-1.11.1/tox.ini 
new/coveralls-python-2.0.0/tox.ini
--- old/coveralls-python-1.11.1/tox.ini 2020-02-15 01:13:01.000000000 +0100
+++ new/coveralls-python-2.0.0/tox.ini  2020-04-07 04:53:40.000000000 +0200
@@ -1,9 +1,8 @@
 [tox]
-envlist = 
py{27,34,35,py}-cov{3,4,41}-{default,pyyaml},py{36,37,38,py3}-cov{41,5}-{default,pyyaml}
+envlist = 
py35-cov41-{default,pyyaml},py{36,37,38,39,py3}-cov{41,5}-{default,pyyaml}
 
 [gh-actions]
 python =
-    2.7: py27
     3.5: py35
     3.6: py36-cov5
     3.7: py37-cov5
@@ -16,8 +15,6 @@
     mock
     pytest
     pyyaml: PyYAML>=3.10,<5.3
-    cov3: coverage<4.0
-    cov4: coverage>=4.0,<4.1
     cov41: coverage>=4.1,<5.0
     cov5: coverage>=5.0,<6.0
 commands =


Reply via email to