Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pytest-mypy for openSUSE:Factory checked in at 2023-02-08 17:20:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pytest-mypy (Old) and /work/SRC/openSUSE:Factory/.python-pytest-mypy.new.4462 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-mypy" Wed Feb 8 17:20:17 2023 rev:2 rq:1063711 version:0.10.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pytest-mypy/python-pytest-mypy.changes 2022-10-18 12:45:22.789775637 +0200 +++ /work/SRC/openSUSE:Factory/.python-pytest-mypy.new.4462/python-pytest-mypy.changes 2023-02-08 17:20:41.638061209 +0100 @@ -1,0 +2,9 @@ +Wed Feb 8 03:53:11 UTC 2023 - Steve Kowalik <steven.kowa...@suse.com> + +- Update to 0.10.3: + * Stop failing if mypy only produces notes. + * Update and loosen [build-system] requirements. + * Work around python/mypy#14042. + * Add support for Python 3.11. + +------------------------------------------------------------------- Old: ---- pytest-mypy-0.10.0.tar.gz New: ---- pytest-mypy-0.10.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pytest-mypy.spec ++++++ --- /var/tmp/diff_new_pack.leISPg/_old 2023-02-08 17:20:42.186063899 +0100 +++ /var/tmp/diff_new_pack.leISPg/_new 2023-02-08 17:20:42.190063919 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-pytest-mypy # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,10 +16,8 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} -%define skip_python2 1 Name: python-pytest-mypy -Version: 0.10.0 +Version: 0.10.3 Release: 0 Summary: Mypy static type checker plugin for Pytest License: MIT ++++++ pytest-mypy-0.10.0.tar.gz -> pytest-mypy-0.10.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/.github/workflows/publication.yml new/pytest-mypy-0.10.3/.github/workflows/publication.yml --- old/pytest-mypy-0.10.0/.github/workflows/publication.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/pytest-mypy-0.10.3/.github/workflows/publication.yml 2022-12-18 19:46:44.000000000 +0100 @@ -0,0 +1,17 @@ +name: Publication +on: + release: + types: [created] +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.8' + - run: python -m pip install --upgrade tox-gh-actions + - env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: tox -e publish -- upload diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/.github/workflows/validation.yml new/pytest-mypy-0.10.3/.github/workflows/validation.yml --- old/pytest-mypy-0.10.0/.github/workflows/validation.yml 2022-09-25 23:25:03.000000000 +0200 +++ new/pytest-mypy-0.10.3/.github/workflows/validation.yml 2022-12-18 19:46:44.000000000 +0100 @@ -2,13 +2,13 @@ on: [push, pull_request] jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 strategy: matrix: - python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"] steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - run: python -m pip install --upgrade tox-gh-actions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/.travis.yml new/pytest-mypy-0.10.3/.travis.yml --- old/pytest-mypy-0.10.0/.travis.yml 2022-09-25 23:25:33.000000000 +0200 +++ new/pytest-mypy-0.10.3/.travis.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,16 +0,0 @@ -dist: xenial -language: python -python: '3.8' -install: pip install tox -script: tox -e publish -deploy: - provider: pypi - user: __token__ - password: - secure: DkOVCB/fNUCjfeuS9sLhQ9bGeBAtpPxlFFB2fxgpYCCFtASk6cjQeCgDCdcntq5iAJAO2KamQS57LVO6sx6vI9YBBlBt0jLq7O+wWq8TU0jIt+4YXIQ0MDXQArCdBNuCq7ZMx23INXSPoIpiNsb8UaLTh5airukPDMWlUOX/1Y3i8jatvxWHmp0pjC+oXdD7QuzT1dDkuu/PlWXVtlbvlRaoSClDnw6ySkDuxzhsuXJ9XjcXCkYoyTA6HrZzAkJXOqOioTUtjS8XHu21VL12w3f3ABxHcFVAOH2qS47z9UzwgtX0aM2Qk0TG0nD6B3VL9WMhQgUC3gsE0rNC61w+ijL11c73MPon6kjsqBmNwq+QVcc6jIPDELP+eeaShLhx6khnNo7poGvl9HH3T/arhzFa5hB8je55gzlccmwjGUCBISDHVD59AwY15AQV92utnmRRU3e8Taw/hh5FOJE53Z5ux2Fd4N6mwEZt4MYh7+nnBckatKFjuzJ84YQACZK0u3lMeZaXIqrQLVVDZE3eR5WhuJvWHN87DJ6UPnmNxad0Fc90+N7SZgs38iFGwIkdFWKxgH1IDegW11NS3lJXngwe/3YJ24pMJu72R5X0p89F2ULoqORM1W73VzeOE6uGK0F2gVDEhAEQXhXvzho0kod8lPsjP5AnHEm7hSrK6xE= - distributions: sdist bdist_wheel - skip_existing: true - on: - repo: dbader/pytest-mypy - tags: true - python: '3.8' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/PKG-INFO new/pytest-mypy-0.10.3/PKG-INFO --- old/pytest-mypy-0.10.0/PKG-INFO 2022-09-27 22:30:30.750872900 +0200 +++ new/pytest-mypy-0.10.3/PKG-INFO 2022-12-18 19:47:16.080086000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pytest-mypy -Version: 0.10.0 +Version: 0.10.3 Summary: Mypy static type checker plugin for Pytest Home-page: https://github.com/dbader/pytest-mypy Author: Daniel Bader @@ -8,84 +8,6 @@ Maintainer: David Tucker Maintainer-email: da...@tucker.name License: MIT -Description: pytest-mypy - =================================== - - Mypy static type checker plugin for pytest - - .. image:: https://img.shields.io/pypi/v/pytest-mypy.svg - :target: https://pypi.org/project/pytest-mypy/ - :alt: See Latest Release on PyPI - - Features - -------- - - * Runs the mypy static type checker on your source files as part of your pytest test runs. - * Does for `mypy`_ what the `pytest-flake8`_ plugin does for `flake8`_. - * This is a work in progress â pull requests appreciated. - - - Installation - ------------ - - You can install "pytest-mypy" via `pip`_ from `PyPI`_: - - .. code-block:: bash - - $ pip install pytest-mypy - - Usage - ----- - - You can enable pytest-mypy with the ``--mypy`` flag: - - .. code-block:: bash - - $ py.test --mypy test_*.py - - Mypy supports `reading configuration settings <http://mypy.readthedocs.io/en/latest/config_file.html>`_ from a ``mypy.ini`` file. - Alternatively, the plugin can be configured in a ``conftest.py`` to invoke mypy with extra options: - - .. code-block:: python - - def pytest_configure(config): - plugin = config.pluginmanager.getplugin('mypy') - plugin.mypy_argv.append('--check-untyped-defs') - - You can restrict your test run to only perform mypy checks and not any other tests by using the `-m` option: - - .. code-block:: bash - - py.test --mypy -m mypy test_*.py - - License - ------- - - Distributed under the terms of the `MIT`_ license, "pytest-mypy" is free and open source software - - Issues - ------ - - If you encounter any problems, please `file an issue`_ along with a detailed description. - - Meta - ---- - - Daniel Bader â `@dbader_org`_ â https://dbader.org â m...@dbader.org - - https://github.com/dbader/pytest-mypy - - - .. _`MIT`: http://opensource.org/licenses/MIT - .. _`file an issue`: https://github.com/dbader/pytest-mypy/issues - .. _`pip`: https://pypi.python.org/pypi/pip/ - .. _`PyPI`: https://pypi.python.org/pypi - .. _`mypy`: http://mypy-lang.org/ - .. _`pytest-flake8`: https://pypi.python.org/pypi/pytest-flake8 - .. _`flake8`: https://pypi.python.org/pypi/flake8 - .. _`@dbader_org`: https://twitter.com/dbader_org - -Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Framework :: Pytest Classifier: Intended Audience :: Developers @@ -102,3 +24,81 @@ Classifier: License :: OSI Approved :: MIT License Requires-Python: >=3.6 Description-Content-Type: text/x-rst +License-File: LICENSE + +pytest-mypy +=================================== + +Mypy static type checker plugin for pytest + +.. image:: https://img.shields.io/pypi/v/pytest-mypy.svg + :target: https://pypi.org/project/pytest-mypy/ + :alt: See Latest Release on PyPI + +Features +-------- + +* Runs the mypy static type checker on your source files as part of your pytest test runs. +* Does for `mypy`_ what the `pytest-flake8`_ plugin does for `flake8`_. +* This is a work in progress â pull requests appreciated. + + +Installation +------------ + +You can install "pytest-mypy" via `pip`_ from `PyPI`_: + +.. code-block:: bash + + $ pip install pytest-mypy + +Usage +----- + +You can enable pytest-mypy with the ``--mypy`` flag: + +.. code-block:: bash + + $ py.test --mypy test_*.py + +Mypy supports `reading configuration settings <http://mypy.readthedocs.io/en/latest/config_file.html>`_ from a ``mypy.ini`` file. +Alternatively, the plugin can be configured in a ``conftest.py`` to invoke mypy with extra options: + +.. code-block:: python + + def pytest_configure(config): + plugin = config.pluginmanager.getplugin('mypy') + plugin.mypy_argv.append('--check-untyped-defs') + +You can restrict your test run to only perform mypy checks and not any other tests by using the `-m` option: + +.. code-block:: bash + + py.test --mypy -m mypy test_*.py + +License +------- + +Distributed under the terms of the `MIT`_ license, "pytest-mypy" is free and open source software + +Issues +------ + +If you encounter any problems, please `file an issue`_ along with a detailed description. + +Meta +---- + +Daniel Bader â `@dbader_org`_ â https://dbader.org â m...@dbader.org + +https://github.com/dbader/pytest-mypy + + +.. _`MIT`: http://opensource.org/licenses/MIT +.. _`file an issue`: https://github.com/dbader/pytest-mypy/issues +.. _`pip`: https://pypi.python.org/pypi/pip/ +.. _`PyPI`: https://pypi.python.org/pypi +.. _`mypy`: http://mypy-lang.org/ +.. _`pytest-flake8`: https://pypi.python.org/pypi/pytest-flake8 +.. _`flake8`: https://pypi.python.org/pypi/flake8 +.. _`@dbader_org`: https://twitter.com/dbader_org diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/changelog.md new/pytest-mypy-0.10.3/changelog.md --- old/pytest-mypy-0.10.0/changelog.md 2022-09-25 23:25:03.000000000 +0200 +++ new/pytest-mypy-0.10.3/changelog.md 2022-12-18 19:46:44.000000000 +0100 @@ -1,5 +1,15 @@ # Changelog +## [0.10.3](https://github.com/dbader/pytest-mypy/milestone/21) +* Stop failing if mypy only produces notes. + +## [0.10.2](https://github.com/dbader/pytest-mypy/milestone/20) +* Update and loosen [build-system] requirements. + +## [0.10.1](https://github.com/dbader/pytest-mypy/milestone/19) +* Work around https://github.com/python/mypy/issues/14042. +* Add support for Python 3.11. + ## [0.10.0](https://github.com/dbader/pytest-mypy/milestone/18) * Drop support for python<3.6. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/pyproject.toml new/pytest-mypy-0.10.3/pyproject.toml --- old/pytest-mypy-0.10.0/pyproject.toml 2022-09-25 23:25:26.000000000 +0200 +++ new/pytest-mypy-0.10.3/pyproject.toml 2022-12-18 19:46:44.000000000 +0100 @@ -1,5 +1,5 @@ [build-system] -requires = ['setuptools ~= 50.3.0', 'setuptools-scm[toml] ~= 5.0.0', 'wheel ~= 0.36.0'] -build-backend = 'setuptools.build_meta' +requires = ["setuptools >= 59.6", "setuptools-scm[toml] >= 6.4", "wheel >= 0.37.1"] +build-backend = "setuptools.build_meta" [tool.setuptools_scm] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/setup.py new/pytest-mypy-0.10.3/setup.py --- old/pytest-mypy-0.10.0/setup.py 2022-09-25 23:25:31.000000000 +0200 +++ new/pytest-mypy-0.10.3/setup.py 2022-12-18 19:46:44.000000000 +0100 @@ -38,7 +38,8 @@ 'pytest>=6.2; python_version>="3.10"', 'mypy>=0.500; python_version<"3.8"', 'mypy>=0.700; python_version>="3.8" and python_version<"3.9"', - 'mypy>=0.780; python_version>="3.9"', + 'mypy>=0.780; python_version>="3.9" and python_version<"3.11"', + 'mypy>=0.900; python_version>="3.11"', ], classifiers=[ "Development Status :: 4 - Beta", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/src/pytest_mypy.egg-info/PKG-INFO new/pytest-mypy-0.10.3/src/pytest_mypy.egg-info/PKG-INFO --- old/pytest-mypy-0.10.0/src/pytest_mypy.egg-info/PKG-INFO 2022-09-27 22:30:30.000000000 +0200 +++ new/pytest-mypy-0.10.3/src/pytest_mypy.egg-info/PKG-INFO 2022-12-18 19:47:16.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pytest-mypy -Version: 0.10.0 +Version: 0.10.3 Summary: Mypy static type checker plugin for Pytest Home-page: https://github.com/dbader/pytest-mypy Author: Daniel Bader @@ -8,84 +8,6 @@ Maintainer: David Tucker Maintainer-email: da...@tucker.name License: MIT -Description: pytest-mypy - =================================== - - Mypy static type checker plugin for pytest - - .. image:: https://img.shields.io/pypi/v/pytest-mypy.svg - :target: https://pypi.org/project/pytest-mypy/ - :alt: See Latest Release on PyPI - - Features - -------- - - * Runs the mypy static type checker on your source files as part of your pytest test runs. - * Does for `mypy`_ what the `pytest-flake8`_ plugin does for `flake8`_. - * This is a work in progress â pull requests appreciated. - - - Installation - ------------ - - You can install "pytest-mypy" via `pip`_ from `PyPI`_: - - .. code-block:: bash - - $ pip install pytest-mypy - - Usage - ----- - - You can enable pytest-mypy with the ``--mypy`` flag: - - .. code-block:: bash - - $ py.test --mypy test_*.py - - Mypy supports `reading configuration settings <http://mypy.readthedocs.io/en/latest/config_file.html>`_ from a ``mypy.ini`` file. - Alternatively, the plugin can be configured in a ``conftest.py`` to invoke mypy with extra options: - - .. code-block:: python - - def pytest_configure(config): - plugin = config.pluginmanager.getplugin('mypy') - plugin.mypy_argv.append('--check-untyped-defs') - - You can restrict your test run to only perform mypy checks and not any other tests by using the `-m` option: - - .. code-block:: bash - - py.test --mypy -m mypy test_*.py - - License - ------- - - Distributed under the terms of the `MIT`_ license, "pytest-mypy" is free and open source software - - Issues - ------ - - If you encounter any problems, please `file an issue`_ along with a detailed description. - - Meta - ---- - - Daniel Bader â `@dbader_org`_ â https://dbader.org â m...@dbader.org - - https://github.com/dbader/pytest-mypy - - - .. _`MIT`: http://opensource.org/licenses/MIT - .. _`file an issue`: https://github.com/dbader/pytest-mypy/issues - .. _`pip`: https://pypi.python.org/pypi/pip/ - .. _`PyPI`: https://pypi.python.org/pypi - .. _`mypy`: http://mypy-lang.org/ - .. _`pytest-flake8`: https://pypi.python.org/pypi/pytest-flake8 - .. _`flake8`: https://pypi.python.org/pypi/flake8 - .. _`@dbader_org`: https://twitter.com/dbader_org - -Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Framework :: Pytest Classifier: Intended Audience :: Developers @@ -102,3 +24,81 @@ Classifier: License :: OSI Approved :: MIT License Requires-Python: >=3.6 Description-Content-Type: text/x-rst +License-File: LICENSE + +pytest-mypy +=================================== + +Mypy static type checker plugin for pytest + +.. image:: https://img.shields.io/pypi/v/pytest-mypy.svg + :target: https://pypi.org/project/pytest-mypy/ + :alt: See Latest Release on PyPI + +Features +-------- + +* Runs the mypy static type checker on your source files as part of your pytest test runs. +* Does for `mypy`_ what the `pytest-flake8`_ plugin does for `flake8`_. +* This is a work in progress â pull requests appreciated. + + +Installation +------------ + +You can install "pytest-mypy" via `pip`_ from `PyPI`_: + +.. code-block:: bash + + $ pip install pytest-mypy + +Usage +----- + +You can enable pytest-mypy with the ``--mypy`` flag: + +.. code-block:: bash + + $ py.test --mypy test_*.py + +Mypy supports `reading configuration settings <http://mypy.readthedocs.io/en/latest/config_file.html>`_ from a ``mypy.ini`` file. +Alternatively, the plugin can be configured in a ``conftest.py`` to invoke mypy with extra options: + +.. code-block:: python + + def pytest_configure(config): + plugin = config.pluginmanager.getplugin('mypy') + plugin.mypy_argv.append('--check-untyped-defs') + +You can restrict your test run to only perform mypy checks and not any other tests by using the `-m` option: + +.. code-block:: bash + + py.test --mypy -m mypy test_*.py + +License +------- + +Distributed under the terms of the `MIT`_ license, "pytest-mypy" is free and open source software + +Issues +------ + +If you encounter any problems, please `file an issue`_ along with a detailed description. + +Meta +---- + +Daniel Bader â `@dbader_org`_ â https://dbader.org â m...@dbader.org + +https://github.com/dbader/pytest-mypy + + +.. _`MIT`: http://opensource.org/licenses/MIT +.. _`file an issue`: https://github.com/dbader/pytest-mypy/issues +.. _`pip`: https://pypi.python.org/pypi/pip/ +.. _`PyPI`: https://pypi.python.org/pypi +.. _`mypy`: http://mypy-lang.org/ +.. _`pytest-flake8`: https://pypi.python.org/pypi/pytest-flake8 +.. _`flake8`: https://pypi.python.org/pypi/flake8 +.. _`@dbader_org`: https://twitter.com/dbader_org diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/src/pytest_mypy.egg-info/SOURCES.txt new/pytest-mypy-0.10.3/src/pytest_mypy.egg-info/SOURCES.txt --- old/pytest-mypy-0.10.0/src/pytest_mypy.egg-info/SOURCES.txt 2022-09-27 22:30:30.000000000 +0200 +++ new/pytest-mypy-0.10.3/src/pytest_mypy.egg-info/SOURCES.txt 2022-12-18 19:47:16.000000000 +0100 @@ -1,5 +1,4 @@ .gitignore -.travis.yml CONTRIBUTING.rst LICENSE README.rst @@ -7,6 +6,7 @@ pyproject.toml setup.py tox.ini +.github/workflows/publication.yml .github/workflows/validation.yml src/pytest_mypy.py src/pytest_mypy.egg-info/PKG-INFO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/src/pytest_mypy.egg-info/entry_points.txt new/pytest-mypy-0.10.3/src/pytest_mypy.egg-info/entry_points.txt --- old/pytest-mypy-0.10.0/src/pytest_mypy.egg-info/entry_points.txt 2022-09-27 22:30:30.000000000 +0200 +++ new/pytest-mypy-0.10.3/src/pytest_mypy.egg-info/entry_points.txt 2022-12-18 19:47:16.000000000 +0100 @@ -1,3 +1,2 @@ [pytest11] mypy = pytest_mypy - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/src/pytest_mypy.egg-info/requires.txt new/pytest-mypy-0.10.3/src/pytest_mypy.egg-info/requires.txt --- old/pytest-mypy-0.10.0/src/pytest_mypy.egg-info/requires.txt 2022-09-27 22:30:30.000000000 +0200 +++ new/pytest-mypy-0.10.3/src/pytest_mypy.egg-info/requires.txt 2022-12-18 19:47:16.000000000 +0100 @@ -7,11 +7,14 @@ [:python_version >= "3.10"] pytest>=6.2 +[:python_version >= "3.11"] +mypy>=0.900 + [:python_version >= "3.6" and python_version < "3.10"] pytest>=4.6 [:python_version >= "3.8" and python_version < "3.9"] mypy>=0.700 -[:python_version >= "3.9"] +[:python_version >= "3.9" and python_version < "3.11"] mypy>=0.780 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/src/pytest_mypy.py new/pytest-mypy-0.10.3/src/pytest_mypy.py --- old/pytest-mypy-0.10.0/src/pytest_mypy.py 2022-09-27 22:30:05.000000000 +0200 +++ new/pytest-mypy-0.10.3/src/pytest_mypy.py 2022-12-18 19:46:44.000000000 +0100 @@ -5,6 +5,7 @@ from pathlib import Path from tempfile import NamedTemporaryFile from typing import Dict, List, Optional, TextIO +import warnings import attr from filelock import FileLock # type: ignore @@ -202,7 +203,13 @@ abspath = os.path.abspath(str(self.fspath)) errors = results.abspath_errors.get(abspath) if errors: - raise MypyError(file_error_formatter(self, results, errors)) + if not all( + error.partition(":")[2].partition(":")[0].strip() == "note" + for error in errors + ): + raise MypyError(file_error_formatter(self, results, errors)) + # This line cannot be easily covered on mypy < 0.990: + warnings.warn("\n" + "\n".join(errors), MypyWarning) # pragma: no cover def reportinfo(self): """Produce a heading for the test report.""" @@ -262,7 +269,9 @@ os.path.abspath(str(item.fspath)): [] for item in items } # type: MypyResults._abspath_errors_type - stdout, stderr, status = mypy.api.run(opts + list(abspath_errors)) + stdout, stderr, status = mypy.api.run( + opts + [os.path.relpath(key) for key in abspath_errors.keys()] + ) unmatched_lines = [] for line in stdout.split("\n"): @@ -312,6 +321,10 @@ """ +class MypyWarning(pytest.PytestWarning): + """A non-failure message regarding the mypy run.""" + + def pytest_terminal_summary(terminalreporter, config): """Report stderr and unrecognized lines from stdout.""" try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/tests/test_pytest_mypy.py new/pytest-mypy-0.10.3/tests/test_pytest_mypy.py --- old/pytest-mypy-0.10.0/tests/test_pytest_mypy.py 2022-09-26 00:55:52.000000000 +0200 +++ new/pytest-mypy-0.10.3/tests/test_pytest_mypy.py 2022-12-18 19:46:44.000000000 +0100 @@ -98,6 +98,33 @@ assert result.ret != 0 +def test_mypy_annotation_unchecked(testdir, xdist_args): + """Verify that annotation-unchecked warnings do not manifest as an error.""" + testdir.makepyfile( + """ + def pyfunc(x): + y: int = 2 + return x * y + """, + ) + result = testdir.runpytest_subprocess(*xdist_args) + result.assert_outcomes() + result = testdir.runpytest_subprocess("--mypy", *xdist_args) + mypy_file_checks = 1 + mypy_status_check = 1 + mypy_checks = mypy_file_checks + mypy_status_check + outcomes = {"passed": mypy_checks} + # mypy doesn't emit annotation-unchecked warnings until 0.990: + min_mypy_version = Version("0.990") + if MYPY_VERSION >= min_mypy_version and PYTEST_VERSION >= Version("7.0"): + # assert_outcomes does not support `warnings` until 7.x. + outcomes["warnings"] = 1 + result.assert_outcomes(**outcomes) + if MYPY_VERSION >= min_mypy_version: + result.stdout.fnmatch_lines(["*MypyWarning*"]) + assert result.ret == 0 + + def test_mypy_ignore_missings_imports(testdir, xdist_args): """ Verify that --mypy-ignore-missing-imports @@ -364,7 +391,7 @@ """, ) result = testdir.runpytest_subprocess("--mypy", *xdist_args) - result.stdout.fnmatch_lines(["1: error: Function is missing a type annotation"]) + result.stdout.fnmatch_lines(["1: error: Function is missing a type annotation*"]) assert result.ret != 0 @@ -402,7 +429,7 @@ child = testdir.spawn_pytest( "--mypy --looponfail " + str(pyfile), - expect_timeout=30.0, + expect_timeout=60.0, ) num_tests = 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-mypy-0.10.0/tox.ini new/pytest-mypy-0.10.3/tox.ini --- old/pytest-mypy-0.10.0/tox.ini 2022-09-25 23:46:38.000000000 +0200 +++ new/pytest-mypy-0.10.3/tox.ini 2022-12-18 19:46:44.000000000 +0100 @@ -8,6 +8,7 @@ py38-pytest{4.6, 5.0, 5.x, 6.0, 6.x, 7.0, 7.x}-mypy{0.71, 0.7x, 0.80, 0.8x, 0.90, 0.9x} py39-pytest{4.6, 5.0, 5.x, 6.0, 6.x, 7.0, 7.x}-mypy{0.78, 0.7x, 0.80, 0.8x, 0.90, 0.9x} py310-pytest{6.2, 6.x, 7.0, 7.x}-mypy{0.78, 0.7x, 0.80, 0.8x, 0.90, 0.9x} + py311-pytest{6.2, 6.x, 7.0, 7.x}-mypy{0.90, 0.9x} publish static @@ -18,6 +19,7 @@ 3.8: py38-pytest{4.6, 5.0, 5.x, 6.0, 6.x, 7.0, 7.x}-mypy{0.71, 0.7x, 0.80, 0.8x, 0.90, 0.9x}, publish, static 3.9: py39-pytest{4.6, 5.0, 5.x, 6.0, 6.x, 7.0, 7.x}-mypy{0.78, 0.7x, 0.80, 0.8x, 0.90, 0.9x} 3.10: py310-pytest{6.2, 6.x, 7.0, 7.x}-mypy{0.78, 0.7x, 0.80, 0.8x, 0.90, 0.9x} + 3.11: py311-pytest{6.2, 6.x, 7.0, 7.x}-mypy{0.90, 0.9x} [testenv] deps = @@ -71,6 +73,8 @@ mypy0.95: mypy >= 0.950, < 0.960 mypy0.96: mypy >= 0.960, < 0.970 mypy0.97: mypy >= 0.970, < 0.980 + mypy0.98: mypy >= 0.980, < 0.990 + mypy0.99: mypy >= 0.990, <= 0.999 mypy0.9x: mypy >= 0.900, <= 0.999 packaging ~= 21.3 @@ -87,8 +91,8 @@ [testenv:publish] passenv = TWINE_* deps = - build ~= 0.4.0 - twine ~= 3.4.0 + build[virtualenv] ~= 0.9.0 + twine ~= 4.0.0 commands = {envpython} -m build --outdir {distdir} . twine {posargs:check} {distdir}/*