2025-06-15 09:46:50 -04:00
|
|
|
"""this mocks a translate serve for etsting."""
|
|
|
|
|
|
|
|
|
|
from aiohttp import web
|
|
|
|
|
from release_tests.support import ADDR, get_port
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Translate:
|
|
|
|
|
"""Creates a translation mock for release testing."""
|
|
|
|
|
|
2025-06-18 16:15:53 -04:00
|
|
|
def __init__(self, url=None, replies=None):
|
2025-06-15 09:46:50 -04:00
|
|
|
"""Initialize"""
|
|
|
|
|
|
2025-06-18 16:15:53 -04:00
|
|
|
if not url:
|
|
|
|
|
url = "/"
|
2025-06-17 16:50:54 -04:00
|
|
|
if not replies:
|
|
|
|
|
replies = ["hello."]
|
|
|
|
|
|
2025-06-15 09:46:50 -04:00
|
|
|
async def reply(_):
|
|
|
|
|
"""response to return"""
|
|
|
|
|
nonlocal replies
|
|
|
|
|
return web.Response(text=replies.pop(0))
|
|
|
|
|
|
|
|
|
|
self.port = get_port()
|
|
|
|
|
self.app = web.Application()
|
|
|
|
|
self.app.add_routes([web.get(url, reply)])
|
|
|
|
|
self.runner = None
|
|
|
|
|
|
2025-06-16 12:32:20 -04:00
|
|
|
@property
|
|
|
|
|
def baseurl(self):
|
|
|
|
|
"""Base URL"""
|
|
|
|
|
return f"http://{ADDR}:{self.port}"
|
|
|
|
|
|
2025-06-15 09:46:50 -04:00
|
|
|
async def start(self):
|
|
|
|
|
"""Start the mock translateer."""
|
|
|
|
|
if self.runner:
|
|
|
|
|
return
|
|
|
|
|
self.runner = web.AppRunner(self.app)
|
|
|
|
|
await self.runner.setup()
|
|
|
|
|
site = web.TCPSite(self.runner, ADDR, self.port)
|
|
|
|
|
await site.start()
|
2025-06-17 16:50:54 -04:00
|
|
|
|
|
|
|
|
async def stop(self):
|
|
|
|
|
"""Stops the application."""
|
|
|
|
|
await self.runner.cleanup()
|