Skip to content

Commit 9d41f19

Browse files
Matthew WeppennaarMatthew Weppennaar
authored andcommitted
Adding tests for events on multiple middlewares
1 parent 010e9b7 commit 9d41f19

1 file changed

Lines changed: 48 additions & 4 deletions

File tree

tests/test_workers.py

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ async def handle_outbound(self, message, connector_name):
417417
return message
418418

419419
async def handle_event(self, event, connector_name):
420-
event.helper_metadata["test"] = "event"
420+
event.helper_metadata["test"] = "_ToyMiddleWare1"
421421

422422
return event
423423

@@ -445,8 +445,8 @@ async def handle_outbound(self, message, connector_name):
445445
return message
446446

447447
async def handle_event(self, event, connector_name):
448-
event.helper_metadata["test"] = "event"
449-
448+
prev_helper = event.helper_metadata["test"]
449+
event.helper_metadata["test"] = f"{prev_helper}_ToyMiddleWare2"
450450
return event
451451

452452

@@ -561,7 +561,51 @@ async def test_middle_event(worker_factory, connector_factory):
561561
event = await ri_app.consume_event()
562562
assert message_hello_test.content == "Hello"
563563
assert message_goodbye_test.content == "Goodbye"
564-
assert event.helper_metadata == {"test": "event"}
564+
assert event.helper_metadata == {"test": "_ToyMiddleWare1"}
565+
566+
567+
async def test_multiple_middlewares_event(worker_factory, connector_factory):
568+
"""
569+
This test is to check if middleware is called in
570+
the order that they added to the router
571+
"""
572+
573+
middleware_config = {
574+
"class_path": "tests.test_workers.ToyMiddleware",
575+
"enable_for_connectors": ["test", "app"],
576+
"inbound_enabled": False,
577+
"outbound_enabled": False,
578+
"event_enabled": True,
579+
}
580+
581+
middleware_config_2 = {
582+
"class_path": "tests.test_workers.ToyMiddleware2",
583+
"enable_for_connectors": ["test", "app"],
584+
"inbound_enabled": False,
585+
"outbound_enabled": False,
586+
"event_enabled": True,
587+
}
588+
589+
config = {
590+
"transport_names": ["test"],
591+
"default_app": "app",
592+
"middlewares": [middleware_config, middleware_config_2],
593+
}
594+
595+
async with worker_factory.with_cleanup(MiddlewareWorker, config) as worker:
596+
await worker.setup()
597+
ri_app = await connector_factory.setup_ri("app")
598+
ro_test = await connector_factory.setup_ro("test")
599+
message_hello = mkmsg("Hello")
600+
message_goodbye = mkmsg("Goodbye")
601+
message_id = message_goodbye.message_id
602+
await ro_test.publish_inbound(message_hello)
603+
await ri_app.consume_inbound()
604+
await ri_app.publish_outbound(message_goodbye)
605+
await ro_test.consume_outbound()
606+
await ro_test.publish_event(mkev(message_id))
607+
event = await ri_app.consume_event()
608+
assert event.helper_metadata == {"test": "_ToyMiddleWare1_ToyMiddleWare2"}
565609

566610

567611
async def test_multiple_middle_wares_inbound(worker_factory, connector_factory):

0 commit comments

Comments
 (0)