mirror of
				https://github.com/avatao-content/baseimage-tutorial-framework
				synced 2025-11-04 13:12:55 +00:00 
			
		
		
		
	Rename ServerConnector interface to Connector ¯\_(ツ)_/¯
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
			
		||||
from .serialization import serialize_tfw_msg, deserialize_tfw_msg, with_deserialize_tfw_msg, message_bytes
 | 
			
		||||
from .server_connector import ServerUplinkConnector, ServerDownlinkConnector, ServerConnector
 | 
			
		||||
from .event_handler_connector import EventHandlerConnector
 | 
			
		||||
from .zmq_connector import ZMQConnector, ZMQDownlinkConnector, ZMQUplinkConnector
 | 
			
		||||
from .zmq_listener import ZMQListener
 | 
			
		||||
from .scope import Scope
 | 
			
		||||
 
 | 
			
		||||
@@ -7,34 +7,34 @@ from tempfile import TemporaryDirectory
 | 
			
		||||
import pytest
 | 
			
		||||
from tornado.ioloop import IOLoop
 | 
			
		||||
 | 
			
		||||
from tfw.internals.networking import EventHandlerConnector, ServerConnector
 | 
			
		||||
from tfw.internals.networking import ZMQListener, ZMQConnector
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def _connectors():
 | 
			
		||||
def _listener_and_connector():
 | 
			
		||||
    with TemporaryDirectory() as tmpdir:
 | 
			
		||||
        down_sock = join(tmpdir, 'down')
 | 
			
		||||
        up_sock = join(tmpdir, 'up')
 | 
			
		||||
        server_downlink = f'ipc://{down_sock}'
 | 
			
		||||
        server_uplink = f'ipc://{up_sock}'
 | 
			
		||||
 | 
			
		||||
        ec = EventHandlerConnector(server_downlink, server_uplink)
 | 
			
		||||
        sc = ServerConnector(server_uplink, server_downlink)
 | 
			
		||||
        yield ec, sc
 | 
			
		||||
        sc.close()
 | 
			
		||||
        ec.close()
 | 
			
		||||
        listener = ZMQListener(server_downlink, server_uplink)
 | 
			
		||||
        connector = ZMQConnector(server_uplink, server_downlink)
 | 
			
		||||
        yield listener, connector
 | 
			
		||||
        listener.close()
 | 
			
		||||
        connector.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def eh_connector(_connectors):
 | 
			
		||||
    eh_connector, _ = _connectors
 | 
			
		||||
    yield eh_connector
 | 
			
		||||
def zmq_listener(_listener_and_connector):
 | 
			
		||||
    listener, _ = _listener_and_connector
 | 
			
		||||
    yield listener
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def server_connector(_connectors):
 | 
			
		||||
    _, server_connector = _connectors
 | 
			
		||||
    yield server_connector
 | 
			
		||||
def zmq_connector(_listener_and_connector):
 | 
			
		||||
    _, connector = _listener_and_connector
 | 
			
		||||
    yield connector
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def run_ioloop_once():
 | 
			
		||||
@@ -63,42 +63,42 @@ def test_messages():
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_server_downlink(eh_connector, server_connector, test_messages):
 | 
			
		||||
def test_server_downlink(zmq_listener, zmq_connector, test_messages):
 | 
			
		||||
    messages = []
 | 
			
		||||
    eh_connector.register_callback(messages.append)
 | 
			
		||||
    zmq_listener.register_callback(messages.append)
 | 
			
		||||
 | 
			
		||||
    for message in test_messages:
 | 
			
		||||
        server_connector.send_message(message)
 | 
			
		||||
        zmq_connector.send_message(message)
 | 
			
		||||
 | 
			
		||||
    run_ioloop_once()
 | 
			
		||||
 | 
			
		||||
    assert messages == test_messages
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_server_uplink(eh_connector, server_connector, test_messages):
 | 
			
		||||
def test_server_uplink(zmq_listener, zmq_connector, test_messages):
 | 
			
		||||
    messages = []
 | 
			
		||||
    server_connector.subscribe('')
 | 
			
		||||
    server_connector.register_callback(messages.append)
 | 
			
		||||
    zmq_connector.subscribe('')
 | 
			
		||||
    zmq_connector.register_callback(messages.append)
 | 
			
		||||
 | 
			
		||||
    for message in test_messages:
 | 
			
		||||
        eh_connector.send_message(message)
 | 
			
		||||
        zmq_listener.send_message(message)
 | 
			
		||||
 | 
			
		||||
    run_ioloop_once()
 | 
			
		||||
 | 
			
		||||
    assert messages == test_messages
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_connector_downlink_subscribe(eh_connector, server_connector):
 | 
			
		||||
def test_connector_downlink_subscribe(zmq_listener, zmq_connector):
 | 
			
		||||
    key1_messages = [{'key': '1', 'data': i} for i in range(randint(128, 256))]
 | 
			
		||||
    key2_messages = [{'key': '2', 'data': i} for i in range(randint(128, 256))]
 | 
			
		||||
    all_messages = key1_messages + key2_messages
 | 
			
		||||
 | 
			
		||||
    messages = []
 | 
			
		||||
    server_connector.subscribe('1')
 | 
			
		||||
    server_connector.register_callback(messages.append)
 | 
			
		||||
    zmq_connector.subscribe('1')
 | 
			
		||||
    zmq_connector.register_callback(messages.append)
 | 
			
		||||
 | 
			
		||||
    for message in all_messages:
 | 
			
		||||
        eh_connector.send_message(message)
 | 
			
		||||
        zmq_listener.send_message(message)
 | 
			
		||||
 | 
			
		||||
    run_ioloop_once()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ from .serialization import serialize_tfw_msg, with_deserialize_tfw_msg
 | 
			
		||||
LOG = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ServerDownlinkConnector:
 | 
			
		||||
class ZMQDownlinkConnector:
 | 
			
		||||
    def __init__(self, connect_addr):
 | 
			
		||||
        self.keys = []
 | 
			
		||||
        self._on_recv_callback = None
 | 
			
		||||
@@ -41,7 +41,7 @@ class ServerDownlinkConnector:
 | 
			
		||||
        self._zmq_sub_stream.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ServerUplinkConnector:
 | 
			
		||||
class ZMQUplinkConnector:
 | 
			
		||||
    def __init__(self, connect_addr):
 | 
			
		||||
        self._zmq_push_socket = zmq.Context.instance().socket(zmq.PUSH)
 | 
			
		||||
        self._zmq_push_socket.setsockopt(zmq.SNDHWM, 0)
 | 
			
		||||
@@ -55,11 +55,11 @@ class ServerUplinkConnector:
 | 
			
		||||
        self._zmq_push_socket.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ServerConnector(ServerDownlinkConnector, ServerUplinkConnector):
 | 
			
		||||
class ZMQConnector(ZMQDownlinkConnector, ZMQUplinkConnector):
 | 
			
		||||
    def __init__(self, downlink_connect_addr, uplink_connect_addr):
 | 
			
		||||
        ServerDownlinkConnector.__init__(self, downlink_connect_addr)
 | 
			
		||||
        ServerUplinkConnector.__init__(self, uplink_connect_addr)
 | 
			
		||||
        ZMQDownlinkConnector.__init__(self, downlink_connect_addr)
 | 
			
		||||
        ZMQUplinkConnector.__init__(self, uplink_connect_addr)
 | 
			
		||||
 | 
			
		||||
    def close(self):
 | 
			
		||||
        ServerDownlinkConnector.close(self)
 | 
			
		||||
        ServerUplinkConnector.close(self)
 | 
			
		||||
        ZMQDownlinkConnector.close(self)
 | 
			
		||||
        ZMQUplinkConnector.close(self)
 | 
			
		||||
@@ -8,7 +8,7 @@ from .serialization import serialize_tfw_msg, with_deserialize_tfw_msg
 | 
			
		||||
LOG = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventHandlerDownlinkConnector:
 | 
			
		||||
class ZMQDownlinkListener:
 | 
			
		||||
    def __init__(self, bind_addr):
 | 
			
		||||
        self._zmq_pull_socket = zmq.Context.instance().socket(zmq.PULL)
 | 
			
		||||
        self._zmq_pull_socket.setsockopt(zmq.RCVHWM, 0)
 | 
			
		||||
@@ -24,7 +24,7 @@ class EventHandlerDownlinkConnector:
 | 
			
		||||
        self._zmq_pull_stream.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventHandlerUplinkConnector:
 | 
			
		||||
class ZMQUplinkListener:
 | 
			
		||||
    def __init__(self, bind_addr):
 | 
			
		||||
        self._zmq_pub_socket = zmq.Context.instance().socket(zmq.PUB)
 | 
			
		||||
        self._zmq_pub_socket.setsockopt(zmq.SNDHWM, 0)
 | 
			
		||||
@@ -38,11 +38,11 @@ class EventHandlerUplinkConnector:
 | 
			
		||||
        self._zmq_pub_socket.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventHandlerConnector(EventHandlerDownlinkConnector, EventHandlerUplinkConnector):
 | 
			
		||||
class ZMQListener(ZMQDownlinkListener, ZMQUplinkListener):
 | 
			
		||||
    def __init__(self, downlink_bind_addr, uplink_bind_addr):
 | 
			
		||||
        EventHandlerDownlinkConnector.__init__(self, downlink_bind_addr)
 | 
			
		||||
        EventHandlerUplinkConnector.__init__(self, uplink_bind_addr)
 | 
			
		||||
        ZMQDownlinkListener.__init__(self, downlink_bind_addr)
 | 
			
		||||
        ZMQUplinkListener.__init__(self, uplink_bind_addr)
 | 
			
		||||
 | 
			
		||||
    def close(self):
 | 
			
		||||
        EventHandlerDownlinkConnector.close(self)
 | 
			
		||||
        EventHandlerUplinkConnector.close(self)
 | 
			
		||||
        ZMQDownlinkListener.close(self)
 | 
			
		||||
        ZMQUplinkListener.close(self)
 | 
			
		||||
		Reference in New Issue
	
	Block a user