From ab318070e8bc948deabe51de6187d240ac6de9ee Mon Sep 17 00:00:00 2001 From: Abhinav Singh Date: Fri, 9 Aug 2024 23:49:01 +0530 Subject: [PATCH 1/5] Support for Python 3.12 --- .github/workflows/test-library.yml | 3 ++- tox.ini | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-library.yml b/.github/workflows/test-library.yml index 86fe218088..88e9d407d3 100644 --- a/.github/workflows/test-library.yml +++ b/.github/workflows/test-library.yml @@ -446,8 +446,9 @@ jobs: # NOTE: The latest and the lowest supported Pythons are prioritized # NOTE: to improve the responsiveness. It's nice to see the most # NOTE: important results first. - - '3.11' + - '3.12' - 3.6 + - '3.11' - '3.10' - 3.9 - 3.8 diff --git a/tox.ini b/tox.ini index 5e7d706a4b..37f686ca45 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py36,py37,py38,py39,py310,py311 +envlist = py36,py37,py38,py39,py310,py311,py312 isolated_build = true minversion = 3.21.0 From ec525d6e8a158a65485430335734509648f62e45 Mon Sep 17 00:00:00 2001 From: Abhinav Singh Date: Sat, 10 Aug 2024 08:53:15 +0530 Subject: [PATCH 2/5] Use `assert_called_once_with` and not `called_once_with` --- tests/http/web/test_web_server.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/http/web/test_web_server.py b/tests/http/web/test_web_server.py index 71baac4fd6..43c9c810cb 100644 --- a/tests/http/web/test_web_server.py +++ b/tests/http/web/test_web_server.py @@ -180,12 +180,12 @@ async def test_pac_file_served_from_disk(self) -> None: self.protocol_handler.request.state, httpParserStates.COMPLETE, ) - self._conn.send.called_once_with( + self._conn.send.assert_called_once_with( build_http_response( 200, - reason=b'OK', + reason=b"OK", headers={ - b'Content-Type': b'application/x-ns-proxy-autoconfig', + b"Content-Type": b"application/x-ns-proxy-autoconfig", }, body=self.expected_response, conn_close=True, From 6f0562d9a885c3d0025ff0765002c98000afdc3f Mon Sep 17 00:00:00 2001 From: Abhinav Singh Date: Sat, 10 Aug 2024 08:55:08 +0530 Subject: [PATCH 3/5] lint fix --- tests/http/web/test_web_server.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/http/web/test_web_server.py b/tests/http/web/test_web_server.py index 43c9c810cb..e7b2e7aa47 100644 --- a/tests/http/web/test_web_server.py +++ b/tests/http/web/test_web_server.py @@ -183,9 +183,9 @@ async def test_pac_file_served_from_disk(self) -> None: self._conn.send.assert_called_once_with( build_http_response( 200, - reason=b"OK", + reason=b'OK', headers={ - b"Content-Type": b"application/x-ns-proxy-autoconfig", + b'Content-Type': b'application/x-ns-proxy-autoconfig', }, body=self.expected_response, conn_close=True, From 148721c880ae2de26f7d8679b024804007b1215c Mon Sep 17 00:00:00 2001 From: Abhinav Singh Date: Sat, 10 Aug 2024 09:23:22 +0530 Subject: [PATCH 4/5] Fix `test_pac_file_served_from_disk` --- proxy/http/handler.py | 4 +--- tests/http/web/test_web_server.py | 39 ++++++++++++++++++++----------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/proxy/http/handler.py b/proxy/http/handler.py index 0bdcfa22c0..5120d5b32c 100644 --- a/proxy/http/handler.py +++ b/proxy/http/handler.py @@ -292,9 +292,7 @@ def _parse_first_request(self, data: memoryview) -> bool: return True # Discover which HTTP handler plugin is capable of # handling the current incoming request - klass = self._discover_plugin_klass( - self.request.http_handler_protocol, - ) + klass = self._discover_plugin_klass(self.request.http_handler_protocol) if klass is None: # No matching protocol class found. # Return bad request response and diff --git a/tests/http/web/test_web_server.py b/tests/http/web/test_web_server.py index e7b2e7aa47..bcd338339d 100644 --- a/tests/http/web/test_web_server.py +++ b/tests/http/web/test_web_server.py @@ -59,19 +59,6 @@ def test_on_client_connection_called_on_teardown(mocker: MockerFixture) -> None: assert _conn.closed -def mock_selector_for_client_read(self: Any) -> None: - self.mock_selector.return_value.select.return_value = [ - ( - selectors.SelectorKey( - fileobj=self._conn.fileno(), - fd=self._conn.fileno(), - events=selectors.EVENT_READ, - data=None, - ), - selectors.EVENT_READ, - ), - ] - # @mock.patch('socket.fromfd') # def test_on_client_connection_called_on_teardown( # self, mock_fromfd: mock.Mock, @@ -171,10 +158,34 @@ def _setUp(self, request: Any, mocker: MockerFixture) -> None: b'GET / HTTP/1.1', CRLF, ]) - mock_selector_for_client_read(self) + self.mock_selector.return_value.select.side_effect = [ + [ + ( + selectors.SelectorKey( + fileobj=self._conn.fileno(), + fd=self._conn.fileno(), + events=selectors.EVENT_READ, + data=None, + ), + selectors.EVENT_READ, + ) + ], + [ + ( + selectors.SelectorKey( + fileobj=self._conn.fileno(), + fd=self._conn.fileno(), + events=selectors.EVENT_WRITE, + data=None, + ), + selectors.EVENT_WRITE, + ) + ], + ] @pytest.mark.asyncio # type: ignore[misc] async def test_pac_file_served_from_disk(self) -> None: + await self.protocol_handler._run_once() await self.protocol_handler._run_once() self.assertEqual( self.protocol_handler.request.state, From f6001ab08ce6e764d973df81bd73bc2eb7ea97d0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 10 Aug 2024 03:54:13 +0000 Subject: [PATCH 5/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/http/web/test_web_server.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/http/web/test_web_server.py b/tests/http/web/test_web_server.py index bcd338339d..8100d995bd 100644 --- a/tests/http/web/test_web_server.py +++ b/tests/http/web/test_web_server.py @@ -168,7 +168,7 @@ def _setUp(self, request: Any, mocker: MockerFixture) -> None: data=None, ), selectors.EVENT_READ, - ) + ), ], [ ( @@ -179,7 +179,7 @@ def _setUp(self, request: Any, mocker: MockerFixture) -> None: data=None, ), selectors.EVENT_WRITE, - ) + ), ], ]