Finished rewriting release testing.
This commit is contained in:
parent
e555acfdb4
commit
5ce1dfc873
1008
Pipfile.lock
generated
1008
Pipfile.lock
generated
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,7 @@
|
||||
from socket import socket
|
||||
|
||||
ADDR = "127.56.0.1"
|
||||
SESSION_KEY = "sessionid"
|
||||
|
||||
|
||||
def get_port():
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
"""Create a cluster."""
|
||||
|
||||
from aiohttp import ClientSession
|
||||
from release_tests.support import get_port
|
||||
from release_tests.support import SESSION_KEY, get_port
|
||||
from release_tests.support.mttserver import MTTServer
|
||||
from release_tests.support.translate import Translate
|
||||
|
||||
@ -15,8 +15,9 @@ class Cluster:
|
||||
"""initialization"""
|
||||
self.num = num
|
||||
self.translate = Translate(url=transurl, replies=transreplies)
|
||||
self.session = None
|
||||
self.ports = []
|
||||
self.servers = []
|
||||
self.cookies = {}
|
||||
|
||||
async def start(self):
|
||||
"""Start the cluster."""
|
||||
@ -26,7 +27,6 @@ class Cluster:
|
||||
server = MTTServer("-a", ADDR, "-p", port)
|
||||
await server.start()
|
||||
self.servers.append(server)
|
||||
self.session = ClientSession()
|
||||
|
||||
async def start_a_server(self, *args):
|
||||
"""Creates a single server."""
|
||||
@ -34,12 +34,20 @@ class Cluster:
|
||||
server = MTTServer(*args)
|
||||
await server.start()
|
||||
self.servers.append(server)
|
||||
self.session = ClientSession()
|
||||
|
||||
async def start_a_cluster(self):
|
||||
"""Start a service cluster."""
|
||||
for _ in range(self.num):
|
||||
port = get_port()
|
||||
while port in self.ports:
|
||||
port = get_port()
|
||||
self.ports.append(port)
|
||||
server = MTTServer("-a", ADDR, "-p", port)
|
||||
await server.start()
|
||||
self.servers.append(server)
|
||||
|
||||
async def stop(self):
|
||||
"""Stops cluster."""
|
||||
if self.session:
|
||||
await self.session.close()
|
||||
await self.translate.stop()
|
||||
for server in self.servers:
|
||||
await server.stop()
|
||||
@ -49,11 +57,20 @@ class Cluster:
|
||||
await self.stop()
|
||||
for server in self.servers:
|
||||
await server.cleanup()
|
||||
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)
|
||||
async with ClientSession() as session:
|
||||
async with session.get(
|
||||
f"{server.baseurl}{url}", cookies=self.cookies
|
||||
) as resp:
|
||||
replies.append(resp)
|
||||
return replies
|
||||
|
||||
async def set_session(self):
|
||||
"""Sets up the session ids for the requests."""
|
||||
results = await self.get("/")
|
||||
self.cookies[SESSION_KEY] = results[0].cookies[SESSION_KEY].value
|
||||
|
||||
29
release_tests/test_session.py
Normal file
29
release_tests/test_session.py
Normal file
@ -0,0 +1,29 @@
|
||||
"""Testing session functions."""
|
||||
|
||||
from unittest import IsolatedAsyncioTestCase, skip
|
||||
from aiohttp import ClientSession
|
||||
from release_tests.support import SESSION_KEY
|
||||
from release_tests.support.cluster import Cluster
|
||||
|
||||
|
||||
class SessionTC(IsolatedAsyncioTestCase):
|
||||
"""Tests the client sessions on a single server."""
|
||||
|
||||
async def asyncSetUp(self):
|
||||
"""Set up."""
|
||||
self.cluster = Cluster()
|
||||
await self.cluster.start_a_cluster()
|
||||
self.addAsyncCleanup(self.cluster.cleanup)
|
||||
|
||||
async def test_if_session_added(self):
|
||||
"""Is the session created?"""
|
||||
result = await self.cluster.get("/")
|
||||
self.assertIn(SESSION_KEY, result[0].cookies)
|
||||
|
||||
@skip("feature not yet added.")
|
||||
async def test_is_session_shared(self):
|
||||
"""Do all of the servers in the cluster use the same session ids?"""
|
||||
results = await self.cluster.get("/")
|
||||
self.assertEqual(
|
||||
results[0].cookies[SESSION_KEY].value, results[1].cookies[SESSION_KEY].value
|
||||
)
|
||||
Loading…
x
Reference in New Issue
Block a user