Refactor interop tests and factories

- Add `close` and `disconnect` in `Host`
- Add `close` and `close_peer` in `Network`
- Change `IListener.close` to async, to await for server's closing
- Add factories for security transports, and modify `HostFactory`
This commit is contained in:
mhchia
2019-08-29 21:38:06 +08:00
parent 64c0dab3af
commit c61a06706a
15 changed files with 184 additions and 116 deletions

View File

@ -21,9 +21,8 @@ class IListener(ABC):
"""
@abstractmethod
def close(self) -> bool:
async def close(self) -> None:
"""
close the listener such that no more connections
can be open on this transport instance
:return: return True if successful
"""

View File

@ -45,20 +45,16 @@ class TCPListener(IListener):
# TODO check if server is listening
return self.multiaddrs
def close(self) -> bool:
async def close(self) -> None:
"""
close the listener such that no more connections
can be open on this transport instance
:return: return True if successful
"""
if self.server is None:
return False
return
self.server.close()
_loop = asyncio.get_event_loop()
_loop.run_until_complete(self.server.wait_closed())
_loop.close()
await self.server.wait_closed()
self.server = None
return True
class TCP(ITransport):