From ed02b86e7964e481059879ecd2c213bcbe85701f Mon Sep 17 00:00:00 2001 From: Michael Woods Date: Sat, 15 Feb 2025 15:16:29 -0500 Subject: [PATCH] Moved testserver to another module and removed the import for dummypacketserverconnection. --- src/packetserver/common/__init__.py | 16 ++++++++++++ src/packetserver/common/testing.py | 21 --------------- src/packetserver/server/__init__.py | 33 +----------------------- src/packetserver/server/testserver.py | 37 +++++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 53 deletions(-) delete mode 100644 src/packetserver/common/testing.py create mode 100644 src/packetserver/server/testserver.py diff --git a/src/packetserver/common/__init__.py b/src/packetserver/common/__init__.py index 0350575..2902993 100644 --- a/src/packetserver/common/__init__.py +++ b/src/packetserver/common/__init__.py @@ -82,6 +82,22 @@ class PacketServerConnection(Connection): def query_accept(cls, port, call_from, call_to): return True +class DummyPacketServerConnection(PacketServerConnection): + + def __init__(self, call_from: str, call_to: str, incoming=False): + super().__init__(0, call_from, call_to, incoming=incoming) + self.sent_data = Unpacker() + self._state = ConnectionState.CONNECTED + + @property + def state(self): + return self._state + + def send_data(self, data: Union[bytes, bytearray]): + self.sent_data.feed(data) + logging.debug(f"Sender added {data} to self.sent_data.feed") + + class Message: """Base class for communication encapsulated in msgpack objects.""" diff --git a/src/packetserver/common/testing.py b/src/packetserver/common/testing.py deleted file mode 100644 index cfa9618..0000000 --- a/src/packetserver/common/testing.py +++ /dev/null @@ -1,21 +0,0 @@ -from . import PacketServerConnection -from msgpack import Unpacker -from msgpack import packb, unpackb -from pe.connect import Connection, ConnectionState -import logging -from typing import Union - -class DummyPacketServerConnection(PacketServerConnection): - - def __init__(self, call_from: str, call_to: str, incoming=False): - super().__init__(0, call_from, call_to, incoming=incoming) - self.sent_data = Unpacker() - self._state = ConnectionState.CONNECTED - - @property - def state(self): - return self._state - - def send_data(self, data: Union[bytes, bytearray]): - self.sent_data.feed(data) - logging.debug(f"Sender added {data} to self.sent_data.feed") \ No newline at end of file diff --git a/src/packetserver/server/__init__.py b/src/packetserver/server/__init__.py index 1408bb0..a913510 100644 --- a/src/packetserver/server/__init__.py +++ b/src/packetserver/server/__init__.py @@ -2,8 +2,7 @@ import datetime import tempfile import pe.app -from packetserver.common import Response, Message, Request, PacketServerConnection, send_response, send_blank_response, \ - DummyPacketServerConnection +from packetserver.common import Response, Message, Request, PacketServerConnection, send_response, send_blank_response from packetserver.server.constants import default_server_config from packetserver.server.users import User from copy import deepcopy @@ -300,33 +299,3 @@ class Server: self.stop_db() -class TestServer(Server): - def __init__(self, server_callsign: str, data_dir: str = None, zeo: bool = True): - super().__init__('localhost', 8000, server_callsign, data_dir=data_dir, zeo=zeo) - self._data_pid = 1 - self._file_traffic_dir = tempfile.mkdtemp() - self._file_traffic_thread = None - - def start(self): - if self.orchestrator is not None: - self.orchestrator.start() - self.start_db() - self.started = True - self.worker_thread = Thread(target=self.run_worker) - self.worker_thread.start() - - def stop(self): - self.started = False - if self.orchestrator is not None: - self.orchestrator.stop() - self.stop_db() - rmtree(self._file_traffic_dir) - - def data_pid(self) -> int: - old = self._data_pid - self._data_pid = self._data_pid + 1 - return old - - def send_test_data(self, conn: DummyPacketServerConnection, data: bytearray): - conn.data_received(self.data_pid(), data) - self.server_receiver(conn) diff --git a/src/packetserver/server/testserver.py b/src/packetserver/server/testserver.py new file mode 100644 index 0000000..e35c332 --- /dev/null +++ b/src/packetserver/server/testserver.py @@ -0,0 +1,37 @@ +import tempfile +from packetserver.common import (Response, Message, Request, send_response, send_blank_response, + DummyPacketServerConnection) +from shutil import rmtree +from threading import Thread +from . import Server + +class TestServer(Server): + def __init__(self, server_callsign: str, data_dir: str = None, zeo: bool = True): + super().__init__('localhost', 8000, server_callsign, data_dir=data_dir, zeo=zeo) + self._data_pid = 1 + self._file_traffic_dir = tempfile.mkdtemp() + self._file_traffic_thread = None + + def start(self): + if self.orchestrator is not None: + self.orchestrator.start() + self.start_db() + self.started = True + self.worker_thread = Thread(target=self.run_worker) + self.worker_thread.start() + + def stop(self): + self.started = False + if self.orchestrator is not None: + self.orchestrator.stop() + self.stop_db() + rmtree(self._file_traffic_dir) + + def data_pid(self) -> int: + old = self._data_pid + self._data_pid = self._data_pid + 1 + return old + + def send_test_data(self, conn: DummyPacketServerConnection, data: bytearray): + conn.data_received(self.data_pid(), data) + self.server_receiver(conn)