def test_receiving_events(): vim.command('call send_event(%d, "test-event", 1, 2, 3)' % vim.channel_id) event = vim.next_message() eq(event[1], 'test-event') eq(event[2], [1, 2, 3]) vim.command('au FileType python call send_event(%d, "py!", bufnr("$"))' % vim.channel_id) vim.command('set filetype=python') event = vim.next_message() eq(event[1], 'py!') eq(event[2], [vim.current.buffer.number])
def test_broadcast(): vim.subscribe('event2') vim.command('call send_event(0, "event1", 1, 2, 3)') vim.command('call send_event(0, "event2", 4, 5, 6)') vim.command('call send_event(0, "event2", 7, 8, 9)') event = vim.next_message() eq(event[1], 'event2') eq(event[2], [4, 5, 6]) event = vim.next_message() eq(event[1], 'event2') eq(event[2], [7, 8, 9]) vim.unsubscribe('event2') vim.subscribe('event1') vim.command('call send_event(0, "event2", 10, 11, 12)') vim.command('call send_event(0, "event1", 13, 14, 15)') msg = vim.next_message() eq(msg[1], 'event1') eq(msg[2], [13, 14, 15])
def test_broadcast(): vim.subscribe('event2') vim.command('call send_event(0, "event1", [1,2,3])') vim.command('call send_event(0, "event2", [4,5,6])') vim.command('call send_event(0, "event2", [7,8,9])') event = vim.next_message() eq(event.name, 'event2') eq(event.arg, [4, 5, 6]) event = vim.next_message() eq(event.name, 'event2') eq(event.arg, [7, 8, 9]) vim.unsubscribe('event2') vim.subscribe('event1') vim.command('call send_event(0, "event2", [10,11,12])') vim.command('call send_event(0, "event1", [13,14,15])') msg = vim.next_message() eq(msg.name, 'event1') eq(msg.arg, [13, 14, 15])
def test_custom_messages(): def produce(i): vim.post('custom-message', None) sleep(0.05 * random()) count = 50 for i in xrange(count): t = Thread(target=produce, args=(i,)) t.daemon = True t.start() custom_messages = [] while len(custom_messages) < 50: custom_messages.append(vim.next_message()) eq(len(custom_messages), 50)