57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
|
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()
|