Add base test case for worker
This commit is contained in:
parent
81789ec29e
commit
3ed8ba7eb3
6 changed files with 31 additions and 8 deletions
|
@ -5,7 +5,6 @@ import psutil
|
|||
from catfish.utils.processes import terminate_processes
|
||||
import asyncio
|
||||
from .router import run_server
|
||||
from functools import partial
|
||||
|
||||
|
||||
PID_FILE = os.path.join(tempfile.gettempdir(), "catfish.pid")
|
||||
|
@ -36,9 +35,10 @@ def stop_worker():
|
|||
terminate_processes([get_running_process()])
|
||||
|
||||
|
||||
async def run_worker():
|
||||
async def run_worker(port):
|
||||
loop = asyncio.get_running_loop()
|
||||
await asyncio.gather(run_server(loop))
|
||||
await asyncio.gather(run_server(loop, port))
|
||||
|
||||
|
||||
run = partial(asyncio.run, run_worker())
|
||||
def run(port=8080):
|
||||
return asyncio.run(run_worker(port))
|
||||
|
|
|
@ -5,10 +5,12 @@ from aiohttp import web
|
|||
async def handle_request(request):
|
||||
return web.json_response({})
|
||||
|
||||
def get_server():
|
||||
return web.Server(handle_request)
|
||||
|
||||
async def run_server(loop, port=8080):
|
||||
async def run_server(loop, port):
|
||||
click.echo("Starting server...")
|
||||
aiohttp_server = web.Server(handle_request)
|
||||
aiohttp_server = get_server()
|
||||
aio_server = await loop.create_server(aiohttp_server, "0.0.0.0", port)
|
||||
click.echo("Server listening on port {}".format(port))
|
||||
await aio_server.serve_forever()
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
aiounittest==1.1.0
|
||||
black==18.9b0
|
||||
flake8==3.6.0
|
||||
flake8-comprehensions==1.4.1
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
from unittest import TestCase
|
||||
from aiounittest import AsyncTestCase
|
||||
from aiohttp.test_utils import unused_port
|
||||
from click.testing import CliRunner
|
||||
from catfish.__main__ import cli
|
||||
from catfish import worker
|
||||
import functools
|
||||
from multiprocessing import Process
|
||||
|
||||
|
||||
class BaseTestCase(TestCase):
|
||||
class BaseTestCase(AsyncTestCase):
|
||||
def setUp(self):
|
||||
worker.stop_worker()
|
||||
self.cli_runner = CliRunner()
|
||||
|
@ -14,3 +16,15 @@ class BaseTestCase(TestCase):
|
|||
|
||||
def tearDown(self):
|
||||
worker.stop_worker()
|
||||
|
||||
|
||||
class BaseWorkerTestCase(BaseTestCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.unused_port = unused_port()
|
||||
self.router_process = Process(target=worker.run, args=(self.unused_port,), daemon=True)
|
||||
self.router_process.start()
|
||||
|
||||
def tearDown(self):
|
||||
self.router_process.terminate()
|
||||
super().tearDown()
|
||||
|
|
0
tests/test_worker/__init__.py
Normal file
0
tests/test_worker/__init__.py
Normal file
6
tests/test_worker/test_router.py
Normal file
6
tests/test_worker/test_router.py
Normal file
|
@ -0,0 +1,6 @@
|
|||
from tests import BaseWorkerTestCase
|
||||
|
||||
|
||||
class RouterTestCase(BaseWorkerTestCase):
|
||||
def test_thing(self):
|
||||
self.assertTrue(True)
|
Reference in a new issue