From cc388ee2a4e7394914ecb8035a45a2701afd2457 Mon Sep 17 00:00:00 2001 From: Giorgio Salluzzo Date: Sat, 24 May 2025 23:15:21 +0200 Subject: [PATCH 1/2] Testing a UDP socket. --- mocket/socket.py | 10 ++++++++++ tests/test_socket.py | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/mocket/socket.py b/mocket/socket.py index f8f77dac..496c9124 100644 --- a/mocket/socket.py +++ b/mocket/socket.py @@ -170,6 +170,11 @@ def makefile(self, mode: str = "r", bufsize: int = -1) -> MocketSocketIO: def get_entry(self, data: bytes) -> MocketEntry | None: return Mocket.get_entry(self._host, self._port, data) + def sendto(self, data: ReadableBuffer, address: Address | None = None) -> int: + self.connect(address) + self.sendall(data) + return len(data) + def sendall(self, data, entry=None, *args, **kwargs): if entry is None: entry = self.get_entry(data) @@ -204,6 +209,11 @@ def recv_into( buffer[: len(data)] = data return len(data) + def recvfrom( + self, buffersize: int, flags: int | None = None + ) -> tuple[bytes, _RetAddress]: + return self.recv(buffersize, flags), self._address + def recv(self, buffersize: int, flags: int | None = None) -> bytes: r_fd, _ = Mocket.get_pair((self._host, self._port)) if r_fd: diff --git a/tests/test_socket.py b/tests/test_socket.py index 112a9089..4c362f56 100644 --- a/tests/test_socket.py +++ b/tests/test_socket.py @@ -2,6 +2,7 @@ import pytest +from mocket import Mocket, MocketEntry, mocketize from mocket.socket import MocketSocket @@ -11,3 +12,21 @@ def test_blocking_socket(blocking): sock.connect(("locahost", 1234)) sock.setblocking(blocking) assert sock.getblocking() is blocking + + +@mocketize +def test_udp_socket(): + host = "127.0.0.1" + port = 9999 + request_data = b"ping" + response_data = b"pong" + + Mocket.register(MocketEntry((host, port), [response_data])) + + # Your UDP client code + sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + sock.sendto(request_data, (host, port)) + data, address = sock.recvfrom(1024) + + assert data == response_data + assert address == (host, port) From 6680943439d765ff203c087ee554a0fb744f155c Mon Sep 17 00:00:00 2001 From: Giorgio Salluzzo Date: Sat, 24 May 2025 23:15:44 +0200 Subject: [PATCH 2/2] Precommit hooks update --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b7a1e1f7..4edd2b69 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,7 +15,7 @@ repos: exclude: helm/ args: [ --unsafe ] - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: "v0.11.2" + rev: "v0.11.11" hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix]