aboutsummaryrefslogtreecommitdiffstats
path: root/python/tests
diff options
context:
space:
mode:
authorDevendra2014-04-11 14:49:43 +0530
committerDevendra2014-04-11 14:49:43 +0530
commit99096b8c11b9a541f6350639e8735495cf90091c (patch)
tree446e63037f76cb98d7e3cc0f93316a8bce96e19e /python/tests
parent765ee5db6fc39d77e55dcf4fe97fb96da2f46d30 (diff)
downloadpubnub-python-99096b8c11b9a541f6350639e8735495cf90091c.tar.bz2
v1 MX and async code for python, twisted, tornado
Diffstat (limited to 'python/tests')
-rwxr-xr-xpython/tests/subscribe-test.py148
1 files changed, 148 insertions, 0 deletions
diff --git a/python/tests/subscribe-test.py b/python/tests/subscribe-test.py
new file mode 100755
index 0000000..0d4c65e
--- /dev/null
+++ b/python/tests/subscribe-test.py
@@ -0,0 +1,148 @@
+## www.pubnub.com - PubNub Real-time push service in the cloud.
+# coding=utf8
+
+## PubNub Real-time Push APIs and Notifications Framework
+## Copyright (c) 2010 Stephen Blum
+## http://www.pubnub.com/
+
+## -----------------------------------
+## PubNub 3.1 Real-time Push Cloud API
+## -----------------------------------
+
+import sys
+sys.path.append('../')
+import datetime
+from Pubnub import Pubnub
+from functools import partial
+from threading import current_thread
+import threading
+publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
+subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
+secret_key = len(sys.argv) > 3 and sys.argv[3] or 'demo'
+cipher_key = len(sys.argv) > 4 and sys.argv[4] or None
+ssl_on = len(sys.argv) > 5 and bool(sys.argv[5]) or False
+
+## -----------------------------------------------------------------------
+## Initiate Pubnub State
+## -----------------------------------------------------------------------
+#pubnub = Pubnub( publish_key, subscribe_key, secret_key, cipher_key, ssl_on )
+pubnub = Pubnub( publish_key, subscribe_key, secret_key, ssl_on )
+crazy = 'hello_world'
+
+current = -1
+
+errors = 0
+received = 0
+
+## -----------------------------------------------------------------------
+## Subscribe Example
+## -----------------------------------------------------------------------
+def message_received(message):
+ print message
+
+def check_received(message):
+ global current
+ global errors
+ global received
+ print message
+ print current
+ if message <= current:
+ print 'ERROR'
+ #sys.exit()
+ errors += 1
+ else:
+ received += 1
+ print 'active thread count : ', threading.activeCount()
+ print 'errors = ' , errors
+ print current_thread().getName(), ' , ', 'received = ', received
+
+ if received != message:
+ print '********** MISSED **************** ', message - received
+ current = message
+
+
+def connected_test(ch) :
+ print 'Connected' , ch
+
+def connected(ch) :
+ pass
+
+
+'''
+pubnub.subscribe({
+ 'channel' : 'abcd1',
+ 'connect' : connected,
+ 'callback' : message_received
+})
+'''
+def cb1():
+ pubnub.subscribe({
+ 'channel' : 'efgh1',
+ 'connect' : connected,
+ 'callback' : message_received
+ })
+
+def cb2():
+ pubnub.subscribe({
+ 'channel' : 'dsm-test',
+ 'connect' : connected_test,
+ 'callback' : check_received
+ })
+
+def cb3():
+ pubnub.unsubscribe({'channel' : 'efgh1'})
+
+def cb4():
+ pubnub.unsubscribe({'channel' : 'abcd1'})
+
+def subscribe(channel):
+ pubnub.subscribe({
+ 'channel' : channel,
+ 'connect' : connected,
+ 'callback' : message_received
+ })
+
+
+print threading.activeCount()
+
+
+pubnub.timeout(15,cb1)
+
+pubnub.timeout(30,cb2)
+
+
+pubnub.timeout(45,cb3)
+
+pubnub.timeout(60,cb4)
+
+#'''
+for x in range(1,1000):
+ #print x
+ def y(t):
+ subscribe('channel-' + str(t))
+
+ def z(t):
+ pubnub.unsubscribe({'channel' : 'channel-' + str(t)})
+
+ pubnub.timeout(x + 5, partial(y,x))
+ pubnub.timeout(x + 25, partial(z, x))
+ x += 10
+#'''
+
+'''
+for x in range(1,1000):
+ def cb(r): print r , ' : ', threading.activeCount()
+ def y(t):
+ pubnub.publish({
+ 'message' : t,
+ 'callback' : cb,
+ 'channel' : 'dsm-test'
+ })
+
+
+ pubnub.timeout(x + 1, partial(y,x))
+ x += 1
+'''
+
+
+pubnub.start()