本文整理汇总了Python中pubnub.pubnub_tornado.PubNubTornado.stop方法的典型用法代码示例。如果您正苦于以下问题:Python PubNubTornado.stop方法的具体用法?Python PubNubTornado.stop怎么用?Python PubNubTornado.stop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pubnub.pubnub_tornado.PubNubTornado
的用法示例。
在下文中一共展示了PubNubTornado.stop方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_super_call
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
def test_super_call(self):
ch1 = "state-tornado-ch1"
ch2 = "state-tornado-ch2"
pnconf = pnconf_pam_copy()
pubnub = PubNubTornado(pnconf, custom_ioloop=self.io_loop)
pubnub.config.uuid = 'test-state-tornado-uuid-|.*$'
state = {"name": "Alex", "count": 5}
env = yield pubnub.set_state() \
.channels([ch1, ch2]) \
.state(state) \
.future()
assert env.result.state['name'] == "Alex"
assert env.result.state['count'] == 5
env = yield pubnub.get_state() \
.channels([ch1, ch2]) \
.future()
assert env.result.channels[ch1]['name'] == "Alex"
assert env.result.channels[ch2]['name'] == "Alex"
assert env.result.channels[ch1]['count'] == 5
assert env.result.channels[ch2]['count'] == 5
pubnub.stop()
self.stop()
示例2: TestPubNubAsyncWhereNow
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
class TestPubNubAsyncWhereNow(AsyncTestCase):
def setUp(self):
super(TestPubNubAsyncWhereNow, self).setUp()
self.pubnub = PubNubTornado(pnconf_sub_copy(), custom_ioloop=self.io_loop)
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/where_now/single_channel.yaml',
filter_query_parameters=['uuid', 'pnsdk'])
@tornado.testing.gen_test(timeout=15)
def test_where_now_single_channel(self):
ch = "where-now-tornado-ch"
uuid = "where-now-tornado-uuid"
self.pubnub.config.uuid = uuid
yield connect_to_channel(self.pubnub, ch)
yield gen.sleep(10)
env = yield self.pubnub.where_now() \
.uuid(uuid) \
.future()
channels = env.result.channels
assert len(channels) == 1
assert channels[0] == ch
yield disconnect_from_channel(self.pubnub, ch)
self.pubnub.stop()
self.stop()
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/where_now/multiple_channels.yaml',
filter_query_parameters=['uuid', 'pnsdk'])
@tornado.testing.gen_test(timeout=15)
def test_multiple_channels(self):
ch1 = "where-now-tornado-ch1"
ch2 = "where-now-tornado-ch2"
uuid = "where-now-tornado-uuid"
self.pubnub.config.uuid = uuid
callback_messages = SubscribeListener()
self.pubnub.add_listener(callback_messages)
self.pubnub.subscribe().channels(ch1).execute()
yield callback_messages.wait_for_connect()
self.pubnub.subscribe().channels(ch2).execute()
yield gen.sleep(5)
env = yield self.pubnub.where_now() \
.uuid(uuid) \
.future()
channels = env.result.channels
assert len(channels) == 2
assert ch1 in channels
assert ch2 in channels
yield disconnect_from_channel(self.pubnub, [ch1, ch2])
self.pubnub.stop()
self.stop()
示例3: test_publish_futurex
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
def test_publish_futurex(self):
pubnub = PubNubTornado(pnconf_sub_copy(), custom_ioloop=self.io_loop)
envelope = yield pubnub.publish().message('hey').channel('blah').future()
assert isinstance(envelope, TornadoEnvelope)
assert not envelope.is_error()
pubnub.stop()
示例4: test_publish_future_raises
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
def test_publish_future_raises(self):
pubnub = PubNubTornado(corrupted_keys, custom_ioloop=self.io_loop)
e = yield pubnub.publish().message('hey').channel('blah').future()
assert isinstance(e, PubNubTornadoException)
assert e.is_error()
assert 400 == e.value()._status_code
pubnub.stop()
示例5: test_publish_result_raises_pubnub_error
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
def test_publish_result_raises_pubnub_error(self):
pubnub = PubNubTornado(corrupted_keys, custom_ioloop=self.io_loop)
with pytest.raises(PubNubException) as exinfo:
yield pubnub.publish().message('hey').channel('blah').result()
assert 'Invalid Subscribe Key' in str(exinfo.value)
assert 400 == exinfo.value._status_code
pubnub.stop()
示例6: xtest_publish_future_raises_lower_level_error
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
def xtest_publish_future_raises_lower_level_error(self):
pubnub = PubNubTornado(corrupted_keys, custom_ioloop=self.io_loop)
pubnub.http.close()
e = yield pubnub.publish().message('hey').channel('blah').future()
assert isinstance(e, PubNubTornadoException)
assert str(e) == "fetch() called on closed AsyncHTTPClient"
pubnub.stop()
示例7: xtest_publish_result_raises_lower_level_error
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
def xtest_publish_result_raises_lower_level_error(self):
pubnub = PubNubTornado(pnconf_sub_copy(), custom_ioloop=self.io_loop)
# TODO: find a better way ot emulate broken connection
pubnub.http.close()
with self.assertRaises(Exception) as context:
yield pubnub.publish().message('hey').channel('blah').result()
assert 'fetch() called on closed AsyncHTTPClient' in str(context.exception.message)
pubnub.stop()
示例8: test_publish_ssl
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
def test_publish_ssl(self):
print(sys.version_info)
pubnub = PubNubTornado(pnconf_ssl_copy(), custom_ioloop=self.io_loop)
msg = "hey"
pub = pubnub.publish().channel(ch).message(msg)
envelope = yield pub.future()
assert isinstance(envelope, TornadoEnvelope)
assert isinstance(envelope.result, PNPublishResult)
assert isinstance(envelope.status, PNStatus)
assert envelope.result.timetoken > 0
assert len(envelope.status.original_response) > 0
pubnub.stop()
示例9: TestMessageCount
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
class TestMessageCount(AsyncTestCase):
def setUp(self):
AsyncTestCase.setUp(self)
config = pnconf_mc_copy()
config.enable_subscribe = False
self.pn = PubNubTornado(config, custom_ioloop=self.io_loop)
@pn_vcr.use_cassette('tests/integrational/fixtures/tornado/message_count/single.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_cg', 'l_pub'])
@tornado.testing.gen_test
def test_single_channel(self):
chan = 'unique_tornado'
envelope = yield self.pn.publish().channel(chan).message('bla').future()
time = envelope.result.timetoken - 10
envelope = yield self.pn.message_counts().channel(chan).channel_timetokens([time]).future()
assert(isinstance(envelope, TornadoEnvelope))
assert not envelope.status.is_error()
assert envelope.result.channels[chan] == 1
assert isinstance(envelope.result, PNMessageCountResult)
assert isinstance(envelope.status, PNStatus)
self.pn.stop()
@pn_vcr.use_cassette('tests/integrational/fixtures/tornado/message_count/multi.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_cg', 'l_pub'])
@tornado.testing.gen_test
def test_multiple_channels(self):
chan_1 = 'unique_asyncio_1'
chan_2 = 'unique_asyncio_2'
chans = ','.join([chan_1, chan_2])
envelope = yield self.pn.publish().channel(chan_1).message('something').future()
time = envelope.result.timetoken - 10
envelope = yield self.pn.message_counts().channel(chans).channel_timetokens([time, time]).future()
assert(isinstance(envelope, TornadoEnvelope))
assert not envelope.status.is_error()
assert envelope.result.channels[chan_1] == 1
assert envelope.result.channels[chan_2] == 0
assert isinstance(envelope.result, PNMessageCountResult)
assert isinstance(envelope.status, PNStatus)
self.pn.stop()
示例10: TestPubNubState
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
class TestPubNubState(AsyncTestCase):
def setUp(self):
super(TestPubNubState, self).setUp()
self.pubnub = PubNubTornado(pnconf_copy(), custom_ioloop=self.io_loop)
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/state/single_channel.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk'],
match_on=['method', 'host', 'path', 'state_object_in_query'])
@tornado.testing.gen_test
def test_state_single_channel(self):
ch = "state-tornado-ch"
self.pubnub.config.uuid = 'state-tornado-uuid'
state = {"name": "Alex", "count": 5}
env = yield self.pubnub.set_state() \
.channels(ch) \
.state(state) \
.future()
assert env.result.state['name'] == "Alex"
assert env.result.state['count'] == 5
env = yield self.pubnub.get_state() \
.channels(ch) \
.future()
assert env.result.channels[ch]['name'] == "Alex"
assert env.result.channels[ch]['count'] == 5
self.pubnub.stop()
self.stop()
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/state/multiple_channel.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk'],
match_on=['method', 'host', 'path', 'state_object_in_query'])
@tornado.testing.gen_test
def test_multiple_channels(self):
ch1 = "state-tornado-ch1"
ch2 = "state-tornado-ch2"
self.pubnub.config.uuid = 'state-tornado-uuid'
state = {"name": "Alex", "count": 5}
env = yield self.pubnub.set_state() \
.channels([ch1, ch2]) \
.state(state) \
.future()
assert env.result.state['name'] == "Alex"
assert env.result.state['count'] == 5
env = yield self.pubnub.get_state() \
.channels([ch1, ch2]) \
.future()
assert env.result.channels[ch1]['name'] == "Alex"
assert env.result.channels[ch2]['name'] == "Alex"
assert env.result.channels[ch1]['count'] == 5
assert env.result.channels[ch2]['count'] == 5
self.pubnub.stop()
self.stop()
示例11: TestPubNubAsyncPublish
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
class TestPubNubAsyncPublish(AsyncTestCase):
def setUp(self):
AsyncTestCase.setUp(self)
self.env = None
def callback(self, tornado_res):
self.env = tornado_res.result()
self.pubnub.stop()
self.stop()
def assert_success(self, pub):
pub.future().add_done_callback(self.callback)
self.pubnub.start()
self.wait()
assert isinstance(self.env, TornadoEnvelope)
assert isinstance(self.env.result, PNPublishResult)
assert isinstance(self.env.status, PNStatus)
assert self.env.result.timetoken > 0
assert len(self.env.status.original_response) > 0
@tornado.testing.gen_test
def assert_success_yield(self, pub):
envelope = yield pub.future()
assert isinstance(envelope, TornadoEnvelope)
assert isinstance(envelope.result, PNPublishResult)
assert isinstance(envelope.status, PNStatus)
assert envelope.result.timetoken > 0
assert len(envelope.status.original_response) > 0
def assert_success_publish_get(self, msg):
self.pubnub = PubNubTornado(pnconf, custom_ioloop=self.io_loop)
self.assert_success(self.pubnub.publish().channel(ch).message(msg))
self.assert_success_yield(self.pubnub.publish().channel(ch).message(msg))
def assert_success_publish_post(self, msg):
self.pubnub = PubNubTornado(pnconf, custom_ioloop=self.io_loop)
self.assert_success(self.pubnub.publish().channel(ch).message(msg).use_post(True))
self.assert_success_yield(self.pubnub.publish().channel(ch).message(msg).use_post(True))
def assert_success_publish_get_encrypted(self, msg):
self.pubnub = PubNubTornado(pnconf_enc, custom_ioloop=self.io_loop)
self.assert_success(self.pubnub.publish().channel(ch).message(msg))
self.assert_success_yield(self.pubnub.publish().channel(ch).message(msg))
def assert_success_publish_post_encrypted(self, msg):
self.pubnub = PubNubTornado(pnconf_enc, custom_ioloop=self.io_loop)
self.assert_success(self.pubnub.publish().channel(ch).message(msg).use_post(True))
self.assert_success_yield(self.pubnub.publish().channel(ch).message(msg).use_post(True))
def assert_client_side_error(self, pub, expected_err_msg):
try:
yield pub.future()
self.pubnub.start()
self.wait()
except PubNubException as e:
assert expected_err_msg in str(e)
self.pubnub.stop()
self.stop()
@pn_vcr.use_cassette(
'tests/integrational/fixtures/tornado/publish/mixed_via_get.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_pub'])
def test_publish_mixed_via_get(self):
self.assert_success_publish_get("hi")
self.assert_success_publish_get(5)
self.assert_success_publish_get(True)
self.assert_success_publish_get(["hi", "hi2", "hi3"])
@pn_vcr.use_cassette(
'tests/integrational/fixtures/tornado/publish/object_via_get.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_pub'],
match_on=['method', 'scheme', 'host', 'port', 'object_in_path', 'query'])
def test_publish_object_via_get(self):
self.assert_success_publish_get({"name": "Alex", "online": True})
@pn_vcr.use_cassette(
'tests/integrational/fixtures/tornado/publish/mixed_via_post.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_pub'],
match_on=['method', 'scheme', 'host', 'port', 'path', 'query'])
def test_publish_mixed_via_post(self):
self.assert_success_publish_post("hi")
self.assert_success_publish_post(5)
self.assert_success_publish_post(True)
self.assert_success_publish_post(["hi", "hi2", "hi3"])
@pn_vcr.use_cassette(
'tests/integrational/fixtures/tornado/publish/object_via_post.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_pub'],
match_on=['host', 'method', 'path', 'query', 'object_in_body'])
def test_publish_object_via_post(self):
self.assert_success_publish_post({"name": "Alex", "online": True})
@pn_vcr.use_cassette(
'tests/integrational/fixtures/tornado/publish/mixed_via_get_encrypted.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_pub'])
#.........这里部分代码省略.........
示例12: TestPubNubAsyncHereNow
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
class TestPubNubAsyncHereNow(AsyncTestCase):
def setUp(self):
super(TestPubNubAsyncHereNow, self).setUp()
self.pubnub = PubNubTornado(pnconf_sub_copy(), custom_ioloop=self.io_loop)
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/here_now/single.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_pres'])
@tornado.testing.gen_test(timeout=15)
def test_here_now_single_channel(self):
ch = 'test-here-now-channel'
self.pubnub.config.uuid = 'test-here-now-uuid'
yield connect_to_channel(self.pubnub, ch)
yield tornado.gen.sleep(10)
env = yield self.pubnub.here_now() \
.channels(ch) \
.include_uuids(True) \
.future()
assert env.result.total_channels == 1
assert env.result.total_occupancy >= 1
channels = env.result.channels
assert len(channels) == 1
assert channels[0].occupancy == 1
assert channels[0].occupants[0].uuid == self.pubnub.uuid
yield disconnect_from_channel(self.pubnub, ch)
self.pubnub.stop()
self.stop()
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/here_now/multiple.yaml',
filter_query_parameters=['uuid', 'tt', 'tr', 'pnsdk', 'l_pres'])
@tornado.testing.gen_test(timeout=120)
def test_here_now_multiple_channels(self):
ch1 = 'test-here-now-channel1'
ch2 = 'test-here-now-channel2'
self.pubnub.config.uuid = 'test-here-now-uuid'
# print("connecting to the first...")
yield connect_to_channel(self.pubnub, ch1)
# print("...connected to the first")
yield gen.sleep(1)
# print("connecting to the second...")
self.pubnub.subscribe().channels(ch2).execute()
# print("...connected to the second")
yield gen.sleep(5)
env = yield self.pubnub.here_now() \
.channels([ch1, ch2]) \
.future()
assert env.result.total_channels == 2
assert env.result.total_occupancy >= 1
channels = env.result.channels
assert len(channels) == 2
assert channels[0].occupancy >= 1
assert channels[0].occupants[0].uuid == self.pubnub.uuid
assert channels[1].occupancy >= 1
assert channels[1].occupants[0].uuid == self.pubnub.uuid
yield disconnect_from_channel(self.pubnub, [ch1, ch2])
self.pubnub.stop()
self.stop()
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/here_now/global.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'l_pres'])
@tornado.testing.gen_test(timeout=15)
def test_here_now_global(self):
ch1 = 'test-here-now-channel1'
ch2 = 'test-here-now-channel2'
self.pubnub.config.uuid = 'test-here-now-uuid'
callback_messages = SubscribeListener()
self.pubnub.add_listener(callback_messages)
self.pubnub.subscribe().channels(ch1).execute()
yield callback_messages.wait_for_connect()
self.pubnub.subscribe().channels(ch2).execute()
yield gen.sleep(6)
env = yield self.pubnub.here_now().future()
assert env.result.total_channels >= 2
assert env.result.total_occupancy >= 1
yield disconnect_from_channel(self.pubnub, [ch1, ch2])
self.pubnub.stop()
self.stop()
示例13: TestChannelSubscription
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
class TestChannelSubscription(AsyncTestCase, SubscriptionTest):
def setUp(self):
super(TestChannelSubscription, self).setUp()
self.pubnub = PubNubTornado(pnconf_sub_copy(), custom_ioloop=self.io_loop)
self.pubnub_listener = PubNubTornado(pnconf_sub_copy(), custom_ioloop=self.io_loop)
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/subscribe/sub_unsub.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk'])
@tornado.testing.gen_test(timeout=300)
def test_subscribe_unsubscribe(self):
ch = "subscribe-tornado-ch"
callback_messages = SubscribeListener()
self.pubnub.add_listener(callback_messages)
self.pubnub.subscribe().channels(ch).execute()
assert ch in self.pubnub.get_subscribed_channels()
assert len(self.pubnub.get_subscribed_channels()) == 1
yield callback_messages.wait_for_connect()
assert ch in self.pubnub.get_subscribed_channels()
assert len(self.pubnub.get_subscribed_channels()) == 1
self.pubnub.unsubscribe().channels(ch).execute()
assert ch not in self.pubnub.get_subscribed_channels()
assert len(self.pubnub.get_subscribed_channels()) == 0
yield callback_messages.wait_for_disconnect()
assert ch not in self.pubnub.get_subscribed_channels()
assert len(self.pubnub.get_subscribed_channels()) == 0
self.pubnub.stop()
self.stop()
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/subscribe/sub_pub_unsub.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk'])
@tornado.testing.gen_test(timeout=30)
def test_subscribe_publish_unsubscribe(self):
ch = "subscribe-tornado-ch"
message = "hey"
callback_messages = SubscribeListener()
self.pubnub.add_listener(callback_messages)
self.pubnub.subscribe().channels(ch).execute()
yield callback_messages.wait_for_connect()
sub_env, pub_env = yield [
callback_messages.wait_for_message_on(ch),
self.pubnub.publish().channel(ch).message(message).future()]
assert pub_env.status.original_response[0] == 1
assert pub_env.status.original_response[1] == 'Sent'
assert sub_env.channel == ch
assert sub_env.subscription is None
assert sub_env.message == message
self.pubnub.unsubscribe().channels(ch).execute()
yield callback_messages.wait_for_disconnect()
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/subscribe/join_leave.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk'])
@tornado.testing.gen_test(timeout=30)
def test_join_leave(self):
ch = "subscribe-tornado-ch"
# HINT: use random generated uuids to test without VCR
# rnd = gen_string(4)
# self.pubnub.config.uuid = "subscribe-tornado-messenger-%s" % rnd
# self.pubnub_listener.config.uuid = "subscribe-tornado-listener-%s" % rnd
self.pubnub.config.uuid = "subscribe-tornado-messenger-3"
self.pubnub_listener.config.uuid = "subscribe-tornado-listener-3"
callback_presence = SubscribeListener()
self.pubnub_listener.add_listener(callback_presence)
self.pubnub_listener.subscribe().channels(ch).with_presence().execute()
yield callback_presence.wait_for_connect()
envelope = yield callback_presence.wait_for_presence_on(ch)
assert envelope.channel == ch
assert envelope.event == 'join'
assert envelope.uuid == self.pubnub_listener.uuid
callback_messages = SubscribeListener()
self.pubnub.add_listener(callback_messages)
self.pubnub.subscribe().channels(ch).execute()
yield callback_messages.wait_for_connect()
envelope = yield callback_presence.wait_for_presence_on(ch)
assert envelope.channel == ch
assert envelope.event == 'join'
assert envelope.uuid == self.pubnub.uuid
self.pubnub.unsubscribe().channels(ch).execute()
yield callback_messages.wait_for_disconnect()
#.........这里部分代码省略.........
示例14: TestChannelGroupSubscription
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
#.........这里部分代码省略.........
self.pubnub.config.uuid = "test-subscribe-messenger"
self.pubnub_listener.config.uuid = "test-subscribe-listener"
ch = "subscribe-test-channel"
gr = "subscribe-test-group"
envelope = yield self.pubnub.add_channel_to_channel_group().channel_group(gr).channels(ch).future()
assert envelope.status.original_response['status'] == 200
yield gen.sleep(1)
callback_messages = SubscribeListener()
callback_presence = SubscribeListener()
self.pubnub_listener.add_listener(callback_presence)
self.pubnub_listener.subscribe().channel_groups(gr).with_presence().execute()
yield callback_presence.wait_for_connect()
prs_envelope = yield callback_presence.wait_for_presence_on(ch)
assert prs_envelope.event == 'join'
assert prs_envelope.uuid == self.pubnub_listener.uuid
assert prs_envelope.channel == ch
assert prs_envelope.subscription == gr
self.pubnub.add_listener(callback_messages)
self.pubnub.subscribe().channel_groups(gr).execute()
useless, prs_envelope = yield [
callback_messages.wait_for_connect(),
callback_presence.wait_for_presence_on(ch)
]
assert prs_envelope.event == 'join'
assert prs_envelope.uuid == self.pubnub.uuid
assert prs_envelope.channel == ch
assert prs_envelope.subscription == gr
self.pubnub.unsubscribe().channel_groups(gr).execute()
useless, prs_envelope = yield [
callback_messages.wait_for_disconnect(),
callback_presence.wait_for_presence_on(ch)
]
assert prs_envelope.event == 'leave'
assert prs_envelope.uuid == self.pubnub.uuid
assert prs_envelope.channel == ch
assert prs_envelope.subscription == gr
self.pubnub_listener.unsubscribe().channel_groups(gr).execute()
yield callback_presence.wait_for_disconnect()
envelope = yield self.pubnub.remove_channel_from_channel_group().channel_group(gr).channels(ch).future()
assert envelope.status.original_response['status'] == 200
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/subscribe/subscribe_tep_by_step.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk'])
@tornado.testing.gen_test(timeout=30)
def test_subscribe_step_by_step(self):
ch1 = 'test-here-now-channel1'
ch2 = 'test-here-now-channel2'
ch3 = 'test-here-now-channel3'
self.pubnub.config.uuid = 'test-here-now-uuid'
callback_messages = SubscribeListener()
self.pubnub.add_listener(callback_messages)
print("connecting to the first...")
self.pubnub.subscribe().channels(ch1).execute()
yield callback_messages.wait_for_connect()
print("...connected to the first")
yield gen.sleep(1)
print("connecting to the second...")
self.pubnub.subscribe().channels(ch2).execute()
self.pubnub.subscribe().channels(ch3).execute()
self.pubnub.subscribe().channels(ch3).execute()
self.pubnub.subscribe().channels(ch2).execute()
print("...connected to the second")
yield gen.sleep(5)
env = yield self.pubnub.here_now() \
.channels([ch1, ch2]) \
.future()
assert env.result.total_channels == 2
assert env.result.total_occupancy >= 1
channels = env.result.channels
assert len(channels) == 2
assert channels[0].occupancy >= 1
assert channels[0].occupants[0].uuid == self.pubnub.uuid
assert channels[1].occupancy >= 1
assert channels[1].occupants[0].uuid == self.pubnub.uuid
self.pubnub.unsubscribe().channels([ch1, ch2]).execute()
yield callback_messages.wait_for_disconnect()
self.pubnub.unsubscribe().channels(ch3).execute()
self.pubnub.stop()
self.stop()
示例15: TestChannelGroups
# 需要导入模块: from pubnub.pubnub_tornado import PubNubTornado [as 别名]
# 或者: from pubnub.pubnub_tornado.PubNubTornado import stop [as 别名]
class TestChannelGroups(AsyncTestCase):
def setUp(self):
super(TestChannelGroups, self).setUp()
self.pubnub = PubNubTornado(pnconf, custom_ioloop=self.io_loop)
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/groups/add_remove_single_channel.yaml',
filter_query_parameters=['uuid', 'pnsdk'])
@tornado.testing.gen_test
def test_add_remove_single_channel(self):
ch = "channel-groups-tornado-ch"
gr = "channel-groups-tornado-cg"
# add
env = yield self.pubnub.add_channel_to_channel_group() \
.channels(ch).channel_group(gr).future()
assert isinstance(env.result, PNChannelGroupsAddChannelResult)
yield gen.sleep(1)
# list
env = yield self.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 self.pubnub.remove_channel_from_channel_group() \
.channels(ch).channel_group(gr).future()
assert isinstance(env.result, PNChannelGroupsRemoveChannelResult)
yield gen.sleep(1)
# list
env = yield self.pubnub.list_channels_in_channel_group().channel_group(gr).future()
assert isinstance(env.result, PNChannelGroupsListResult)
assert len(env.result.channels) == 0
self.pubnub.stop()
self.stop()
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/groups/add_remove_multiple_channel.yaml',
filter_query_parameters=['uuid', 'pnsdk'])
@tornado.testing.gen_test
def test_add_remove_multiple_channels(self):
ch1 = "channel-groups-tornado-ch1"
ch2 = "channel-groups-tornado-ch2"
gr = "channel-groups-tornado-cg"
# add
env = yield self.pubnub.add_channel_to_channel_group() \
.channels([ch1, ch2]).channel_group(gr).future()
assert isinstance(env.result, PNChannelGroupsAddChannelResult)
yield gen.sleep(1)
# list
env = yield self.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 self.pubnub.remove_channel_from_channel_group() \
.channels([ch1, ch2]).channel_group(gr).future()
assert isinstance(env.result, PNChannelGroupsRemoveChannelResult)
yield gen.sleep(1)
# list
env = yield self.pubnub.list_channels_in_channel_group().channel_group(gr).future()
assert isinstance(env.result, PNChannelGroupsListResult)
assert len(env.result.channels) == 0
self.pubnub.stop()
self.stop()
@use_cassette_and_stub_time_sleep(
'tests/integrational/fixtures/tornado/groups/add_channel_remove_group.yaml',
filter_query_parameters=['uuid', 'seqn', 'pnsdk'])
@tornado.testing.gen_test
def test_add_channel_remove_group(self):
ch = "channel-groups-tornado-ch"
gr = "channel-groups-tornado-cg"
# add
env = yield self.pubnub.add_channel_to_channel_group() \
.channels(ch).channel_group(gr).future()
assert isinstance(env.result, PNChannelGroupsAddChannelResult)
yield gen.sleep(1)
# list
#.........这里部分代码省略.........