async def test_bundle(server): address = Address(url=server.url) foo = server.route('/foo', 's') bar = server.route('/bar', 's') baz = server.route('/baz', 's') subs = foo.sub() | bar.sub() | baz.sub() task = create_task(subscribe(subs, 3)) address.bundle([ Message(foo, 'foo'), Message(bar, 'bar'), Message(baz, 'baz'), ]) results = await task assert_results(results, {foo: [['foo']], bar: [['bar']], baz: [['baz']]})
async def test_bundle_delayed(server): address = Address(url=server.url) foo = server.route('/foo', 's') task = create_task(subscribe(foo.sub(), 1)) address.bundle([ Message(foo, 'now'), Bundle([Message(foo, 'later')], timetag=now() + datetime.timedelta(seconds=0.5)) ]) address.delay(1, foo, 'later than later') results = list(await task) assert results == [['now']] assert server.events_pending assert 0 < server.next_event_delay < 1 task = create_task(subscribe(foo.sub(), 1)) results = list(await task) assert results == [['later']] assert server.events_pending assert 0 < server.next_event_delay < 1 task = create_task(subscribe(foo.sub(), 1)) results = list(await task) assert results == [['later than later']] assert not server.events_pending