import unittest import docker import aiohttp import asyncio import server import time class TestServer(unittest.IsolatedAsyncioTestCase): async def testStart(self): self.container.stop() time.sleep(5) async with self.session.post('http://localhost:8080/mc_test/start') as resp: assert(resp.status == 200) async def testStop(self): async with self.session.post('http://localhost:8080/mc_test/stop') as resp: assert(resp.status == 200) async def testStatus(self): async with self.session.post('http://localhost:8080/mc_test/status') as resp: assert(resp.status == 200) async def testCommand(self): async with self.session.post('http://localhost:8080/mc_test/command/c2F5IEhlbGxv') as resp: assert(resp.status == 200) async def testLogs(self): pass async def asyncSetUp(self): self.client = docker.from_env() self.container = self.client.containers.run("mc",detach=True, name="mc_test") self.session = aiohttp.ClientSession() #self.req = make_mocked_request('POST', '/{server}/start', match_info={"server": "mc_test"}) async def asyncTearDown(self): self.container.stop() self.container.remove(force=True) await self.session.close() self.client.close() async def fetch(session, url): async with session.get(url) as response: return await response.text() async def startServer(command): return await command() if __name__ == "__main__": unittest.main()