| 619 | def test_start_server(self): |
| 620 | |
| 621 | class MyServer: |
| 622 | |
| 623 | def __init__(self, loop): |
| 624 | self.server = None |
| 625 | self.loop = loop |
| 626 | |
| 627 | async def handle_client(self, client_reader, client_writer): |
| 628 | data = await client_reader.readline() |
| 629 | client_writer.write(data) |
| 630 | await client_writer.drain() |
| 631 | client_writer.close() |
| 632 | await client_writer.wait_closed() |
| 633 | |
| 634 | def start(self): |
| 635 | sock = socket.create_server(('127.0.0.1', 0)) |
| 636 | self.server = self.loop.run_until_complete( |
| 637 | asyncio.start_server(self.handle_client, |
| 638 | sock=sock)) |
| 639 | return sock.getsockname() |
| 640 | |
| 641 | def handle_client_callback(self, client_reader, client_writer): |
| 642 | self.loop.create_task(self.handle_client(client_reader, |
| 643 | client_writer)) |
| 644 | |
| 645 | def start_callback(self): |
| 646 | sock = socket.create_server(('127.0.0.1', 0)) |
| 647 | addr = sock.getsockname() |
| 648 | sock.close() |
| 649 | self.server = self.loop.run_until_complete( |
| 650 | asyncio.start_server(self.handle_client_callback, |
| 651 | host=addr[0], port=addr[1])) |
| 652 | return addr |
| 653 | |
| 654 | def stop(self): |
| 655 | if self.server is not None: |
| 656 | self.server.close() |
| 657 | self.loop.run_until_complete(self.server.wait_closed()) |
| 658 | self.server = None |
| 659 | |
| 660 | async def client(addr): |
| 661 | reader, writer = await asyncio.open_connection(*addr) |
no outgoing calls
searching dependent graphs…