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