예제 #1
0
파일: test_state.py 프로젝트: pubnub/python
    def test_single_channel(self):
        ch = "state-native-sync-ch"
        pubnub = PubNub(pnconf_copy())
        pubnub.config.uuid = "state-native-sync-uuid"
        state = {"name": "Alex", "count": 5}

        pubnub.set_state() \
            .channels(ch) \
            .state(state) \
            .pn_async(self.callback)

        self.event.wait()
        assert not self.status.is_error()
        assert isinstance(self.response, PNSetStateResult)
        assert self.response.state['name'] == "Alex"
        assert self.response.state['count'] == 5

        self.event.clear()
        pubnub.get_state() \
            .channels(ch) \
            .pn_async(self.callback)

        self.event.wait()
        assert not self.status.is_error()
        assert isinstance(self.response, PNGetStateResult)
        assert self.response.channels[ch]['name'] == "Alex"
        assert self.response.channels[ch]['count'] == 5
예제 #2
0
파일: test_state.py 프로젝트: pubnub/python
    def test_multiple_channels(self):
        ch1 = "state-native-sync-ch-1"
        ch2 = "state-native-sync-ch-2"
        pubnub = PubNub(pnconf_copy())
        pubnub.config.uuid = "state-native-sync-uuid"
        state = {"name": "Alex", "count": 5}

        pubnub.set_state().channels([ch1, ch2]).state(state).async(self.callback)

        self.event.wait()
        assert not self.status.is_error()
        assert isinstance(self.response, PNSetStateResult)
        assert self.response.state["name"] == "Alex"
        assert self.response.state["count"] == 5

        self.event.clear()
        pubnub.get_state().channels([ch1, ch2]).async(self.callback)

        self.event.wait()
        assert not self.status.is_error()
        assert isinstance(self.response, PNGetStateResult)
        assert self.response.channels[ch1]["name"] == "Alex"
        assert self.response.channels[ch1]["count"] == 5
        assert self.response.channels[ch2]["name"] == "Alex"
        assert self.response.channels[ch2]["count"] == 5
예제 #3
0
    def test_multiple_channels(self):
        ch1 = "state-native-sync-ch-1"
        ch2 = "state-native-sync-ch-2"
        pubnub = PubNub(pnconf_copy())
        pubnub.config.uuid = "state-native-sync-uuid"
        state = {"name": "Alex", "count": 5}

        pubnub.set_state() \
            .channels([ch1, ch2]) \
            .state(state) \
            .pn_async(self.callback)

        self.event.wait()
        assert not self.status.is_error()
        assert isinstance(self.response, PNSetStateResult)
        assert self.response.state['name'] == "Alex"
        assert self.response.state['count'] == 5

        self.event.clear()
        pubnub.get_state() \
            .channels([ch1, ch2]) \
            .pn_async(self.callback)

        self.event.wait()
        assert not self.status.is_error()
        assert isinstance(self.response, PNGetStateResult)
        assert self.response.channels[ch1]['name'] == "Alex"
        assert self.response.channels[ch1]['count'] == 5
        assert self.response.channels[ch2]['name'] == "Alex"
        assert self.response.channels[ch2]['count'] == 5
예제 #4
0
파일: test_state.py 프로젝트: pubnub/python
    def test_single_channel(self):
        ch = "state-native-sync-ch"
        pubnub = PubNub(pnconf_copy())
        pubnub.config.uuid = "state-native-sync-uuid"
        state = {"name": "Alex", "count": 5}

        envelope = pubnub.set_state().channels(ch).state(state).sync()

        assert isinstance(envelope.result, PNSetStateResult)
        assert envelope.result.state['name'] == "Alex"
        assert envelope.result.state['count'] == 5

        envelope = pubnub.get_state().channels(ch).sync()

        assert isinstance(envelope.result, PNGetStateResult)
        assert envelope.result.channels[ch]['name'] == "Alex"
        assert envelope.result.channels[ch]['count'] == 5
    def test_single_channel(self):
        ch = "state-native-sync-ch"
        pubnub = PubNub(pnconf_copy())
        pubnub.config.uuid = "state-native-sync-uuid"
        state = {"name": "Alex", "count": 5}

        envelope = pubnub.set_state().channels(ch).state(state).sync()

        assert isinstance(envelope.result, PNSetStateResult)
        assert envelope.result.state['name'] == "Alex"
        assert envelope.result.state['count'] == 5

        envelope = pubnub.get_state().channels(ch).sync()

        assert isinstance(envelope.result, PNGetStateResult)
        assert envelope.result.channels[ch]['name'] == "Alex"
        assert envelope.result.channels[ch]['count'] == 5
예제 #6
0
파일: test_state.py 프로젝트: pubnub/python
    def test_super_call(self):
        ch1 = "state-tornado-ch1"
        ch2 = "state-tornado-ch2"
        pnconf = pnconf_pam_copy()
        pubnub = PubNub(pnconf)
        pubnub.config.uuid = 'test-state-native-uuid-|.*$'
        state = {"name": "Alex", "count": 5}

        env = pubnub.set_state() \
            .channels([ch1, ch2]) \
            .state(state) \
            .sync()

        assert env.result.state['name'] == "Alex"
        assert env.result.state['count'] == 5

        env = pubnub.get_state() \
            .channels([ch1, ch2]) \
            .sync()

        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
    def test_super_call(self):
        ch1 = "state-tornado-ch1"
        ch2 = "state-tornado-ch2"
        pnconf = pnconf_pam_copy()
        pubnub = PubNub(pnconf)
        pubnub.config.uuid = 'test-state-native-uuid-|.*$'
        state = {"name": "Alex", "count": 5}

        env = pubnub.set_state() \
            .channels([ch1, ch2]) \
            .state(state) \
            .sync()

        assert env.result.state['name'] == "Alex"
        assert env.result.state['count'] == 5

        env = pubnub.get_state() \
            .channels([ch1, ch2]) \
            .sync()

        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
예제 #8
0
from pubnub.enums import PNOperationType, PNStatusCategory

from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub, SubscribeListener

pubnub.set_stream_logger('pubnub', logging.DEBUG)

pnconfig = PNConfiguration()

pnconfig.subscribe_key = 'demo'
pnconfig.publish_key = 'demo'

pubnub = PubNub(pnconfig)


def get_state_handler(result, status):
    if status.is_error():
        # handle error
        return

    print(result)


pubnub.set_state().channels("my_channel").state({'age': 30}).sync()
pubnub.get_state().channels("my_channel").async(get_state_handler)





예제 #9
0
import logging
import pubnub

from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub, SubscribeListener

pubnub.set_stream_logger('pubnub', logging.DEBUG)

pnconfig = PNConfiguration()

pnconfig.subscribe_key = 'demo'
pnconfig.publish_key = 'demo'

pubnub = PubNub(pnconfig)

my_listener = SubscribeListener()
pubnub.add_listener(my_listener)

pubnub.subscribe().channels("my_channel").execute()

my_listener.wait_for_connect()

state = {'field_a': 'awesome', 'field_b': 10}
envelope = pubnub.set_state().channels('awesome_channel').channel_groups(
    'awesome_channel_groups').state(state).sync()