From e6b1dcea07ba9cd7bb6bf6c719259d33f2bd7332 Mon Sep 17 00:00:00 2001 From: vtexier <vit@free.fr> Date: Sat, 10 Nov 2018 11:21:44 +0100 Subject: [PATCH] issue #52 add type hinting to tests.api.webserver module --- tests/api/webserver.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/api/webserver.py b/tests/api/webserver.py index db6f529d..ee0fa082 100644 --- a/tests/api/webserver.py +++ b/tests/api/webserver.py @@ -1,5 +1,8 @@ import asyncio import socket +import ssl +from typing import Tuple, Callable, Optional + from aiohttp import web @@ -7,13 +10,13 @@ from aiohttp import web # Here is a nice mocking server class WebFunctionalSetupMixin: - def setUp(self): + def setUp(self) -> None: self.handler = None self.runner = None self.loop = asyncio.new_event_loop() asyncio.set_event_loop(self.loop) - def tearDown(self): + def tearDown(self) -> None: if self.handler: self.loop.run_until_complete(self.handler.shutdown()) if self.runner: @@ -24,15 +27,24 @@ class WebFunctionalSetupMixin: finally: asyncio.set_event_loop(None) - def find_unused_port(self): + def find_unused_port(self) -> int: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('127.0.0.1', 0)) port = s.getsockname()[1] s.close() return port - async def create_server(self, method, path, handler=None, ssl_ctx=None): - + async def create_server(self, method: str, path: str, handler: Optional[Callable] = None, + ssl_ctx: Optional[ssl.SSLContext] = None) -> Tuple[web.Application, int, str]: + """ + Create a web server for tests + + :param method: HTTP method type + :param path: Url path + :param handler: Callback function + :param ssl_ctx: SSL context (https is used if not None) + :return: + """ app = web.Application() if handler: app.router.add_route(method, path, handler) -- GitLab