commit: 7e113443e357510b6b42aad1e0f3ef6fa858ecac Author: Michael Mair-Keimberger <mmk <AT> levelnine <DOT> at> AuthorDate: Wed May 7 08:21:32 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri May 23 06:39:23 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e113443
net-misc/httpie: remove unused patch(es) Signed-off-by: Michael Mair-Keimberger <mmk <AT> levelnine.at> Part-of: https://github.com/gentoo/gentoo/pull/41972 Closes: https://github.com/gentoo/gentoo/pull/41972 Signed-off-by: Sam James <sam <AT> gentoo.org> .../files/httpie-3.2.1-pytest-fixtures.patch | 599 --------------------- 1 file changed, 599 deletions(-) diff --git a/net-misc/httpie/files/httpie-3.2.1-pytest-fixtures.patch b/net-misc/httpie/files/httpie-3.2.1-pytest-fixtures.patch deleted file mode 100644 index be3dc48d16b7..000000000000 --- a/net-misc/httpie/files/httpie-3.2.1-pytest-fixtures.patch +++ /dev/null @@ -1,599 +0,0 @@ -https://github.com/httpie/cli/commit/3524ccf0baa9f2b3029368ab07ba5f64e62dcb1f -https://github.com/httpie/cli/commit/db16bbee961ceb93b7831fe1ec44a72d56a33e38 - -From 3524ccf0baa9f2b3029368ab07ba5f64e62dcb1f Mon Sep 17 00:00:00 2001 -From: Jakub Roztocil <[email protected]> -Date: Mon, 4 Mar 2024 16:27:52 +0100 -Subject: [PATCH] Drop dependency on the abandoned python-lazy-fixture - ---- a/setup.py -+++ b/setup.py -@@ -11,7 +11,6 @@ - tests_require = [ - 'pytest', - 'pytest-httpbin>=0.0.6', -- 'pytest-lazy-fixture>=0.0.6', - 'responses', - 'pytest-mock', - 'werkzeug<2.1.0' ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -3,14 +3,14 @@ - import pytest - from pytest_httpbin import certs - --from .utils import ( # noqa -+from .utils import ( # noqa - HTTPBIN_WITH_CHUNKED_SUPPORT_DOMAIN, - HTTPBIN_WITH_CHUNKED_SUPPORT, - REMOTE_HTTPBIN_DOMAIN, - IS_PYOPENSSL, - mock_env - ) --from .utils.plugins_cli import ( # noqa -+from .utils.plugins_cli import ( # noqa - broken_plugin, - dummy_plugin, - dummy_plugins, -@@ -18,7 +18,9 @@ - httpie_plugins_success, - interface, - ) --from .utils.http_server import http_server, localhost_http_server # noqa -+from .utils.http_server import http_server, localhost_http_server # noqa -+# noinspection PyUnresolvedReferences -+from .fixtures import pytest_lazy_fixture - - - @pytest.fixture(scope='function', autouse=True) ---- /dev/null -+++ b/tests/fixtures/pytest_lazy_fixture.py -@@ -0,0 +1,99 @@ -+""" -+Replacement for the abandoned `pytest.lazy_fixture` <https://github.com/TvoroG/pytest-lazy-fixture> -+ -+Based on <https://github.com/TvoroG/pytest-lazy-fixture/issues/65#issuecomment-1914581161> -+ -+""" -+import dataclasses -+import typing -+ -+import pytest -+ -+ [email protected] -+class LazyFixture: -+ """Lazy fixture dataclass.""" -+ -+ name: str -+ -+ -+def lazy_fixture(name: str) -> LazyFixture: -+ """Mark a fixture as lazy.""" -+ return LazyFixture(name) -+ -+ -+# NOTE: Mimic the original API -+pytest.lazy_fixture = lazy_fixture -+ -+ -+def is_lazy_fixture(value: object) -> bool: -+ """Check whether a value is a lazy fixture.""" -+ return isinstance(value, LazyFixture) -+ -+ -+def pytest_make_parametrize_id( -+ config: pytest.Config, -+ val: object, -+ argname: str, -+) -> str | None: -+ """Inject lazy fixture parametrized id. -+ -+ Reference: -+ - https://bit.ly/48Off6r -+ -+ Args: -+ config (pytest.Config): pytest configuration. -+ value (object): fixture value. -+ argname (str): automatic parameter name. -+ -+ Returns: -+ str: new parameter id. -+ """ -+ if is_lazy_fixture(val): -+ return typing.cast(LazyFixture, val).name -+ return None -+ -+ [email protected](tryfirst=True) -+def pytest_fixture_setup( -+ fixturedef: pytest.FixtureDef, -+ request: pytest.FixtureRequest, -+) -> object | None: -+ """Lazy fixture setup hook. -+ -+ This hook will never take over a fixture setup but just simply will -+ try to resolve recursively any lazy fixture found in request.param. -+ -+ Reference: -+ - https://bit.ly/3SyvsXJ -+ -+ Args: -+ fixturedef (pytest.FixtureDef): fixture definition object. -+ request (pytest.FixtureRequest): fixture request object. -+ -+ Returns: -+ object | None: fixture value or None otherwise. -+ """ -+ if hasattr(request, "param") and request.param: -+ request.param = _resolve_lazy_fixture(request.param, request) -+ return None -+ -+ -+def _resolve_lazy_fixture(__val: object, request: pytest.FixtureRequest) -> object: -+ """Lazy fixture resolver. -+ -+ Args: -+ __val (object): fixture value object. -+ request (pytest.FixtureRequest): pytest fixture request object. -+ -+ Returns: -+ object: resolved fixture value. -+ """ -+ if isinstance(__val, list | tuple): -+ return tuple(_resolve_lazy_fixture(v, request) for v in __val) -+ if isinstance(__val, typing.Mapping): -+ return {k: _resolve_lazy_fixture(v, request) for k, v in __val.items()} -+ if not is_lazy_fixture(__val): -+ return __val -+ lazy_obj = typing.cast(LazyFixture, __val) -+ return request.getfixturevalue(lazy_obj.name) - -From db16bbee961ceb93b7831fe1ec44a72d56a33e38 Mon Sep 17 00:00:00 2001 -From: Jakub Roztocil <[email protected]> -Date: Mon, 4 Mar 2024 18:05:26 +0100 -Subject: [PATCH] Drop dependency on the abandoned python-lazy-fixture II. - ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -2,6 +2,7 @@ - - import pytest - from pytest_httpbin import certs -+from pytest_httpbin.serve import Server as PyTestHttpBinServer - - from .utils import ( # noqa - HTTPBIN_WITH_CHUNKED_SUPPORT_DOMAIN, -@@ -19,8 +20,10 @@ - interface, - ) - from .utils.http_server import http_server, localhost_http_server # noqa --# noinspection PyUnresolvedReferences --from .fixtures import pytest_lazy_fixture -+ -+ -+# Patch to support `url = str(server)` in addition to `url = server + '/foo'`. -+PyTestHttpBinServer.__str__ = lambda self: self.url - - - @pytest.fixture(scope='function', autouse=True) -@@ -72,8 +75,15 @@ def _remote_httpbin_available(): - - @pytest.fixture - def remote_httpbin(_remote_httpbin_available): -+ - if _remote_httpbin_available: -- return 'http://' + REMOTE_HTTPBIN_DOMAIN -+ class Server(str): -+ """Look like `pytest_httpbin.serve.Server` but only provide URL info.""" -+ @property -+ def url(self): -+ return self -+ -+ return Server('http://' + REMOTE_HTTPBIN_DOMAIN) - pytest.skip(f'{REMOTE_HTTPBIN_DOMAIN} not resolvable') - - ---- a/tests/fixtures/pytest_lazy_fixture.py -+++ /dev/null -@@ -1,99 +0,0 @@ --""" --Replacement for the abandoned `pytest.lazy_fixture` <https://github.com/TvoroG/pytest-lazy-fixture> -- --Based on <https://github.com/TvoroG/pytest-lazy-fixture/issues/65#issuecomment-1914581161> -- --""" --import dataclasses --import typing -- --import pytest -- -- [email protected] --class LazyFixture: -- """Lazy fixture dataclass.""" -- -- name: str -- -- --def lazy_fixture(name: str) -> LazyFixture: -- """Mark a fixture as lazy.""" -- return LazyFixture(name) -- -- --# NOTE: Mimic the original API --pytest.lazy_fixture = lazy_fixture -- -- --def is_lazy_fixture(value: object) -> bool: -- """Check whether a value is a lazy fixture.""" -- return isinstance(value, LazyFixture) -- -- --def pytest_make_parametrize_id( -- config: pytest.Config, -- val: object, -- argname: str, --) -> str | None: -- """Inject lazy fixture parametrized id. -- -- Reference: -- - https://bit.ly/48Off6r -- -- Args: -- config (pytest.Config): pytest configuration. -- value (object): fixture value. -- argname (str): automatic parameter name. -- -- Returns: -- str: new parameter id. -- """ -- if is_lazy_fixture(val): -- return typing.cast(LazyFixture, val).name -- return None -- -- [email protected](tryfirst=True) --def pytest_fixture_setup( -- fixturedef: pytest.FixtureDef, -- request: pytest.FixtureRequest, --) -> object | None: -- """Lazy fixture setup hook. -- -- This hook will never take over a fixture setup but just simply will -- try to resolve recursively any lazy fixture found in request.param. -- -- Reference: -- - https://bit.ly/3SyvsXJ -- -- Args: -- fixturedef (pytest.FixtureDef): fixture definition object. -- request (pytest.FixtureRequest): fixture request object. -- -- Returns: -- object | None: fixture value or None otherwise. -- """ -- if hasattr(request, "param") and request.param: -- request.param = _resolve_lazy_fixture(request.param, request) -- return None -- -- --def _resolve_lazy_fixture(__val: object, request: pytest.FixtureRequest) -> object: -- """Lazy fixture resolver. -- -- Args: -- __val (object): fixture value object. -- request (pytest.FixtureRequest): pytest fixture request object. -- -- Returns: -- object: resolved fixture value. -- """ -- if isinstance(__val, list | tuple): -- return tuple(_resolve_lazy_fixture(v, request) for v in __val) -- if isinstance(__val, typing.Mapping): -- return {k: _resolve_lazy_fixture(v, request) for k, v in __val.items()} -- if not is_lazy_fixture(__val): -- return __val -- lazy_obj = typing.cast(LazyFixture, __val) -- return request.getfixturevalue(lazy_obj.name) ---- a/tests/test_cookie_on_redirects.py -+++ b/tests/test_cookie_on_redirects.py -@@ -2,54 +2,47 @@ - from .utils import http - - --def _stringify(fixture): -- return fixture + '' -- -- [email protected]('instance', [ -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('remote_httpbin'), [email protected]('target_httpbin', [ -+ 'httpbin', -+ 'remote_httpbin', - ]) --def test_explicit_user_set_cookie(httpbin, instance): -- # User set cookies ARE NOT persisted within redirects -- # when there is no session, even on the same domain. -- -+def test_explicit_user_set_cookie(httpbin, target_httpbin, request): -+ """User set cookies ARE NOT persisted within redirects when there is no session, even on the same domain.""" -+ target_httpbin = request.getfixturevalue(target_httpbin) - r = http( - '--follow', - httpbin + '/redirect-to', -- f'url=={_stringify(instance)}/cookies', -+ f'url=={target_httpbin.url}/cookies', - 'Cookie:a=b' - ) - assert r.json == {'cookies': {}} - - [email protected]('instance', [ -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('remote_httpbin'), [email protected]('target_httpbin', [ -+ 'httpbin', -+ 'remote_httpbin', - ]) --def test_explicit_user_set_cookie_in_session(tmp_path, httpbin, instance): -- # User set cookies ARE persisted within redirects -- # when there is A session, even on the same domain. -- -+def test_explicit_user_set_cookie_in_session(tmp_path, httpbin, target_httpbin, request): -+ """User set cookies ARE persisted within redirects when there is A session, even on the same domain.""" -+ target_httpbin = request.getfixturevalue(target_httpbin) - r = http( - '--follow', - '--session', - str(tmp_path / 'session.json'), - httpbin + '/redirect-to', -- f'url=={_stringify(instance)}/cookies', -+ f'url=={target_httpbin}/cookies', - 'Cookie:a=b' - ) - assert r.json == {'cookies': {'a': 'b'}} - - [email protected]('instance', [ -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('remote_httpbin'), [email protected]('target_httpbin', [ -+ 'httpbin', -+ 'remote_httpbin', - ]) --def test_saved_user_set_cookie_in_session(tmp_path, httpbin, instance): -- # User set cookies ARE persisted within redirects -- # when there is A session, even on the same domain. -- -+def test_saved_user_set_cookie_in_session(tmp_path, httpbin, target_httpbin, request): -+ """User set cookies ARE persisted within redirects when there is A session, even on the same domain.""" -+ target_httpbin = request.getfixturevalue(target_httpbin) - http( - '--follow', - '--session', -@@ -62,32 +55,33 @@ def test_saved_user_set_cookie_in_session(tmp_path, httpbin, instance): - '--session', - str(tmp_path / 'session.json'), - httpbin + '/redirect-to', -- f'url=={_stringify(instance)}/cookies', -+ f'url=={target_httpbin}/cookies', - ) - assert r.json == {'cookies': {'a': 'b'}} - - [email protected]('instance', [ -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('remote_httpbin'), [email protected]('target_httpbin', [ -+ 'httpbin', -+ 'remote_httpbin', - ]) - @pytest.mark.parametrize('session', [True, False]) --def test_explicit_user_set_headers(httpbin, tmp_path, instance, session): -- # User set headers ARE persisted within redirects -- # even on different domains domain with or without -- # an active session. -+def test_explicit_user_set_headers(httpbin, tmp_path, target_httpbin, session, request): -+ """ -+ User set headers ARE persisted within redirects even on different domains domain with or without an active session. -+ -+ """ -+ target_httpbin = request.getfixturevalue(target_httpbin) - session_args = [] - if session: - session_args.extend([ - '--session', - str(tmp_path / 'session.json') - ]) -- - r = http( - '--follow', - *session_args, - httpbin + '/redirect-to', -- f'url=={_stringify(instance)}/get', -+ f'url=={target_httpbin}/get', - 'X-Custom-Header:value' - ) - assert 'X-Custom-Header' in r.json['headers'] -@@ -95,16 +89,13 @@ def test_explicit_user_set_headers(httpbin, tmp_path, instance, session): - - @pytest.mark.parametrize('session', [True, False]) - def test_server_set_cookie_on_redirect_same_domain(tmp_path, httpbin, session): -- # Server set cookies ARE persisted on the same domain -- # when they are forwarded. -- -+ """Server set cookies ARE persisted on the same domain when they are forwarded.""" - session_args = [] - if session: - session_args.extend([ - '--session', - str(tmp_path / 'session.json') - ]) -- - r = http( - '--follow', - *session_args, -@@ -136,8 +127,7 @@ def test_server_set_cookie_on_redirect_different_domain(tmp_path, http_server, h - - - def test_saved_session_cookies_on_same_domain(tmp_path, httpbin): -- # Saved session cookies ARE persisted when making a new -- # request to the same domain. -+ """Saved session cookies ARE persisted when making a new request to the same domain.""" - http( - '--session', - str(tmp_path / 'session.json'), -@@ -152,8 +142,7 @@ def test_saved_session_cookies_on_same_domain(tmp_path, httpbin): - - - def test_saved_session_cookies_on_different_domain(tmp_path, httpbin, remote_httpbin): -- # Saved session cookies ARE persisted when making a new -- # request to a different domain. -+ """Saved session cookies ARE persisted when making a new request to a different domain.""" - http( - '--session', - str(tmp_path / 'session.json'), -@@ -167,45 +156,49 @@ def test_saved_session_cookies_on_different_domain(tmp_path, httpbin, remote_htt - assert r.json == {'cookies': {}} - - [email protected]('initial_domain, first_request_domain, second_request_domain, expect_cookies', [ [email protected](['initial_domain', 'first_request_domain', 'second_request_domain', 'expect_cookies'], [ - ( - # Cookies are set by Domain A - # Initial domain is Domain A - # Redirected domain is Domain A -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('httpbin'), -+ 'httpbin', -+ 'httpbin', -+ 'httpbin', - True, - ), - ( - # Cookies are set by Domain A - # Initial domain is Domain B - # Redirected domain is Domain B -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('remote_httpbin'), -- pytest.lazy_fixture('remote_httpbin'), -+ 'httpbin', -+ 'remote_httpbin', -+ 'remote_httpbin', - False, - ), - ( - # Cookies are set by Domain A - # Initial domain is Domain A - # Redirected domain is Domain B -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('remote_httpbin'), -+ 'httpbin', -+ 'httpbin', -+ 'remote_httpbin', - False, - ), - ( - # Cookies are set by Domain A - # Initial domain is Domain B - # Redirected domain is Domain A -- pytest.lazy_fixture('httpbin'), -- pytest.lazy_fixture('remote_httpbin'), -- pytest.lazy_fixture('httpbin'), -+ 'httpbin', -+ 'remote_httpbin', -+ 'httpbin', - True, - ), - ]) --def test_saved_session_cookies_on_redirect(tmp_path, initial_domain, first_request_domain, second_request_domain, expect_cookies): -+def test_saved_session_cookies_on_redirect( -+ tmp_path, initial_domain, first_request_domain, second_request_domain, expect_cookies, request): -+ initial_domain = request.getfixturevalue(initial_domain) -+ first_request_domain = request.getfixturevalue(first_request_domain) -+ second_request_domain = request.getfixturevalue(second_request_domain) - http( - '--session', - str(tmp_path / 'session.json'), -@@ -216,7 +209,7 @@ def test_saved_session_cookies_on_redirect(tmp_path, initial_domain, first_reque - str(tmp_path / 'session.json'), - '--follow', - first_request_domain + '/redirect-to', -- f'url=={_stringify(second_request_domain)}/cookies' -+ f'url=={second_request_domain}/cookies' - ) - if expect_cookies: - expected_data = {'cookies': {'a': 'b'}} ---- a/tests/test_sessions.py -+++ b/tests/test_sessions.py -@@ -821,16 +821,17 @@ def test_session_multiple_headers_with_same_name(basic_session, httpbin): - 'server, expected_cookies', - [ - ( -- pytest.lazy_fixture('localhost_http_server'), -+ 'localhost_http_server', - {'secure_cookie': 'foo', 'insecure_cookie': 'bar'} - ), - ( -- pytest.lazy_fixture('remote_httpbin'), -+ 'remote_httpbin', - {'insecure_cookie': 'bar'} - ) - ] - ) --def test_secure_cookies_on_localhost(mock_env, tmp_path, server, expected_cookies): -+def test_secure_cookies_on_localhost(mock_env, tmp_path, server, expected_cookies, request): -+ server = request.getfixturevalue(server) - session_path = tmp_path / 'session.json' - http( - '--session', str(session_path), ---- a/tests/test_update_warnings.py -+++ b/tests/test_update_warnings.py -@@ -132,10 +132,10 @@ def test_check_updates_first_invocation( - - - @pytest.mark.parametrize( -- 'should_issue_warning, build_channel', -+ ['should_issue_warning', 'build_channel'], - [ -- (False, pytest.lazy_fixture('lower_build_channel')), -- (True, pytest.lazy_fixture('higher_build_channel')), -+ (False, 'lower_build_channel'), -+ (True, 'higher_build_channel'), - ], - ) - def test_check_updates_first_time_after_data_fetch( -@@ -145,7 +145,9 @@ def test_check_updates_first_time_after_data_fetch( - static_fetch_data, - should_issue_warning, - build_channel, -+ request, - ): -+ request.getfixturevalue(build_channel) - http('fetch_updates', '--daemon', env=with_warnings) - r = http(httpbin + '/get', env=with_warnings) - -@@ -176,14 +178,15 @@ def test_cli_check_updates( - - - @pytest.mark.parametrize( -- "build_channel", [ -- pytest.lazy_fixture("lower_build_channel"), -- pytest.lazy_fixture("unknown_build_channel") -+ 'build_channel', [ -+ 'lower_build_channel', -+ 'unknown_build_channel', - ] - ) - def test_cli_check_updates_not_shown( -- static_fetch_data, build_channel -+ static_fetch_data, build_channel, request - ): -+ request.getfixturevalue(build_channel) - r = httpie('cli', 'check-updates') - assert r.exit_status == ExitStatus.SUCCESS - assert not check_update_warnings(r)
