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

Method test_connect_accepted_socket

Lib/test/test_asyncio/test_ssl.py:563–631  ·  view source on GitHub ↗
(self, server_ssl=None, client_ssl=None)

Source from the content-addressed store, hash-verified

561 client_context.verify_mode = ssl.CERT_NONE
562
563 def test_connect_accepted_socket(self, server_ssl=None, client_ssl=None):
564 loop = self.loop
565
566 class MyProto(MyBaseProto):
567
568 def connection_lost(self, exc):
569 super().connection_lost(exc)
570 loop.call_soon(loop.stop)
571
572 def data_received(self, data):
573 super().data_received(data)
574 self.transport.write(expected_response)
575
576 lsock = socket.socket(socket.AF_INET)
577 lsock.bind(('127.0.0.1', 0))
578 lsock.listen(1)
579 addr = lsock.getsockname()
580
581 message = b'test data'
582 response = None
583 expected_response = b'roger'
584
585 def client():
586 nonlocal response
587 try:
588 csock = socket.socket(socket.AF_INET)
589 if client_ssl is not None:
590 csock = client_ssl.wrap_socket(csock)
591 csock.connect(addr)
592 csock.sendall(message)
593 response = csock.recv(99)
594 csock.close()
595 except Exception as exc:
596 print(
597 "Failure in client thread in test_connect_accepted_socket",
598 exc)
599
600 thread = threading.Thread(target=client, daemon=True)
601 thread.start()
602
603 conn, _ = lsock.accept()
604 proto = MyProto(loop=loop)
605 proto.loop = loop
606
607 extras = {}
608 if server_ssl:
609 extras = dict(ssl_handshake_timeout=HANDSHAKE_TIMEOUT)
610
611 f = loop.create_task(
612 loop.connect_accepted_socket(
613 (lambda: proto), conn, ssl=server_ssl,
614 **extras))
615 loop.run_forever()
616 conn.close()
617 lsock.close()
618
619 thread.join(1)
620 self.assertFalse(thread.is_alive())

Callers

nothing calls this directly

Calls 15

startMethod · 0.95
joinMethod · 0.95
is_aliveMethod · 0.95
socketMethod · 0.80
assertFalseMethod · 0.80
assertInMethod · 0.80
MyProtoClass · 0.70
bindMethod · 0.45
listenMethod · 0.45
getsocknameMethod · 0.45
acceptMethod · 0.45
create_taskMethod · 0.45

Tested by

no test coverage detected