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

Method test_start_server_1

Lib/test/test_asyncio/test_server.py:22–69  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

20 raise NotImplementedError
21
22 def test_start_server_1(self):
23 HELLO_MSG = b'1' * 1024 * 5 + b'\n'
24
25 def client(sock, addr):
26 for i in range(10):
27 time.sleep(0.2)
28 if srv.is_serving():
29 break
30 else:
31 raise RuntimeError
32
33 sock.settimeout(2)
34 sock.connect(addr)
35 sock.send(HELLO_MSG)
36 sock.recv_all(1)
37 sock.close()
38
39 async def serve(reader, writer):
40 await reader.readline()
41 main_task.cancel()
42 writer.write(b'1')
43 writer.close()
44 await writer.wait_closed()
45
46 async def main(srv):
47 async with srv:
48 await srv.serve_forever()
49
50 srv = self.loop.run_until_complete(asyncio.start_server(
51 serve, socket_helper.HOSTv4, 0, start_serving=False))
52
53 self.assertFalse(srv.is_serving())
54
55 main_task = self.loop.create_task(main(srv))
56
57 addr = srv.sockets[0].getsockname()
58 with self.assertRaises(asyncio.CancelledError):
59 with self.tcp_client(lambda sock: client(sock, addr)):
60 self.loop.run_until_complete(main_task)
61
62 self.assertEqual(srv.sockets, ())
63
64 self.assertIsNone(srv._sockets)
65 self.assertIsNone(srv._waiters)
66 self.assertFalse(srv.is_serving())
67
68 with self.assertRaisesRegex(RuntimeError, r'is closed'):
69 self.loop.run_until_complete(srv.serve_forever())
70
71
72class SelectorStartServerTests(BaseStartServer, unittest.TestCase):

Callers

nothing calls this directly

Calls 13

assertFalseMethod · 0.80
assertIsNoneMethod · 0.80
assertRaisesRegexMethod · 0.80
mainFunction · 0.50
run_until_completeMethod · 0.45
start_serverMethod · 0.45
is_servingMethod · 0.45
create_taskMethod · 0.45
getsocknameMethod · 0.45
assertRaisesMethod · 0.45
tcp_clientMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected