commit: 0a46774d2466d398fda32868b98a58854850a288 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Thu Feb 15 15:00:46 2024 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Thu Feb 15 15:04:02 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a46774d
dev-python/openapi-core: Bump to 0.19.0 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/openapi-core/Manifest | 1 + .../files/openapi-core-0.19.0-pytest-8.patch | 92 ++++++++++++++++++++++ dev-python/openapi-core/openapi-core-0.19.0.ebuild | 76 ++++++++++++++++++ 3 files changed, 169 insertions(+) diff --git a/dev-python/openapi-core/Manifest b/dev-python/openapi-core/Manifest index 650cc1660608..4430496d97ee 100644 --- a/dev-python/openapi-core/Manifest +++ b/dev-python/openapi-core/Manifest @@ -1 +1,2 @@ DIST openapi_core-0.18.2.tar.gz 84444 BLAKE2B bb05ba86eff3c70c780f1919a29b93f2137983318834c51204d7ad1094fc645d2dbcef93d92d03096826688fdfe1811c551eee68995fd46739314c2e4bc77cfc SHA512 552109c095c840a46759a54e247a3ac2d8cc36707ba89815740eef4b7fb421bd489929543892341fd89a578bff4043c8c81302fddaa1efe125238e050f152c27 +DIST openapi_core-0.19.0.tar.gz 105815 BLAKE2B 25036e98dbf4d572e77eb5dcc00909df1cd2d7b7c37bb691c403df2a48273cc2dd4150c99c526eacc709785f4ec9c525de53e7f613f10b15177fc1ff90ce76fe SHA512 3a94170f8ab6a47188c693545be9d2cd965d2479c838a8644d6218f9f46b54fdb94e0550ea5626e5ba58920419b7c700d26b2e6dd6a55afeb73778f582a645e0 diff --git a/dev-python/openapi-core/files/openapi-core-0.19.0-pytest-8.patch b/dev-python/openapi-core/files/openapi-core-0.19.0-pytest-8.patch new file mode 100644 index 000000000000..78fb19897560 --- /dev/null +++ b/dev-python/openapi-core/files/openapi-core-0.19.0-pytest-8.patch @@ -0,0 +1,92 @@ +From 36da765cfc27cd6bda5c2773e3b3664a6473cd3b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]> +Date: Thu, 15 Feb 2024 15:53:50 +0100 +Subject: [PATCH] Remove spurious `pytest.warns()` to fix pytest-8 + compatibility + +Remove the spurious `pytest.warns()` contexts within `pytest.raises()` +in `test_shortcuts`, in order to fix compatibility with pytest-8.0.0. +Prior to this version, the exception raised caused these assertions +to be ignored entirely. This is fixed in pytest-8.0.0, and the tests +start failing because the warning is never raised prior +to the exception. + +Fixes #789 +--- + tests/unit/test_shortcuts.py | 21 +++++++-------------- + 1 file changed, 7 insertions(+), 14 deletions(-) + +diff --git a/tests/unit/test_shortcuts.py b/tests/unit/test_shortcuts.py +index 0dd1865..9a3f36c 100644 +--- a/tests/unit/test_shortcuts.py ++++ b/tests/unit/test_shortcuts.py +@@ -423,8 +423,7 @@ class TestUnmarshalResponse: + mock_unmarshal.return_value = ResultMock(error_to_raise=ValueError) + + with pytest.raises(ValueError): +- with pytest.warns(DeprecationWarning): +- unmarshal_response(request, response, spec=spec_v31) ++ unmarshal_response(request, response, spec=spec_v31) + + mock_unmarshal.assert_called_once_with(request, response) + +@@ -597,15 +596,13 @@ class TestValidateRequest: + request = mock.Mock(spec=Request) + + with pytest.raises(SpecError): +- with pytest.warns(DeprecationWarning): +- validate_request(request, spec=spec_invalid) ++ validate_request(request, spec=spec_invalid) + + def test_spec_not_detected(self, spec_v20): + request = mock.Mock(spec=Request) + + with pytest.raises(SpecError): +- with pytest.warns(DeprecationWarning): +- validate_request(request, spec=spec_v20) ++ validate_request(request, spec=spec_v20) + + def test_request_type_invalid(self, spec_v31): + request = mock.sentinel.request +@@ -733,8 +730,7 @@ class TestValidateRequest: + request = mock.Mock(spec=WebhookRequest) + + with pytest.raises(SpecError): +- with pytest.warns(DeprecationWarning): +- validate_request(request, spec=spec_v30) ++ validate_request(request, spec=spec_v30) + + @mock.patch( + "openapi_core.validation.request.validators.V31WebhookRequestValidator." +@@ -889,16 +885,14 @@ class TestValidateResponse: + response = mock.Mock(spec=Response) + + with pytest.raises(SpecError): +- with pytest.warns(DeprecationWarning): +- validate_response(request, response, spec=spec_invalid) ++ validate_response(request, response, spec=spec_invalid) + + def test_spec_not_supported(self, spec_v20): + request = mock.Mock(spec=Request) + response = mock.Mock(spec=Response) + + with pytest.raises(SpecError): +- with pytest.warns(DeprecationWarning): +- validate_response(request, response, spec=spec_v20) ++ validate_response(request, response, spec=spec_v20) + + def test_request_type_invalid(self, spec_v31): + request = mock.sentinel.request +@@ -965,8 +959,7 @@ class TestValidateResponse: + response = mock.Mock(spec=Response) + + with pytest.raises(SpecError): +- with pytest.warns(DeprecationWarning): +- validate_response(request, response, spec=spec_v30) ++ validate_response(request, response, spec=spec_v30) + + @mock.patch( + "openapi_core.validation.response.validators.V31WebhookResponseValidator." +-- +2.43.1 + diff --git a/dev-python/openapi-core/openapi-core-0.19.0.ebuild b/dev-python/openapi-core/openapi-core-0.19.0.ebuild new file mode 100644 index 000000000000..b28b323b6c47 --- /dev/null +++ b/dev-python/openapi-core/openapi-core-0.19.0.ebuild @@ -0,0 +1,76 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( pypy3 python3_{10..12} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Client-side and server-side support for the OpenAPI Specification v3" +HOMEPAGE=" + https://github.com/python-openapi/openapi-core/ + https://pypi.org/project/openapi-core/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + <dev-python/asgiref-4[${PYTHON_USEDEP}] + >=dev-python/asgiref-3.6.0[${PYTHON_USEDEP}] + dev-python/isodate[${PYTHON_USEDEP}] + <dev-python/jsonschema-5[${PYTHON_USEDEP}] + >=dev-python/jsonschema-4.17.3[${PYTHON_USEDEP}] + <dev-python/jsonschema-path-0.4[${PYTHON_USEDEP}] + >=dev-python/jsonschema-path-0.3.1[${PYTHON_USEDEP}] + dev-python/more-itertools[${PYTHON_USEDEP}] + dev-python/parse[${PYTHON_USEDEP}] + <dev-python/openapi-schema-validator-0.7[${PYTHON_USEDEP}] + >=dev-python/openapi-schema-validator-0.6.0[${PYTHON_USEDEP}] + <dev-python/openapi-spec-validator-0.8[${PYTHON_USEDEP}] + >=dev-python/openapi-spec-validator-0.7.1[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] +" + +BDEPEND=" + test? ( + >=dev-python/aiohttp-3.8.4[${PYTHON_USEDEP}] + >=dev-python/aioitertools-0.11.0[${PYTHON_USEDEP}] + dev-python/flask[${PYTHON_USEDEP}] + >=dev-python/httpx-0.24.0[${PYTHON_USEDEP}] + >=dev-python/pytest-aiohttp-1.0.4[${PYTHON_USEDEP}] + dev-python/responses[${PYTHON_USEDEP}] + >=dev-python/starlette-0.26.1[${PYTHON_USEDEP}] + dev-python/strict-rfc3339[${PYTHON_USEDEP}] + dev-python/webob[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +EPYTEST_IGNORE=( + # missing dependendencies + tests/integration/contrib/falcon + tests/integration/contrib/fastapi + + # TODO: these tests fail to collect + tests/integration/validation/test_security_override.py + tests/integration/validation/test_read_only_write_only.py + + # unhappy about modern django + tests/integration/contrib/django/test_django_project.py + tests/unit/contrib/django/test_django.py +) + +src_prepare() { + local PATCHES=( + # https://github.com/python-openapi/openapi-core/pull/790 + "${FILESDIR}/${P}-pytest-8.patch" + ) + + sed -i -e '/--cov/d' pyproject.toml || die + distutils-r1_src_prepare +}
