mirror of
https://github.com/avatao-content/baseimage-tutorial-framework
synced 2024-11-22 04:51:31 +00:00
Fix bug where message scope would be replaced with default scope
This commit is contained in:
parent
13e247b009
commit
0295baad47
@ -8,7 +8,7 @@ from contextlib import suppress
|
||||
import pytest
|
||||
from tornado.ioloop import IOLoop
|
||||
|
||||
from tfw.internals.networking import ZMQListener, ZMQConnector
|
||||
from tfw.internals.networking import ZMQListener, ZMQConnector, Scope, Intent
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@ -96,6 +96,67 @@ def test_server_downlink(zmq_listener, zmq_connector, test_messages):
|
||||
assert messages == test_messages
|
||||
|
||||
|
||||
def test_connector_default_scope_is_zmq(zmq_listener, zmq_connector):
|
||||
messages = []
|
||||
zmq_listener.register_callback(messages.append)
|
||||
|
||||
zmq_connector.send_message({'key': 'cica'})
|
||||
|
||||
run_ioloop_once()
|
||||
|
||||
assert messages[0]['scope'] == Scope.ZMQ.value
|
||||
|
||||
|
||||
def test_connector_preserves_scope(zmq_listener, zmq_connector):
|
||||
messages = []
|
||||
zmq_listener.register_callback(messages.append)
|
||||
|
||||
zmq_connector.send_message({'key': 'cica', 'scope': Scope.WEBSOCKET.value})
|
||||
|
||||
run_ioloop_once()
|
||||
|
||||
assert messages[0]['scope'] == Scope.WEBSOCKET.value
|
||||
|
||||
|
||||
def test_connector_scope_overrides_message_scope(zmq_listener, zmq_connector):
|
||||
messages = []
|
||||
zmq_listener.register_callback(messages.append)
|
||||
|
||||
zmq_connector.send_message(
|
||||
{'key': 'cica', 'scope': Scope.WEBSOCKET.value},
|
||||
scope=Scope.ZMQ
|
||||
)
|
||||
|
||||
run_ioloop_once()
|
||||
|
||||
assert messages[0]['scope'] == Scope.ZMQ.value
|
||||
|
||||
|
||||
def test_connector_adds_intent(zmq_listener, zmq_connector):
|
||||
messages = []
|
||||
zmq_listener.register_callback(messages.append)
|
||||
|
||||
zmq_connector.send_message(
|
||||
{'key': 'cica'},
|
||||
intent=Intent.EVENT
|
||||
)
|
||||
|
||||
run_ioloop_once()
|
||||
|
||||
assert messages[0]['intent'] == Intent.EVENT.value
|
||||
|
||||
|
||||
def test_connector_preserves_intent(zmq_listener, zmq_connector):
|
||||
messages = []
|
||||
zmq_listener.register_callback(messages.append)
|
||||
|
||||
zmq_connector.send_message({'key': 'cica', 'intent': Intent.EVENT.value})
|
||||
|
||||
run_ioloop_once()
|
||||
|
||||
assert messages[0]['intent'] == Intent.EVENT.value
|
||||
|
||||
|
||||
def test_server_uplink(zmq_listener, zmq_connector, test_messages):
|
||||
messages = []
|
||||
zmq_connector.subscribe('')
|
||||
|
@ -4,7 +4,6 @@ import zmq
|
||||
from zmq.eventloop.zmqstream import ZMQStream
|
||||
|
||||
from .scope import Scope
|
||||
from .intent import Intent
|
||||
from .serialization import (
|
||||
serialize_tfw_msg,
|
||||
deserialize_tfw_msg,
|
||||
@ -52,8 +51,11 @@ class ZMQUplinkConnector:
|
||||
self._zmq_push_socket.setsockopt(zmq.SNDHWM, 0)
|
||||
self._zmq_push_socket.connect(connect_addr)
|
||||
|
||||
def send_message(self, message, scope=Scope.ZMQ, intent=None):
|
||||
message['scope'] = scope.value
|
||||
def send_message(self, message, scope=None, intent=None):
|
||||
if 'scope' not in message:
|
||||
message['scope'] = Scope.ZMQ.value
|
||||
if scope is not None:
|
||||
message['scope'] = scope.value
|
||||
if intent is not None:
|
||||
message['intent'] = intent.value
|
||||
self._zmq_push_socket.send_multipart(serialize_tfw_msg(message))
|
||||
|
Loading…
Reference in New Issue
Block a user