def test_super_call(event_loop): pubnub = PubNubAsyncio(pnconf_pam_copy(), custom_event_loop=event_loop) ch = "channel-groups-tornado-ch" gr = "channel-groups-tornado-cg" # add env = yield from pubnub.add_channel_to_channel_group() \ .channels(ch).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsAddChannelResult) # list env = yield from pubnub.list_channels_in_channel_group().channel_group( gr).future() assert isinstance(env.result, PNChannelGroupsListResult) # remove channel env = yield from pubnub.remove_channel_from_channel_group().channel_group( gr).channels(ch).future() assert isinstance(env.result, PNChannelGroupsRemoveChannelResult) # remove group env = yield from pubnub.remove_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsRemoveGroupResult) # list env = yield from pubnub.list_channels_in_channel_group().channel_group( gr).future() assert isinstance(env.result, PNChannelGroupsListResult) pubnub.stop()
def test_cg_subscribe_unsubscribe(event_loop, sleeper=asyncio.sleep): ch = "test-subscribe-asyncio-channel" gr = "test-subscribe-asyncio-group" pubnub = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) envelope = yield from pubnub.add_channel_to_channel_group().channel_group( gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 yield from sleeper(3) callback_messages = SubscribeListener() pubnub.add_listener(callback_messages) pubnub.subscribe().channel_groups(gr).execute() yield from callback_messages.wait_for_connect() pubnub.unsubscribe().channel_groups(gr).execute() yield from callback_messages.wait_for_disconnect() envelope = yield from pubnub.remove_channel_from_channel_group( ).channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 pubnub.stop()
def test_add_channel_remove_group(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf, custom_event_loop=event_loop) ch = "channel-groups-tornado-ch" gr = "channel-groups-tornado-cg" # add env = yield from pubnub.add_channel_to_channel_group() \ .channels(ch).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsAddChannelResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group( gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 1 assert env.result.channels[0] == ch # remove group env = yield from pubnub.remove_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsRemoveGroupResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group( gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 0 pubnub.stop()
def test_super_call(event_loop): pubnub = PubNubAsyncio(pnconf_pam_copy(), custom_event_loop=event_loop) ch = "channel-groups-torna|do-ch" gr = "channel-groups-torna|do-cg" pubnub.config.auth = "h.e|l%l,0" # add env = yield from pubnub.add_channel_to_channel_group() \ .channels(ch).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsAddChannelResult) # list env = yield from pubnub.list_channels_in_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsListResult) # remove channel env = yield from pubnub.remove_channel_from_channel_group().channel_group(gr).channels(ch).future() assert isinstance(env.result, PNChannelGroupsRemoveChannelResult) # remove group env = yield from pubnub.remove_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsRemoveGroupResult) # list env = yield from pubnub.list_channels_in_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsListResult) pubnub.stop()
def test_add_channel_remove_group(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf, custom_event_loop=event_loop) ch = "channel-groups-tornado-ch" gr = "channel-groups-tornado-cg" # add env = yield from pubnub.add_channel_to_channel_group() \ .channels(ch).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsAddChannelResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 1 assert env.result.channels[0] == ch # remove group env = yield from pubnub.remove_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsRemoveGroupResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 0 pubnub.stop()
def test_unsubscribe_all(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) pubnub.config.uuid = "test-subscribe-asyncio-messenger" ch = "test-subscribe-asyncio-unsubscribe-all-ch" ch1 = "test-subscribe-asyncio-unsubscribe-all-ch1" ch2 = "test-subscribe-asyncio-unsubscribe-all-ch2" ch3 = "test-subscribe-asyncio-unsubscribe-all-ch3" gr1 = "test-subscribe-asyncio-unsubscribe-all-gr1" gr2 = "test-subscribe-asyncio-unsubscribe-all-gr2" envelope = yield from pubnub.add_channel_to_channel_group().channel_group( gr1).channels(ch).future() assert envelope.status.original_response['status'] == 200 envelope = yield from pubnub.add_channel_to_channel_group().channel_group( gr2).channels(ch).future() assert envelope.status.original_response['status'] == 200 yield from sleeper(1) callback_messages = VCR599Listener(1) pubnub.add_listener(callback_messages) pubnub.subscribe().channels([ch1, ch2, ch3]).channel_groups([gr1, gr2]).execute() yield from callback_messages.wait_for_connect() assert len(pubnub.get_subscribed_channels()) == 3 assert len(pubnub.get_subscribed_channel_groups()) == 2 pubnub.unsubscribe_all() yield from callback_messages.wait_for_disconnect() assert len(pubnub.get_subscribed_channels()) == 0 assert len(pubnub.get_subscribed_channel_groups()) == 0 envelope = yield from pubnub.remove_channel_from_channel_group( ).channel_group(gr1).channels(ch).future() assert envelope.status.original_response['status'] == 200 envelope = yield from pubnub.remove_channel_from_channel_group( ).channel_group(gr2).channels(ch).future() assert envelope.status.original_response['status'] == 200 pubnub.stop()
def test_unsubscribe_all(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) pubnub.config.uuid = "test-subscribe-asyncio-messenger" ch = "test-subscribe-asyncio-unsubscribe-all-ch" ch1 = "test-subscribe-asyncio-unsubscribe-all-ch1" ch2 = "test-subscribe-asyncio-unsubscribe-all-ch2" ch3 = "test-subscribe-asyncio-unsubscribe-all-ch3" gr1 = "test-subscribe-asyncio-unsubscribe-all-gr1" gr2 = "test-subscribe-asyncio-unsubscribe-all-gr2" envelope = yield from pubnub.add_channel_to_channel_group().channel_group(gr1).channels(ch).future() assert envelope.status.original_response['status'] == 200 envelope = yield from pubnub.add_channel_to_channel_group().channel_group(gr2).channels(ch).future() assert envelope.status.original_response['status'] == 200 yield from sleeper(1) callback_messages = VCR599Listener(1) pubnub.add_listener(callback_messages) pubnub.subscribe().channels([ch1, ch2, ch3]).channel_groups([gr1, gr2]).execute() yield from callback_messages.wait_for_connect() assert len(pubnub.get_subscribed_channels()) == 3 assert len(pubnub.get_subscribed_channel_groups()) == 2 pubnub.unsubscribe_all() yield from callback_messages.wait_for_disconnect() assert len(pubnub.get_subscribed_channels()) == 0 assert len(pubnub.get_subscribed_channel_groups()) == 0 envelope = yield from pubnub.remove_channel_from_channel_group().channel_group(gr1).channels(ch).future() assert envelope.status.original_response['status'] == 200 envelope = yield from pubnub.remove_channel_from_channel_group().channel_group(gr2).channels(ch).future() assert envelope.status.original_response['status'] == 200 pubnub.stop()
def test_cg_subscribe_publish_unsubscribe(event_loop, sleeper=asyncio.sleep): ch = "test-subscribe-asyncio-channel" gr = "test-subscribe-asyncio-group" message = "hey" pubnub = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) envelope = yield from pubnub.add_channel_to_channel_group().channel_group( gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 yield from sleeper(1) callback_messages = VCR599Listener(1) pubnub.add_listener(callback_messages) pubnub.subscribe().channel_groups(gr).execute() yield from callback_messages.wait_for_connect() subscribe_future = asyncio.ensure_future( callback_messages.wait_for_message_on(ch)) publish_future = asyncio.ensure_future( pubnub.publish().channel(ch).message(message).future()) yield from asyncio.wait([subscribe_future, publish_future]) sub_envelope = subscribe_future.result() pub_envelope = publish_future.result() assert pub_envelope.status.original_response[0] == 1 assert pub_envelope.status.original_response[1] == 'Sent' assert sub_envelope.channel == ch assert sub_envelope.subscription == gr assert sub_envelope.message == message pubnub.unsubscribe().channel_groups(gr).execute() yield from callback_messages.wait_for_disconnect() envelope = yield from pubnub.remove_channel_from_channel_group( ).channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 pubnub.stop()
def test_add_remove_single_channel(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf_copy(), custom_event_loop=event_loop) pubnub.config.uuid = 'test-channel-group-asyncio-uuid1' ch = "test-channel-groups-asyncio-ch" gr = "test-channel-groups-asyncio-cg" yield from pubnub.publish().channel(ch).message("hey").future() # add env = yield from pubnub.add_channel_to_channel_group() \ .channels(ch).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsAddChannelResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group( gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 1 assert env.result.channels[0] == ch # remove env = yield from pubnub.remove_channel_from_channel_group() \ .channels(ch).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsRemoveChannelResult) yield from sleeper(1) # change uuid to let vcr to distinguish list requests pubnub.config.uuid = 'test-channel-group-asyncio-uuid2' # list env = yield from pubnub.list_channels_in_channel_group().channel_group( gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 0 pubnub.stop()
def test_add_remove_single_channel(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf_copy(), custom_event_loop=event_loop) pubnub.config.uuid = 'test-channel-group-asyncio-uuid1' ch = "test-channel-groups-asyncio-ch" gr = "test-channel-groups-asyncio-cg" yield from pubnub.publish().channel(ch).message("hey").future() # add env = yield from pubnub.add_channel_to_channel_group() \ .channels(ch).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsAddChannelResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 1 assert env.result.channels[0] == ch # remove env = yield from pubnub.remove_channel_from_channel_group() \ .channels(ch).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsRemoveChannelResult) yield from sleeper(1) # change uuid to let vcr to distinguish list requests pubnub.config.uuid = 'test-channel-group-asyncio-uuid2' # list env = yield from pubnub.list_channels_in_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 0 pubnub.stop()
def test_cg_subscribe_publish_unsubscribe(event_loop, sleeper=asyncio.sleep): ch = "test-subscribe-asyncio-channel" gr = "test-subscribe-asyncio-group" message = "hey" pubnub = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) envelope = yield from pubnub.add_channel_to_channel_group().channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 yield from sleeper(1) callback_messages = VCR599Listener(1) pubnub.add_listener(callback_messages) pubnub.subscribe().channel_groups(gr).execute() yield from callback_messages.wait_for_connect() subscribe_future = asyncio.ensure_future(callback_messages.wait_for_message_on(ch)) publish_future = asyncio.ensure_future(pubnub.publish().channel(ch).message(message).future()) yield from asyncio.wait([subscribe_future, publish_future]) sub_envelope = subscribe_future.result() pub_envelope = publish_future.result() assert pub_envelope.status.original_response[0] == 1 assert pub_envelope.status.original_response[1] == 'Sent' assert sub_envelope.channel == ch assert sub_envelope.subscription == gr assert sub_envelope.message == message pubnub.unsubscribe().channel_groups(gr).execute() yield from callback_messages.wait_for_disconnect() envelope = yield from pubnub.remove_channel_from_channel_group().channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 pubnub.stop()
def test_add_remove_multiple_channels(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf, custom_event_loop=event_loop) ch1 = "channel-groups-tornado-ch1" ch2 = "channel-groups-tornado-ch2" gr = "channel-groups-tornado-cg" # add env = yield from pubnub.add_channel_to_channel_group() \ .channels([ch1, ch2]).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsAddChannelResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group( gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 2 assert ch1 in env.result.channels assert ch2 in env.result.channels # remove env = yield from pubnub.remove_channel_from_channel_group() \ .channels([ch1, ch2]).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsRemoveChannelResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group( gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 0 pubnub.stop()
def test_cg_subscribe_unsubscribe(event_loop, sleeper=asyncio.sleep): ch = "test-subscribe-asyncio-channel" gr = "test-subscribe-asyncio-group" pubnub = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) envelope = yield from pubnub.add_channel_to_channel_group().channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 yield from sleeper(3) callback_messages = SubscribeListener() pubnub.add_listener(callback_messages) pubnub.subscribe().channel_groups(gr).execute() yield from callback_messages.wait_for_connect() pubnub.unsubscribe().channel_groups(gr).execute() yield from callback_messages.wait_for_disconnect() envelope = yield from pubnub.remove_channel_from_channel_group().channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 pubnub.stop()
def test_add_remove_multiple_channels(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf, custom_event_loop=event_loop) ch1 = "channel-groups-tornado-ch1" ch2 = "channel-groups-tornado-ch2" gr = "channel-groups-tornado-cg" # add env = yield from pubnub.add_channel_to_channel_group() \ .channels([ch1, ch2]).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsAddChannelResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 2 assert ch1 in env.result.channels assert ch2 in env.result.channels # remove env = yield from pubnub.remove_channel_from_channel_group() \ .channels([ch1, ch2]).channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsRemoveChannelResult) yield from sleeper(1) # list env = yield from pubnub.list_channels_in_channel_group().channel_group(gr).future() assert isinstance(env.result, PNChannelGroupsListResult) assert len(env.result.channels) == 0 pubnub.stop()
def test_cg_join_leave(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) pubnub_listener = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) pubnub.config.uuid = "test-subscribe-asyncio-messenger" pubnub_listener.config.uuid = "test-subscribe-asyncio-listener" ch = "test-subscribe-asyncio-join-leave-cg-channel" gr = "test-subscribe-asyncio-join-leave-cg-group" envelope = yield from pubnub.add_channel_to_channel_group().channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 yield from sleeper(1) callback_messages = VCR599Listener(1) callback_presence = VCR599Listener(1) pubnub_listener.add_listener(callback_presence) pubnub_listener.subscribe().channel_groups(gr).with_presence().execute() yield from callback_presence.wait_for_connect() prs_envelope = yield from callback_presence.wait_for_presence_on(ch) assert prs_envelope.event == 'join' assert prs_envelope.uuid == pubnub_listener.uuid assert prs_envelope.channel == ch assert prs_envelope.subscription == gr pubnub.add_listener(callback_messages) pubnub.subscribe().channel_groups(gr).execute() callback_messages_future = asyncio.ensure_future(callback_messages.wait_for_connect()) presence_messages_future = asyncio.ensure_future(callback_presence.wait_for_presence_on(ch)) yield from asyncio.wait([callback_messages_future, presence_messages_future]) prs_envelope = presence_messages_future.result() assert prs_envelope.event == 'join' assert prs_envelope.uuid == pubnub.uuid assert prs_envelope.channel == ch assert prs_envelope.subscription == gr pubnub.unsubscribe().channel_groups(gr).execute() callback_messages_future = asyncio.ensure_future(callback_messages.wait_for_disconnect()) presence_messages_future = asyncio.ensure_future(callback_presence.wait_for_presence_on(ch)) yield from asyncio.wait([callback_messages_future, presence_messages_future]) prs_envelope = presence_messages_future.result() assert prs_envelope.event == 'leave' assert prs_envelope.uuid == pubnub.uuid assert prs_envelope.channel == ch assert prs_envelope.subscription == gr pubnub_listener.unsubscribe().channel_groups(gr).execute() yield from callback_presence.wait_for_disconnect() envelope = yield from pubnub.remove_channel_from_channel_group().channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 pubnub.stop() pubnub_listener.stop()
def test_cg_join_leave(event_loop, sleeper=asyncio.sleep): pubnub = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) pubnub_listener = PubNubAsyncio(pnconf_sub_copy(), custom_event_loop=event_loop) pubnub.config.uuid = "test-subscribe-asyncio-messenger" pubnub_listener.config.uuid = "test-subscribe-asyncio-listener" ch = "test-subscribe-asyncio-join-leave-cg-channel" gr = "test-subscribe-asyncio-join-leave-cg-group" envelope = yield from pubnub.add_channel_to_channel_group().channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 yield from sleeper(1) callback_messages = SubscribeListener() callback_presence = SubscribeListener() pubnub_listener.add_listener(callback_presence) pubnub_listener.subscribe().channel_groups(gr).with_presence().execute() yield from callback_presence.wait_for_connect() prs_envelope = yield from callback_presence.wait_for_presence_on(ch) assert prs_envelope.event == 'join' assert prs_envelope.uuid == pubnub_listener.uuid assert prs_envelope.channel == ch assert prs_envelope.subscription == gr pubnub.add_listener(callback_messages) pubnub.subscribe().channel_groups(gr).execute() callback_messages_future = asyncio.ensure_future(callback_messages.wait_for_connect()) presence_messages_future = asyncio.ensure_future(callback_presence.wait_for_presence_on(ch)) yield from asyncio.wait([callback_messages_future, presence_messages_future]) prs_envelope = presence_messages_future.result() assert prs_envelope.event == 'join' assert prs_envelope.uuid == pubnub.uuid assert prs_envelope.channel == ch assert prs_envelope.subscription == gr pubnub.unsubscribe().channel_groups(gr).execute() callback_messages_future = asyncio.ensure_future(callback_messages.wait_for_disconnect()) presence_messages_future = asyncio.ensure_future(callback_presence.wait_for_presence_on(ch)) yield from asyncio.wait([callback_messages_future, presence_messages_future]) prs_envelope = presence_messages_future.result() assert prs_envelope.event == 'leave' assert prs_envelope.uuid == pubnub.uuid assert prs_envelope.channel == ch assert prs_envelope.subscription == gr pubnub_listener.unsubscribe().channel_groups(gr).execute() yield from callback_presence.wait_for_disconnect() envelope = yield from pubnub.remove_channel_from_channel_group().channel_group(gr).channels(ch).future() assert envelope.status.original_response['status'] == 200 pubnub.stop() pubnub_listener.stop()