From 27257204064d729bcaf6f0a2cefb6638c19eab92 Mon Sep 17 00:00:00 2001 From: Uriel Date: Sun, 8 Mar 2026 06:38:47 -0300 Subject: [PATCH] reformat file and change `create_random_port_socket` test --- WebHostLib/customserver.py | 4 +-- test/webhost/test_port_allocation.py | 41 ++++++++-------------------- 2 files changed, 13 insertions(+), 32 deletions(-) diff --git a/WebHostLib/customserver.py b/WebHostLib/customserver.py index dddad61d05..f9f45eebd3 100644 --- a/WebHostLib/customserver.py +++ b/WebHostLib/customserver.py @@ -210,7 +210,7 @@ def parse_game_ports(game_ports: tuple[str | int, ...]) -> GameRangePorts: total_length += 1 weights.append(total_length) num = int(item) - parsed_ports.append(range(num, num+1)) + parsed_ports.append(range(num, num + 1)) return GameRangePorts(parsed_ports, weights, ephemeral_allowed) @@ -492,7 +492,7 @@ def run_server_process(name: str, ponyconfig: dict, static_server_data: dict, def run(self): while 1: - next_room = rooms_to_run.get(block=True, timeout=None) + next_room = rooms_to_run.get(block=True, timeout=None) gc.collect() task = asyncio.run_coroutine_threadsafe(start_room(next_room), loop) self._tasks.append(task) diff --git a/test/webhost/test_port_allocation.py b/test/webhost/test_port_allocation.py index de22abbe7a..4fbf32e6ed 100644 --- a/test/webhost/test_port_allocation.py +++ b/test/webhost/test_port_allocation.py @@ -1,6 +1,4 @@ import os -import statistics -import timeit import unittest from WebHostLib.customserver import parse_game_ports, create_random_port_socket, get_used_ports @@ -44,6 +42,7 @@ class TestWebDescriptions(unittest.TestCase): parse_game_ports(tuple("f-21215")) def test_random_port_socket_edge_cases(self) -> None: + """Verify if edge cases on creation of random port socket is working fine""" # Try giving an empty tuple and fail over it with self.assertRaises(OSError) as err: create_random_port_socket(tuple(), "127.0.0.1") @@ -59,42 +58,24 @@ class TestWebDescriptions(unittest.TestCase): self.assertNotEqual(err.strerror, "No available ports", "Raised an unexpected error string") - # @unittest.skipUnless(ci, "can't guarantee free ports outside of CI") + @unittest.skipUnless(ci, "can't guarantee free ports outside of CI") def test_random_port_socket(self) -> None: + """Verify if returned sockets use the correct port ranges""" sockets = [] for _ in range(6): socket = create_random_port_socket(("8080-8085",), "127.0.0.1") sockets.append(socket) _, port = socket.getsockname() - self.assertIn(port, range(8080,8086), "Port of socket was not inside the expected range") + self.assertIn(port, range(8080, 8086), "Port of socket was not inside the expected range") for s in sockets: s.close() - # Compared averages were calculated with a range of 100 in a Linux machine and then rounded up sockets.clear() - time = [] - size = 65535 - (len(get_used_ports()) + 1024 + 4000) - for _ in range(10): - time.append(timeit.timeit(lambda: sockets.append( - create_random_port_socket(("1024-30000", "30001-65535"), "127.0.0.1") - ), number=size)) + for _ in range(30_000): + socket = create_random_port_socket(("30000-65535",), "127.0.0.1") + sockets.append(socket) + _, port = socket.getsockname() + self.assertIn(port, range(30_000, 65536), "Port of socket was not inside the expected range") - for s in sockets: - s.close() - - self.assertLess(statistics.fmean(time), 1.2, - f"Time took to allocate {size} ports consecutively is higher than expected") - - sockets.clear() - time.clear() - size = 65535 - (len(get_used_ports()) + 1024 + 5) - for _ in range(10): - time.append(timeit.timeit(lambda: sockets.append( - create_random_port_socket(("1024-30000", "30001-65535"), "127.0.0.1") - ), number=size)) - - for s in sockets: - s.close() - - self.assertLess(statistics.fmean(time), 5, - f"Time took to allocate {size} ports consecutively is higher than expected") + for s in sockets: + s.close()