def on_test_on_entry_e_group(entry, eventname, eventdata, caller, published_message): test.assertChild('entry_e.on_group_event', assertEq=[(eventdata['params'], { 'v1': 1, 'v2': 2 }), (caller, "group"), (published_message, None)])
def on_test_on_event3(entry, eventname, eventdata, caller, published_message): test.assertChild('entry_a_prog_on', assertEq=[(entry.id, "entry_a@TEST"), (eventname, "test_event"), (eventdata['params'], { "port": "entry_a" })])
def publish(entry, topic_rule, topic_definition): entry.publish('', 'ok') test.assertChild('entry_b_publish', assertEq=[(entry.id, "entry_b@TEST"), (topic_rule, "subs/entry_b/response"), (topic_definition["description"], "test response su subs/entry_b")])
def on_subscribed_message(entry, subscribed_message): firstpm = subscribed_message.message.firstPublishedMessage() source_entry = firstpm.entry if firstpm else None listened_events = subscribed_message.message.events() test.assertChild('entry_b_on_subscribed_message', assertEq=[(entry.id, "entry_b@TEST"), (subscribed_message.payload, "test10"), (subscribed_message.matches, []), (source_entry, None), (listened_events, [])])
def on_subscribed_message2(entry, subscribed_message): firstpm = subscribed_message.message.firstPublishedMessage() source_entry = firstpm.entry if firstpm else None listened_events = subscribed_message.message.events() eventsp = {k['name']: k['params'] for k in listened_events} test.assertChild('entry_b_on_subscribed_message2', assertEq=[(entry.id, "entry_b@TEST"), (subscribed_message.payload, "test10X"), (subscribed_message.matches, ['subs/entry_b/TEST0X', '0X']), (source_entry.id if source_entry else "-", "entry_b@TEST"), (eventsp, { 'test_action_call': { 'value': 'test10X' } })])
def on_test_on_event1(entry, eventname, eventdata, caller, published_message): if test.isRunning('s1'): test.assertChild('entry_a_on_test_event1', assertEq=[(entry.id, "entry_b@TEST"), (eventname, "test_event"), (eventdata['params'], { "port": "test1" })]) elif test.isRunning('s2'): test.assertChild('entry_a_on_test_event1', assertEq=[(entry.id, "entry_b@TEST"), (eventname, "test_event"), (eventdata['params'], { "port": "1" })]) # Important test: a listener can manipulate input data, but it's intended as local manipulation only, changed data MUST not be propagated to other listeners. If below change is propagated, listener "on_test_on_event2" won't be called and test fails eventdata['params']['port'] = "2"
def on_test_on_events_passthrough(entry, eventname, eventdata, caller, published_message): test.assertChild('entry_b_on_events_passthrough', assertEq=[(entry.id, "entry_a@TEST"), (eventname, "test_action_response"), (eventdata['params'], {})])
def system_on_entry_load(entry): test.assertChild("system_started_loading_" + entry.id)