()
| 26 | def test_start_server1(self): |
| 27 | # Test that asyncio.start_server captures the context at the time of server creation |
| 28 | async def test(): |
| 29 | var = contextvars.ContextVar("var", default="default") |
| 30 | |
| 31 | async def handle_client(reader, writer): |
| 32 | value = var.get() |
| 33 | writer.write(value.encode()) |
| 34 | await writer.drain() |
| 35 | writer.close() |
| 36 | |
| 37 | server = await asyncio.start_server(handle_client, '127.0.0.1', 0, |
| 38 | ssl=self.server_ssl_context) |
| 39 | # change the value |
| 40 | var.set("after_server") |
| 41 | |
| 42 | async def client(addr): |
| 43 | reader, writer = await asyncio.open_connection(*addr, |
| 44 | ssl=self.client_ssl_context) |
| 45 | data = await reader.read(100) |
| 46 | writer.close() |
| 47 | await writer.wait_closed() |
| 48 | return data.decode() |
| 49 | |
| 50 | async with server: |
| 51 | addr = server.sockets[0].getsockname() |
| 52 | self.assertEqual(await client(addr), "default") |
| 53 | |
| 54 | self.assertEqual(var.get(), "after_server") |
| 55 | |
| 56 | self.run_coro(test()) |
| 57 |
nothing calls this directly
no test coverage detected