From 2066084c130aec8c891d8806ff0478996ce51733 Mon Sep 17 00:00:00 2001 From: Jeff Baskin Date: Mon, 16 Jun 2025 12:32:20 -0400 Subject: [PATCH] Got the release servers running. --- release_tests/support/mttserver.py | 26 +++++++++++++++++++++++++ release_tests/support/test_mttserver.py | 21 ++++++++++++++++++++ release_tests/support/test_translate.py | 4 +++- release_tests/support/translate.py | 5 +++++ 4 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 release_tests/support/mttserver.py create mode 100644 release_tests/support/test_mttserver.py diff --git a/release_tests/support/mttserver.py b/release_tests/support/mttserver.py new file mode 100644 index 0000000..2def275 --- /dev/null +++ b/release_tests/support/mttserver.py @@ -0,0 +1,26 @@ +"""Starts and runs releasse version of MoreThanText server.""" + +from asyncio import create_subprocess_exec +from pathlib import Path +from release_tests.support import ADDR, get_port + +EXECUTABLE = Path.cwd().joinpath("target", "release", "morethantext") + + +class MTTServer: + """Runs a MoreThanText server.""" + + def __init__(self): + """Initialization""" + self.port = get_port() + self.cmd = [EXECUTABLE, "-a", ADDR, "-p", str(self.port)] + self.server = None + + @property + def baseurl(self): + """URL to server""" + return f"http://{ADDR}:{self.port}" + + async def start(self): + """Starts the server.""" + self.server = await create_subprocess_exec(*self.cmd) diff --git a/release_tests/support/test_mttserver.py b/release_tests/support/test_mttserver.py new file mode 100644 index 0000000..a256d5a --- /dev/null +++ b/release_tests/support/test_mttserver.py @@ -0,0 +1,21 @@ +"""tests for MoreThanText servers.""" + +from unittest import IsolatedAsyncioTestCase +from aiohttp import ClientSession +from release_tests.support import ADDR +from release_tests.support.mttserver import MTTServer + + +class MTTServerTC(IsolatedAsyncioTestCase): + """Testcases for controling MoreThanText release servers.""" + + async def test_defaukt_start_up(self): + """Test default start up.""" + mtt = MTTServer() + await mtt.start() + url = f"http://{ADDR}:{mtt.port}" + async with ClientSession() as session: + async with session.get(url) as resp: + text = await resp.text() + self.assertEqual(resp.status, 200, text) + self.assertEqual(mtt.baseurl, url) diff --git a/release_tests/support/test_translate.py b/release_tests/support/test_translate.py index 12c4a7e..fa1f99f 100644 --- a/release_tests/support/test_translate.py +++ b/release_tests/support/test_translate.py @@ -14,10 +14,12 @@ class TranslateTC(IsolatedAsyncioTestCase): """something""" trans = Translate() await trans.start() + url = f"http://{ADDR}:{trans.port}" async with ClientSession() as session: - async with session.get(f"http://{ADDR}:{trans.port}/") as resp: + async with session.get(url) as resp: text = await resp.text() self.assertEqual(resp.status, 200, text) + self.assertEqual(trans.baseurl, url) async def test_url_reponses(self): """created url reponse the mocks""" diff --git a/release_tests/support/translate.py b/release_tests/support/translate.py index c7c98c6..af19967 100644 --- a/release_tests/support/translate.py +++ b/release_tests/support/translate.py @@ -20,6 +20,11 @@ class Translate: self.app.add_routes([web.get(url, reply)]) self.runner = None + @property + def baseurl(self): + """Base URL""" + return f"http://{ADDR}:{self.port}" + async def start(self): """Start the mock translateer.""" if self.runner: