def make_handler(queue_consumer, service_name="srcservice", event_type="eventtype", handler_type=SERVICE_POOL, reliable_delivery=True, requeue_on_error=False): handler = EventHandler(service_name, event_type, handler_type, reliable_delivery, requeue_on_error) handler.queue_consumer = queue_consumer return handler
def make_handler(queue_consumer, service_name="srcservice", event_type="eventtype", handler_type=SERVICE_POOL, reliable_delivery=True, requeue_on_error=False): handler = EventHandler(service_name, event_type, handler_type, reliable_delivery, requeue_on_error) handler.queue_consumer = queue_consumer return handler
def test_event_handler(queue_consumer, mock_container): container = mock_container container.service_name = "destservice" # test default configuration event_handler = EventHandler("srcservice", "eventtype").bind(container, "foobar") event_handler.setup() assert event_handler.queue.durable is True assert event_handler.queue.routing_key == "eventtype" assert event_handler.queue.exchange.name == "srcservice.events" queue_consumer.register_provider.assert_called_once_with(event_handler) # test service pool handler event_handler = EventHandler("srcservice", "eventtype").bind(container, "foobar") event_handler.setup() assert (event_handler.queue.name == "evt-srcservice-eventtype--destservice.foobar") # test broadcast handler event_handler = EventHandler("srcservice", "eventtype", handler_type=BROADCAST).bind( container, "foobar") event_handler.setup() assert event_handler.queue.name.startswith("evt-srcservice-eventtype-") # test singleton handler event_handler = EventHandler("srcservice", "eventtype", handler_type=SINGLETON).bind( container, "foobar") event_handler.setup() assert event_handler.queue.name == "evt-srcservice-eventtype" # test reliable delivery event_handler = EventHandler("srcservice", "eventtype").bind(container, "foobar") event_handler.setup() assert event_handler.queue.auto_delete is False
def test_event_hander_reliable_delivery_defaults(): handler = EventHandler("srcservice", "eventtype") assert handler.handler_type is SERVICE_POOL assert handler.reliable_delivery is True handler = EventHandler("srcservice", "eventtype", handler_type=BROADCAST) assert handler.handler_type is BROADCAST assert handler.reliable_delivery is False handler = EventHandler("srcservice", "eventtype", handler_type=SINGLETON) assert handler.handler_type is SINGLETON assert handler.reliable_delivery is True with pytest.raises(EventHandlerConfigurationError): EventHandler("srcservice", "eventtype", reliable_delivery=True, handler_type=BROADCAST)
def test_raises_with_default_broadcast_identity(self, queue_consumer, mock_container): container = mock_container container.service_name = "destservice" # test broadcast handler with reliable delivery with pytest.raises(EventHandlerConfigurationError): EventHandler("srcservice", "eventtype", handler_type=BROADCAST, reliable_delivery=True).bind(container, "foobar")
def test_event_handler(queue_consumer, mock_container): container = mock_container container.service_name = "destservice" # test default configuration event_handler = EventHandler("srcservice", "eventtype").bind(container, "foobar") event_handler.setup() assert event_handler.queue.durable is True assert event_handler.queue.routing_key == "eventtype" assert event_handler.queue.exchange.name == "srcservice.events" queue_consumer.register_provider.assert_called_once_with(event_handler) # test service pool handler event_handler = EventHandler("srcservice", "eventtype").bind(container, "foobar") event_handler.setup() assert event_handler.queue.name == ( "evt-srcservice-eventtype--destservice.foobar") assert event_handler.queue.exclusive is False # test broadcast handler with default identifier with patch('nameko.events.uuid') as mock_uuid: mock_uuid.uuid4().hex = "uuid-value" event_handler = EventHandler("srcservice", "eventtype", handler_type=BROADCAST, reliable_delivery=False).bind( container, "foobar") event_handler.setup() assert event_handler.queue.name == ( "evt-srcservice-eventtype--destservice.foobar-{}".format("uuid-value")) assert event_handler.queue.exclusive is True # test broadcast handler with custom identifier class BroadcastEventHandler(EventHandler): broadcast_identifier = "testbox" event_handler = BroadcastEventHandler("srcservice", "eventtype", handler_type=BROADCAST).bind( container, "foobar") event_handler.setup() assert event_handler.queue.name == ( "evt-srcservice-eventtype--destservice.foobar-{}".format("testbox")) assert event_handler.queue.exclusive is False # test singleton handler event_handler = EventHandler("srcservice", "eventtype", handler_type=SINGLETON).bind( container, "foobar") event_handler.setup() assert event_handler.queue.name == "evt-srcservice-eventtype" assert event_handler.queue.exclusive is False # test reliable delivery event_handler = EventHandler("srcservice", "eventtype").bind(container, "foobar") event_handler.setup() assert event_handler.queue.auto_delete is False