Beginning setup of new release testing.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
This commit is contained in:
14
release_tests/support/__init__.py
Normal file
14
release_tests/support/__init__.py
Normal file
@@ -0,0 +1,14 @@
|
||||
"""Common support items for rekease teesting."""
|
||||
|
||||
from socket import socket
|
||||
|
||||
ADDR = "127.56.0.1"
|
||||
|
||||
|
||||
def get_port():
|
||||
"""Retrieve an unused port."""
|
||||
sock = socket()
|
||||
sock.bind((ADDR, 0))
|
||||
port = sock.getsockname()[1]
|
||||
sock.close()
|
||||
return port
|
||||
33
release_tests/support/test_translate.py
Normal file
33
release_tests/support/test_translate.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""Confirms translate moxcking is working."""
|
||||
|
||||
from unittest import IsolatedAsyncioTestCase
|
||||
from uuid import uuid4
|
||||
from aiohttp import ClientSession
|
||||
from release_tests.support import ADDR
|
||||
from release_tests.support.translate import Translate
|
||||
|
||||
|
||||
class TranslateTC(IsolatedAsyncioTestCase):
|
||||
"""Confirms the translate mocking is working."""
|
||||
|
||||
async def test_create_translater_server(self):
|
||||
"""something"""
|
||||
trans = Translate()
|
||||
await trans.start()
|
||||
async with ClientSession() as session:
|
||||
async with session.get(f"http://{ADDR}:{trans.port}/") as resp:
|
||||
text = await resp.text()
|
||||
self.assertEqual(resp.status, 200, text)
|
||||
|
||||
async def test_url_reponses(self):
|
||||
"""created url reponse the mocks"""
|
||||
url = f"/{uuid4()}"
|
||||
replies = [str(uuid4()), str(uuid4())]
|
||||
trans = Translate(url=url, replies=replies)
|
||||
await trans.start()
|
||||
async with ClientSession() as session:
|
||||
for reply in replies:
|
||||
async with session.get(f"http://{ADDR}:{trans.port}{url}") as resp:
|
||||
text = await resp.text()
|
||||
self.assertEqual(resp.status, 200, text)
|
||||
self.assertEqual(text, reply)
|
||||
30
release_tests/support/translate.py
Normal file
30
release_tests/support/translate.py
Normal file
@@ -0,0 +1,30 @@
|
||||
"""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."""
|
||||
|
||||
def __init__(self, url="/", replies=["Hello"]):
|
||||
"""Initialize"""
|
||||
|
||||
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
|
||||
|
||||
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()
|
||||
Reference in New Issue
Block a user