diff options
Diffstat (limited to 'dev-python/openapi-core')
-rw-r--r-- | dev-python/openapi-core/Manifest | 3 | ||||
-rw-r--r-- | dev-python/openapi-core/files/openapi-core-0.19.0-pytest-8.patch | 92 | ||||
-rw-r--r-- | dev-python/openapi-core/openapi-core-0.19.0.ebuild | 76 |
3 files changed, 171 insertions, 0 deletions
diff --git a/dev-python/openapi-core/Manifest b/dev-python/openapi-core/Manifest index c2b0ca78c3e9..4913610e950a 100644 --- a/dev-python/openapi-core/Manifest +++ b/dev-python/openapi-core/Manifest @@ -1,3 +1,6 @@ +AUX openapi-core-0.19.0-pytest-8.patch 3669 BLAKE2B ee901d00716092d28bd4ceb501a8bb30330a72c49c5a6eb24def681a16eb1d689a785c176fe6bbff690a2927b8d4d55b086c3de180d719bfb78deda9a3dd7aea SHA512 2a266608dc446205f20d46ffc69339d1ceb3bb399cad3983518491e1cc7c77321f8c83692efa7f51abb69b15a583880cb2ab0dca828b2844ac500d3479edd2f6 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 EBUILD openapi-core-0.18.2.ebuild 2036 BLAKE2B 627470243f19362c2ea72a8c8b7c9ba8a74a7bc57f0e850342717ed4ca922b36f445ee6c7e8ae5d5304059cb48a0eaf294b8f3b0e196771e35304b3d52446ea3 SHA512 ca93952e8867a4531df97a14da727ff4d1285361f418a32c0710c23718a39778343dd5f14ab0a4746cac06c12afa5df0dfd03de7ba503980c7b2a94adfc7b90c +EBUILD openapi-core-0.19.0.ebuild 2226 BLAKE2B d28c3324faab06de7bd9e132e29777e502bfe50f8c1a13cb07d6790e9814f62b9ba09a71551b767ab8bf8831d080e394dec1d6c455b7341e36d94f2c69c10af0 SHA512 f0f01765aa1dc77c6d8d3506bfa67a1770f4ed968a301d3cc0eb0f85e28fdba12cf58477b57e72e8dfc250e7262c9ea75b2f4e7b289b06b23265603348de1fe3 MISC metadata.xml 385 BLAKE2B a19f5b70529b6f0575e1196f3ffe0a7f38595fe7b01b43119f0f89c41a9ab5d6992f424a10f345a7407d279736a6091918b9ba1ead0daa92c9d244e4b27e4a18 SHA512 a8a39c8958ad11de5eb6896a74b3bfcb27e95c74a984a362032e4703d86f2831b6559a96a8eef80a7ef89f4687da325b3748f36b1df649cd29c2acb1ea0c9969 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?= <mgorny@gentoo.org> +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..efa7161fd2d2 --- /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 ~arm ~riscv ~x86" + +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 +} |