def test_get_members():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    membership = PubNub(config).get_members()
    membership.include(['a', 'b']).limit(30).end('XXX')

    with pytest.raises(PubNubException):
        membership.validate_params()

    membership.space_id('foo')
    assert membership.build_path() == GetMembers.GET_MEMBERS_PATH % (SUB_KEY, 'foo')

    params = membership.custom_params()
    assert params['include'] == 'a,b'
    assert params['limit'] == 30
    assert params['end'] == 'XXX'
    assert 'count' not in params

    membership.start('YYY').count(True)
    params = membership.custom_params()
    assert 'end' not in params
    assert params['start'] == 'YYY'
    assert params['count'] is True

    assert AUTH == membership.build_params_callback()({})['auth']
def test_manage_memberships():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    membership = PubNub(config).manage_memberships()
    membership.include(['custom']).limit(30).end('XXX')

    with pytest.raises(PubNubException):
        membership.validate_params()

    membership.user_id('foo')
    assert membership.build_path(
    ) == ManageMemberships.MANAGE_MEMBERSHIPS_PATH % (SUB_KEY, 'foo')

    params = membership.custom_params()
    assert params['include'] == 'custom'
    assert params['limit'] == 30
    assert params['end'] == 'XXX'
    assert 'count' not in params

    membership.start('YYY').count(True)
    params = membership.custom_params()
    assert 'end' not in params
    assert params['start'] == 'YYY'
    assert params['count'] is True

    assert AUTH == membership.build_params_callback()({})['auth']
    membership.data({"add": [{"id": "my-channel"}]})
    assert membership.build_data() == '{"add": [{"id": "my-channel"}]}'
Esempio n. 3
0
 def _pubnub_config(self):
     channel_config = self.client.channels.list()
     channels = [channel['name'] for channel in channel_config['channels']]
     pnconfig = PNConfiguration()
     pnconfig.subscribe_key = channel_config['subscribe_key']
     pnconfig.cipher_key = channel_config['cipher_key']
     pnconfig.auth_key = channel_config['auth_key']
     pnconfig.ssl = True
     pnconfig.reconnect_policy = PNReconnectionPolicy.LINEAR
     return pnconfig, channels
def test_delete_user():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    user = PubNub(config).delete_user()
    with pytest.raises(PubNubException):
        user.build_path()

    user.user_id('foo')
    assert user.build_path() == DeleteUser.DELETE_USER_PATH % (SUB_KEY, 'foo')
    assert AUTH == user.build_params_callback()({})['auth']
def test_delete_space():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    space = PubNub(config).delete_space()
    with pytest.raises(PubNubException):
        space.build_path()

    space.space_id('foo')
    assert space.build_path() == DeleteSpace.DELETE_DELETE_PATH % (SUB_KEY,
                                                                   'foo')
    assert AUTH == space.build_params_callback()({})['auth']
def test_get_user():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    user = PubNub(config).get_user()
    user.include(['a', 'b'])
    with pytest.raises(PubNubException):
        user.build_path()

    user.user_id('foo')
    assert user.build_path() == GetUser.GET_USER_PATH % (SUB_KEY, 'foo')

    params = user.custom_params()
    assert params['include'] == ['a', 'b']
    assert AUTH == user.build_params_callback()({})['auth']
Esempio n. 7
0
def test_get_space():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    space = PubNub(config).get_space()
    space.include(['a', 'b'])
    with pytest.raises(PubNubException):
        space.build_path()

    space.space_id('foo')
    assert space.build_path() == GetSpace.GET_SPACE_PATH % (SUB_KEY, 'foo')

    params = space.custom_params()
    assert params['include'] == ['a', 'b']
    assert AUTH == space.build_params_callback()({})['auth']
def test_update_space():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    space = PubNub(config).update_space()
    space.include('custom')
    with pytest.raises(PubNubException):
        space.build_path()

    space.space_id('foo')
    assert space.build_path() == UpdateSpace.UPDATE_SPACE_PATH % (SUB_KEY,
                                                                  'foo')
    with pytest.raises(PubNubException):
        space.validate_params()
    space.data({'name': 'bar'})
    assert json.loads(space.build_data()) == {'name': 'bar'}
    assert AUTH == space.build_params_callback()({})['auth']
Esempio n. 9
0
def test_signal():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.publish_key = PUB_KEY
    config.auth_key = AUTH
    signal = PubNub(config).signal()

    with pytest.raises(PubNubException):
        signal.validate_params()
    signal.message(MSG)
    with pytest.raises(PubNubException):
        signal.validate_params()
    signal.channel(CHAN)
    assert signal.build_path() == Signal.SIGNAL_PATH % (PUB_KEY, SUB_KEY, CHAN,
                                                        MSG_ENCODED)
    assert 'auth' in signal.build_params_callback()({})
    assert AUTH == signal.build_params_callback()({})['auth']
    def __init__(self):
        password = raw_input("Database password: ")
        host = 'ephesus.cs.cf.ac.uk'
        user = '******'
        database = 'c1312433'
        self.db = db.DB(host, user, password, database)

        pnconfig = PNConfiguration()

        pnconfig.subscribe_key = 'sub-c-12c2dd92-860f-11e7-8979-5e3a640e5579'
        pnconfig.publish_key = 'pub-c-85d5e576-5d92-48b0-af83-b47a7f21739f'
        pnconfig.reconnect_policy = PNReconnectionPolicy.LINEAR
        pnconfig.subscribe_timeout = pnconfig.connect_timeout = pnconfig.non_subscribe_timeout = 9^99
        pnconfig.auth_key = self.db.embedded_devices_key()
        self.pubnub = PubNub(pnconfig)

        self.pubnub.add_listener(self)
        self.pubnub.subscribe().channels('embedded_devices').execute()
Esempio n. 11
0
    def __init__(self, host, user, password, database):
        print("GatewayAuth: Starting gateway database..")
        self.gd = gateway_database.GatewayDatabase(host, user, password,
                                                   database)

        pnconfig = PNConfiguration()
        pnconfig.subscribe_key = self.gd.sub_key()
        pnconfig.publish_key = self.gd.pub_key()
        pnconfig.secret_key = self.gd.sec_key()
        pnconfig.subscribe_timeout = 9 ^ 99
        pnconfig.connect_timeout = 9 ^ 99
        pnconfig.non_subscribe_timeout = 9 ^ 99
        pnconfig.ssl = True
        pnconfig.reconnect_policy = PNReconnectionPolicy.LINEAR
        pnconfig.uuid = 'GA'
        pnconfig.auth_key = idgen.id_generator(size=42)

        self.pubnub = PubNub(pnconfig)
        self.pubnub.add_listener(self)
        self.pubnub.unsubscribe_all()

        self.admin_channel = idgen.id_generator(size=255)
        self.pubnub.grant().channels(self.admin_channel).auth_keys(
            [self.gd.receivers_key(),
             pnconfig.auth_key]).read(True).write(True).manage(True).sync()

        print("GatewayAuth: Starting the receiver..")
        self.gr = gateway_receiver.Receiver(self.gd, self.admin_channel)
        self.gateway_uuids = [pnconfig.uuid, self.gr.uuid]
        self.gateway_channels = ["gateway_auth", "gateway_global"]

        self.pubnub.grant().channels(
            self.gateway_channels).read(True).write(True).manage(True).sync()
        print(
            "GatewayAuth: Connecting to gateway channel and gateway global feed.."
        )
        self.pubnub.subscribe().channels(
            self.gateway_channels +
            [self.admin_channel]).with_presence().execute()

        self.receiver_auth_key = self.gd.receivers_key()
def test_fire():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.publish_key = PUB_KEY
    config.auth_key = AUTH
    fire = PubNub(config).fire()

    fire.channel(CHAN).message(MSG)
    assert fire.build_path() == Fire.FIRE_GET_PATH % (PUB_KEY, SUB_KEY, CHAN, 0, MSG_ENCODED)
    fire.use_post(True)
    assert fire.build_path() == Fire.FIRE_POST_PATH % (PUB_KEY, SUB_KEY, CHAN, 0)

    params = fire.custom_params()
    assert params['store'] == '0'
    assert params['norep'] == '1'

    fire.meta(META)
    assert 'meta' in fire.build_params_callback()({})
    assert json.dumps(META) == fire.build_params_callback()({})['meta']
    assert 'auth' in fire.build_params_callback()({})
    assert AUTH == fire.build_params_callback()({})['auth']
def test_create_space():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    space = PubNub(config).create_space()
    with pytest.raises(PubNubException):
        space.validate_params()
    space.include({'name': 'a'})
    with pytest.raises(PubNubException):
        space.validate_params()
    space.include({'id': 'x'})
    with pytest.raises(PubNubException):
        space.validate_params()
    space.include('custom')
    with pytest.raises(PubNubException):
        space.validate_params()
    space.data({'id': 'x', 'name': 'a'})
    space.validate_params()

    assert space.build_path() == CreateSpace.CREATE_SPACE_PATH % SUB_KEY
    assert AUTH == space.build_params_callback()({})['auth']
    assert json.loads(space.build_data()) == {'id': 'x', 'name': 'a'}
def test_create_user():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    user = PubNub(config).create_user()
    with pytest.raises(PubNubException):
        user.validate_params()
    user.include({'name': 'a'})
    with pytest.raises(PubNubException):
        user.validate_params()
    user.include({'id': 'x'})
    with pytest.raises(PubNubException):
        user.validate_params()
    user.include('id')
    with pytest.raises(PubNubException):
        user.validate_params()
    user.data({'id': 'user', 'name': 'username'})
    user.validate_params()

    assert user.build_path() == CreateUser.CREATE_USER_PATH % SUB_KEY
    assert AUTH == user.build_params_callback()({})['auth']
    assert json.loads(user.build_data()) == {'id': 'user', 'name': 'username'}
Esempio n. 15
0
def test_get_spaces():
    config = PNConfiguration()
    config.subscribe_key = SUB_KEY
    config.auth_key = AUTH
    spaces = PubNub(config).get_spaces()
    spaces.include(['a', 'b']).limit(30).end('XXX')

    assert spaces.build_path() == GetSpaces.GET_SPACES_PATH % SUB_KEY

    params = spaces.custom_params()
    assert params['include'] == ['a', 'b']
    assert params['limit'] == 30
    assert params['end'] == 'XXX'
    assert 'count' not in params

    spaces.start('YYY').count(True)
    params = spaces.custom_params()
    assert 'end' not in params
    assert params['start'] == 'YYY'
    assert params['count'] is True

    assert AUTH == spaces.build_params_callback()({})['auth']
Esempio n. 16
0
Makeshift client for testcases + videos recorded.
'''

import json
import time
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pnconfiguration import PNConfiguration, PNReconnectionPolicy
from pubnub.pubnub import PubNub, SubscribeListener

pnconfig = PNConfiguration()
pnconfig.uuid = 'speedtestClient'

pnconfig.publish_key = 'pub-c-85d5e576-5d92-48b0-af83-b47a7f21739f'
pnconfig.subscribe_key = 'sub-c-12c2dd92-860f-11e7-8979-5e3a640e5579'
pnconfig.auth_key = 'V575MH48KA'
# pnconfig.auth_key = '0F2D18PV1CTA4JIM98MX9FTZ87Q9IZ4FW53LRHXT3R' # admin key
pnconfig.ssl = True
pnconfig.reconnect_policy = PNReconnectionPolicy.LINEAR
pnconfig.subscribe_timeout = pnconfig.connect_timeout = pnconfig.non_subscribe_timeout = 9 ^ 99

pubnub = PubNub(pnconfig)

pubnub = PubNub(pnconfig)
my_listener = SubscribeListener()
pubnub.add_listener(my_listener)
pubnub.subscribe().channels('SECURE.BN9NDS0PFC').execute()
my_listener.wait_for_connect()
print("Test #18")

msg = json.loads(
Esempio n. 17
0
from pubnub.enums import PNStatusCategory, PNOperationType
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub
import Adafruit_DHT

PIR_pin = 23
Buzzer_pin = 24
dht11_pin = 16

myChannel = "Homesafe"
sensorList = ["buzzer"]
data = {}

pnconfig = PNConfiguration()
pnconfig.cipher_key = 'myCipherKey'
pnconfig.auth_key = 'Homesafe-Roisin-Raspberry-Pi'
pnconfig.subscribe_key = 'sub-c-12924b4c-2f48-11eb-9713-12bae088af96'
pnconfig.publish_key = 'pub-c-4c71c151-b075-498f-bfbc-c6f3221ed3b6'
pnconfig.uuid = 'c26f2970-3fc1-11eb-b378-0242ac130002'
pubnub = PubNub(pnconfig)

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIR_pin, GPIO.IN)
GPIO.setup(Buzzer_pin, GPIO.OUT)


def beep(repeat):
    for i in range(0, repeat):
        for pulse in range(60):
            GPIO.output(Buzzer_pin, True)
Esempio n. 18
0
import logging

import asyncio
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub_asyncio import PubNubAsyncio

pnconfig = PNConfiguration()

pnconfig.publish_key = "pub-c-98863562-19a6-4760-bf0b-d537d1f5c582"
pnconfig.subscribe_key = "sub-c-7ba2ac4c-4836-11e6-85a4-0619f8945a4f"
pnconfig.secret_key = "sec-c-MGFkMjQxYjMtNTUxZC00YzE3LWFiZGYtNzUwMjdjNmM3NDhk"
pnconfig.auth_key = "blah"
pnconfig.enable_subscribe = False

pubnub = PubNubAsyncio(pnconfig)


async def grant():
    envelope = await pubnub.grant().auth_keys("blah").channels(
        "history_channel").read(True).write(True).ttl(0).future()
    print("Grant access: %r" % envelope.status.is_error())


logger = logging.getLogger("pubnub")


async def publish500():
    for i in range(0, 500):
        envelope = await pubnub.publish()\
            .message(['message#', i])\
            .channel('history_channel')\
Esempio n. 19
0
import RPi.GPIO as GPIO
import Adafruit_DHT
import time, threading, spidev
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub

pnconfig = PNConfiguration()

pnconfig.subscribe_key = 'sub-c-c96cd480-3528-11e8-a218-f214888d2de6'
pnconfig.publish_key = 'pub-c-f141a42f-ae6d-4f11-bbaf-4bc7cb518b6c'
##########################
pnconfig.cipher_key = 'myCipherKey'
pnconfig.auth_key = 'raspberry-pi'
pnconfig.ssl = True
pubnub = PubNub(pnconfig)

myChannel = "RSPY"
PIR_pin = 23
Buzzer_pin = 24
LED = 18
dht11_pin = 5
sensorsList = ["buzzer"]
data = {}
# Define MCP3008 channels
light_channel = 0

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIR_pin, GPIO.IN)
Esempio n. 20
0
__author__ = "@sgript"

'''
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pnconfiguration import PNConfiguration, PNReconnectionPolicy
from pubnub.pubnub import PubNub, SubscribeListener
import sys

sys.path.append("..")
from helpers import id_generator as idgen

pnconfig = PNConfiguration()
pnconfig.publish_key = 'pub-c-85d5e576-5d92-48b0-af83-b47a7f21739f'
pnconfig.subscribe_key = 'sub-c-12c2dd92-860f-11e7-8979-5e3a640e5579'
pnconfig.auth_key = 'EMB_48391'
pnconfig.ssl = True
pnconfig.reconnect_policy = PNReconnectionPolicy.LINEAR
pnconfig.subscribe_timeout = pnconfig.connect_timeout = pnconfig.non_subscribe_timeout = 9 ^ 99

pubnub = PubNub(pnconfig)

my_listener = SubscribeListener()
pubnub.add_listener(my_listener)
pubnub.subscribe().channels('embedded_devices').execute()


# series of functions to control LEDs
def LED_on(colour, auth_key=None):
    """colour: E.g. red"""
    pnconfig.auth_key = auth_key
Esempio n. 21
0
from pubnub.enums import PNStatusCategory, PNOperationType
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub

MQTT_ADDRESS = '192.168.178.25'
MQTT_USER = '******'
MQTT_PASSWORD = '******'
MQTT_TOPIC = 'home/+/+'

myChannel = "Homesafe"
sensorList = ["buzzer"]
data = {}

pnconfig = PNConfiguration()
pnconfig.cipher_key = 'myCipherKey'
pnconfig.auth_key = 'Homesafe-Finbar-Raspberry-Pi'
pnconfig.subscribe_key = 'sub-c-12924b4c-2f48-11eb-9713-12bae088af96'
pnconfig.publish_key = 'pub-c-4c71c151-b075-498f-bfbc-c6f3221ed3b6'
pnconfig.uuid = '62d358a1-ee39-4aba-8950-2677d2dd5bcd'  #'8f255df0-3657-11eb-adc1-0242ac120002'
pubnub = PubNub(pnconfig)


def publish(custom_channel, msg):
    pubnub.publish().channel(custom_channel).message(msg).pn_async(
        my_publish_callback)


def my_publish_callback(envelope, status):
    # Check whether request successfully completed or not
    if not status.is_error():
        pass  # Message successfully published to specified channel.