Setup for getting pages from the cluster.
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:
parent
7d89f6c7ad
commit
e69dbf58fa
@ -1,5 +1,6 @@
|
|||||||
"""Create a cluster."""
|
"""Create a cluster."""
|
||||||
|
|
||||||
|
from aiohttp import ClientSession
|
||||||
from release_tests.support.mttserver import MTTServer
|
from release_tests.support.mttserver import MTTServer
|
||||||
from release_tests.support.translate import Translate
|
from release_tests.support.translate import Translate
|
||||||
|
|
||||||
@ -7,9 +8,10 @@ from release_tests.support.translate import Translate
|
|||||||
class Cluster:
|
class Cluster:
|
||||||
"""cluster of MoreThanText."""
|
"""cluster of MoreThanText."""
|
||||||
|
|
||||||
def __init__(self, num=2):
|
def __init__(self, num=2, transurl=None, transreplies=None):
|
||||||
"""initialization"""
|
"""initialization"""
|
||||||
self.translate = Translate()
|
self.translate = Translate(url=transurl, replies=transreplies)
|
||||||
|
self.session = None
|
||||||
self.servers = []
|
self.servers = []
|
||||||
for _ in range(num):
|
for _ in range(num):
|
||||||
self.servers.append(MTTServer())
|
self.servers.append(MTTServer())
|
||||||
@ -19,9 +21,19 @@ class Cluster:
|
|||||||
await self.translate.start()
|
await self.translate.start()
|
||||||
for server in self.servers:
|
for server in self.servers:
|
||||||
await server.start()
|
await server.start()
|
||||||
|
self.session = ClientSession()
|
||||||
|
|
||||||
async def stop(self):
|
async def stop(self):
|
||||||
"""Stops cluster."""
|
"""Stops cluster."""
|
||||||
|
await self.session.close()
|
||||||
await self.translate.stop()
|
await self.translate.stop()
|
||||||
for server in self.servers:
|
for server in self.servers:
|
||||||
await server.stop()
|
await server.stop()
|
||||||
|
|
||||||
|
async def get(self, url):
|
||||||
|
"""get from each server in the cluster."""
|
||||||
|
replies = []
|
||||||
|
for server in self.servers:
|
||||||
|
async with self.session.get(f"{server.baseurl}{url}") as resp:
|
||||||
|
replies.append(resp)
|
||||||
|
return replies
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
"""Testing the the cluster."""
|
"""Testing the the cluster."""
|
||||||
|
|
||||||
from unittest import IsolatedAsyncioTestCase
|
from unittest import IsolatedAsyncioTestCase
|
||||||
|
from uuid import uuid4
|
||||||
from aiohttp import ClientSession
|
from aiohttp import ClientSession
|
||||||
|
from release_tests.support import ADDR
|
||||||
from release_tests.support.cluster import Cluster
|
from release_tests.support.cluster import Cluster
|
||||||
|
|
||||||
|
|
||||||
@ -24,3 +26,31 @@ class ClusterTC(IsolatedAsyncioTestCase):
|
|||||||
text = await resp.text()
|
text = await resp.text()
|
||||||
self.assertEqual(resp.status, 200, text)
|
self.assertEqual(resp.status, 200, text)
|
||||||
await cluster.stop()
|
await cluster.stop()
|
||||||
|
|
||||||
|
async def test_server_numbers(self):
|
||||||
|
"""Control the number of servers."""
|
||||||
|
count = 3
|
||||||
|
cluster = Cluster(num=count)
|
||||||
|
self.assertEqual(len(cluster.servers), count)
|
||||||
|
|
||||||
|
async def test_set_translation_mocking(self):
|
||||||
|
"""Is the translation mocking setup"""
|
||||||
|
transurl = f"/{uuid4()}"
|
||||||
|
reply = str(uuid4())
|
||||||
|
cluster = Cluster(transurl=transurl, transreplies=[reply])
|
||||||
|
await cluster.start()
|
||||||
|
async with ClientSession() as session:
|
||||||
|
url = f"http://{ADDR}:{cluster.translate.port}{transurl}"
|
||||||
|
async with session.get(url) as resp:
|
||||||
|
text = await resp.text()
|
||||||
|
self.assertEqual(resp.status, 200, text)
|
||||||
|
await cluster.stop()
|
||||||
|
|
||||||
|
async def test_get_responses(self):
|
||||||
|
"""Get pulls responsre from each server"""
|
||||||
|
count = 4
|
||||||
|
cluster = Cluster(num=count)
|
||||||
|
await cluster.start()
|
||||||
|
resp = await cluster.get("/")
|
||||||
|
self.assertEqual(len(resp), count)
|
||||||
|
await cluster.stop()
|
||||||
|
|||||||
@ -7,9 +7,11 @@ from release_tests.support import ADDR, get_port
|
|||||||
class Translate:
|
class Translate:
|
||||||
"""Creates a translation mock for release testing."""
|
"""Creates a translation mock for release testing."""
|
||||||
|
|
||||||
def __init__(self, url="/", replies=None):
|
def __init__(self, url=None, replies=None):
|
||||||
"""Initialize"""
|
"""Initialize"""
|
||||||
|
|
||||||
|
if not url:
|
||||||
|
url = "/"
|
||||||
if not replies:
|
if not replies:
|
||||||
replies = ["hello."]
|
replies = ["hello."]
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user