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

Method test_create_server_ssl_1

Lib/test/test_asyncio/test_ssl.py:200–290  ·  view source on GitHub ↗
(self, size)

Source from the content-addressed store, hash-verified

198
199 @support.bigmemtest(size=25, memuse=90*2**20, dry_run=False)
200 def test_create_server_ssl_1(self, size):
201 CNT = 0 # number of clients that were successful
202 TOTAL_CNT = size # total number of clients that test will create
203 TIMEOUT = support.LONG_TIMEOUT # timeout for this test
204
205 A_DATA = b'A' * 1024 * BUF_MULTIPLIER
206 B_DATA = b'B' * 1024 * BUF_MULTIPLIER
207
208 sslctx = self._create_server_ssl_context(
209 test_utils.ONLYCERT, test_utils.ONLYKEY
210 )
211 client_sslctx = self._create_client_ssl_context()
212
213 clients = []
214
215 async def handle_client(reader, writer):
216 nonlocal CNT
217
218 data = await reader.readexactly(len(A_DATA))
219 self.assertEqual(data, A_DATA)
220 writer.write(b'OK')
221
222 data = await reader.readexactly(len(B_DATA))
223 self.assertEqual(data, B_DATA)
224 writer.writelines([b'SP', bytearray(b'A'), memoryview(b'M')])
225
226 await writer.drain()
227 writer.close()
228
229 CNT += 1
230
231 async def test_client(addr):
232 fut = asyncio.Future()
233
234 def prog(sock):
235 try:
236 sock.starttls(client_sslctx)
237 sock.connect(addr)
238 sock.send(A_DATA)
239
240 data = sock.recv_all(2)
241 self.assertEqual(data, b'OK')
242
243 sock.send(B_DATA)
244 data = sock.recv_all(4)
245 self.assertEqual(data, b'SPAM')
246
247 sock.close()
248
249 except Exception as ex:
250 self.loop.call_soon_threadsafe(fut.set_exception, ex)
251 else:
252 self.loop.call_soon_threadsafe(fut.set_result, None)
253
254 client = self.tcp_client(prog)
255 client.start()
256 clients.append(client)
257

Callers

nothing calls this directly

Calls 7

start_serverFunction · 0.85
run_until_completeMethod · 0.45
assertEqualMethod · 0.45
stopMethod · 0.45

Tested by

no test coverage detected