MCPcopy Index your code
hub / github.com/python/cpython / prepare_sendfile

Method prepare_sendfile

Lib/test/test_asyncio/test_sendfile.py:250–291  ·  view source on GitHub ↗
(self, *, is_ssl=False, close_after=0)

Source from the content-addressed store, hash-verified

248 # Note: sendfile via SSL transport is equal to sendfile fallback
249
250 def prepare_sendfile(self, *, is_ssl=False, close_after=0):
251 port = socket_helper.find_unused_port()
252 srv_proto = MySendfileProto(loop=self.loop,
253 close_after=close_after)
254 if is_ssl:
255 if not ssl:
256 self.skipTest("No ssl module")
257 srv_ctx = test_utils.simple_server_sslcontext()
258 cli_ctx = test_utils.simple_client_sslcontext()
259 else:
260 srv_ctx = None
261 cli_ctx = None
262 srv_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
263 srv_sock.bind((socket_helper.HOST, port))
264 server = self.run_loop(self.loop.create_server(
265 lambda: srv_proto, sock=srv_sock, ssl=srv_ctx))
266 self.reduce_receive_buffer_size(srv_sock)
267
268 if is_ssl:
269 server_hostname = socket_helper.HOST
270 else:
271 server_hostname = None
272 cli_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
273 cli_sock.connect((socket_helper.HOST, port))
274
275 cli_proto = MySendfileProto(loop=self.loop)
276 tr, pr = self.run_loop(self.loop.create_connection(
277 lambda: cli_proto, sock=cli_sock,
278 ssl=cli_ctx, server_hostname=server_hostname))
279 self.reduce_send_buffer_size(cli_sock, transport=tr)
280
281 def cleanup():
282 srv_proto.transport.close()
283 cli_proto.transport.close()
284 self.run_loop(srv_proto.done)
285 self.run_loop(cli_proto.done)
286
287 server.close()
288 self.run_loop(server.wait_closed())
289
290 self.addCleanup(cleanup)
291 return srv_proto, cli_proto
292
293 @unittest.skipIf(sys.platform == 'win32', "UDP sockets are not supported")
294 def test_sendfile_not_supported(self):

Calls 11

MySendfileProtoClass · 0.85
skipTestMethod · 0.80
socketMethod · 0.80
addCleanupMethod · 0.80
bindMethod · 0.45
run_loopMethod · 0.45
create_serverMethod · 0.45
connectMethod · 0.45
create_connectionMethod · 0.45

Tested by

no test coverage detected