@@ -90,3 +90,39 @@ def test_sendmsg_empty_buffers():
9090 sock = MocketSocket (socket .AF_INET , socket .SOCK_STREAM )
9191 result = sock .sendmsg ([])
9292 assert result == 0
93+
94+
95+ def test_recvmsg_no_data ():
96+ sock = MocketSocket (socket .AF_INET , socket .SOCK_STREAM )
97+ # Mock _io.read to return empty bytes
98+ sock ._io = type ("MockIO" , (), {"read" : lambda self , n : b"" })()
99+ data , ancdata = sock .recvmsg (1024 )
100+ assert data == b""
101+ assert ancdata == []
102+
103+
104+ def test_recvmsg_into_no_data ():
105+ sock = MocketSocket (socket .AF_INET , socket .SOCK_STREAM )
106+ # Mock _io.read to return empty bytes
107+ sock ._io = type ("MockIO" , (), {"read" : lambda self , n : b"" })()
108+ buf = bytearray (10 )
109+ nbytes = sock .recvmsg_into ([buf ])
110+ assert nbytes == 0
111+ assert buf == bytearray (10 )
112+
113+
114+ def test_getsockopt ():
115+ # getsockopt is a static method, so we can call it directly
116+ result = MocketSocket .getsockopt (0 , 0 )
117+ assert result == socket .SOCK_STREAM
118+
119+
120+ def test_recvfrom_into ():
121+ sock = MocketSocket (socket .AF_INET , socket .SOCK_STREAM )
122+ test_data = b"abc123"
123+ sock ._io = type ("MockIO" , (), {"read" : lambda self , n : test_data })()
124+ buf = bytearray (10 )
125+ nbytes , addr = sock .recvfrom_into (buf )
126+ assert nbytes == len (test_data )
127+ assert buf [:nbytes ] == test_data
128+ assert addr == sock ._address
0 commit comments