Skip to content

Commit 25f9a3b

Browse files
authored
Test for UDP socket (#293)
* Testing a UDP socket. * precommit hooks' update
1 parent 6fb9720 commit 25f9a3b

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ repos:
1515
exclude: helm/
1616
args: [ --unsafe ]
1717
- repo: https://github.com/charliermarsh/ruff-pre-commit
18-
rev: "v0.11.2"
18+
rev: "v0.11.11"
1919
hooks:
2020
- id: ruff
2121
args: [--fix, --exit-non-zero-on-fix]

mocket/socket.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,11 @@ def makefile(self, mode: str = "r", bufsize: int = -1) -> MocketSocketIO:
170170
def get_entry(self, data: bytes) -> MocketEntry | None:
171171
return Mocket.get_entry(self._host, self._port, data)
172172

173+
def sendto(self, data: ReadableBuffer, address: Address | None = None) -> int:
174+
self.connect(address)
175+
self.sendall(data)
176+
return len(data)
177+
173178
def sendall(self, data, entry=None, *args, **kwargs):
174179
if entry is None:
175180
entry = self.get_entry(data)
@@ -204,6 +209,11 @@ def recv_into(
204209
buffer[: len(data)] = data
205210
return len(data)
206211

212+
def recvfrom(
213+
self, buffersize: int, flags: int | None = None
214+
) -> tuple[bytes, _RetAddress]:
215+
return self.recv(buffersize, flags), self._address
216+
207217
def recv(self, buffersize: int, flags: int | None = None) -> bytes:
208218
r_fd, _ = Mocket.get_pair((self._host, self._port))
209219
if r_fd:

tests/test_socket.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import pytest
44

5+
from mocket import Mocket, MocketEntry, mocketize
56
from mocket.socket import MocketSocket
67

78

@@ -11,3 +12,21 @@ def test_blocking_socket(blocking):
1112
sock.connect(("locahost", 1234))
1213
sock.setblocking(blocking)
1314
assert sock.getblocking() is blocking
15+
16+
17+
@mocketize
18+
def test_udp_socket():
19+
host = "127.0.0.1"
20+
port = 9999
21+
request_data = b"ping"
22+
response_data = b"pong"
23+
24+
Mocket.register(MocketEntry((host, port), [response_data]))
25+
26+
# Your UDP client code
27+
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
28+
sock.sendto(request_data, (host, port))
29+
data, address = sock.recvfrom(1024)
30+
31+
assert data == response_data
32+
assert address == (host, port)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy