diff options
| -rw-r--r-- | Makefile | 19 | ||||
| -rw-r--r-- | Makefile.inc | 3 | ||||
| -rw-r--r-- | VERSION | 2 | ||||
| -rw-r--r-- | common/Makefile | 16 | ||||
| -rw-r--r-- | common/PubnubBase.py | 20 | ||||
| -rw-r--r-- | common/PubnubCoreAsync.py | 9 | ||||
| -rw-r--r-- | python-tornado/Makefile | 17 | ||||
| -rw-r--r-- | python-tornado/Pubnub.py | 1 | ||||
| -rw-r--r-- | python-tornado/tests/benchmark.py | 2 | ||||
| -rw-r--r-- | python-tornado/tests/unit-test.py | 2 | ||||
| -rw-r--r-- | python-twisted/Makefile | 18 | ||||
| -rw-r--r-- | python-twisted/Pubnub.py | 1 | ||||
| -rw-r--r-- | python-twisted/tests/unit-test-full.py | 2 | ||||
| -rw-r--r-- | python-twisted/tests/unit-test.py | 15 | ||||
| -rw-r--r-- | python/Makefile | 19 | ||||
| -rw-r--r-- | python/Pubnub.py | 2 | ||||
| -rwxr-xr-x | python/tests/detailed-history-unit-test.py (renamed from python/examples/detailed-history-unit-test.py) | 5 | ||||
| -rwxr-xr-x | python/tests/unit-test.py | 25 | 
18 files changed, 142 insertions, 36 deletions
| diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dbe0d95 --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +SUBDIRS = common python python-twisted python-tornado + +.PHONY: all +all: +	for dir in $(SUBDIRS); do \ +    	$(MAKE) -C $$dir;     \ +	done + +.PHONY: clean +clean: +	for dir in $(SUBDIRS); do \ +		$(MAKE) clean -C $$dir; \ +	done  + +.PHONY: test +test: +	for dir in $(SUBDIRS); do \ +		$(MAKE) test -C $$dir; \ +	done  diff --git a/Makefile.inc b/Makefile.inc new file mode 100644 index 0000000..68a78c6 --- /dev/null +++ b/Makefile.inc @@ -0,0 +1,3 @@ +REPOS_DIR=.. +VERSION=$(shell cat $(REPOS_DIR)/VERSION) +ECHO=/bin/echo @@ -1 +1 @@ -3.3.2 +3.3.4 diff --git a/common/Makefile b/common/Makefile new file mode 100644 index 0000000..1be6f8c --- /dev/null +++ b/common/Makefile @@ -0,0 +1,16 @@ +include ../Makefile.inc + + +.PHONY: all +all: build + +.PHONY: build +build: +	find -name "Pubnub*py" | xargs sed -i "s/PubNub\ [0-9]\.[0-9]\.[0-9]/PubNub\ $(VERSION)/g" + + +.PHONY: clean +clean: + +.PHONY: test +test: diff --git a/common/PubnubBase.py b/common/PubnubBase.py index 0691a87..b5da9fa 100644 --- a/common/PubnubBase.py +++ b/common/PubnubBase.py @@ -319,22 +319,22 @@ class PubnubBase(object):          ## Capture User Input          channel = str(args['channel']) -        params = []  +        params = dict()           count = 100              if args.has_key('count'):              count = int(args['count']) -        params.append('count' + '=' + str(count))     +        params['count'] = str(count)              if args.has_key('reverse'): -            params.append('reverse' + '=' + str(args['reverse']).lower()) +            params['reverse'] = str(args['reverse']).lower()          if args.has_key('start'): -            params.append('start' + '=' + str(args['start'])) +            params['start'] = str(args['start'])          if args.has_key('end'): -            params.append('end' + '=' + str(args['end'])) +            params['end'] = str(args['end'])          ## Fail if bad input.          if not channel : @@ -348,14 +348,14 @@ class PubnubBase(object):              callback = None           ## Get History -        return self._request([ +        return self._request({ 'urlcomponents' : [              'v2',              'history',              'sub-key',              self.subscribe_key,              'channel',              channel, -        ],params=params , callback=callback); +        ],'urlparams' : params }, callback=callback);      def time(self, args = None) :          """ @@ -377,10 +377,10 @@ class PubnubBase(object):              callback = args['callback']          else :              callback = None  -        time = self._request([ +        time = self._request({'urlcomponents' : [              'time',              '0' -        ], callback) +        ]}, callback)          if time != None:              return time[0] @@ -400,5 +400,5 @@ class PubnubBase(object):                  ch for ch in list(bit)              ]) for bit in request["urlcomponents"]])          if (request.has_key("urlparams")): -            url = url + '?' + "&".join([ x + "=" + y  for x,y in request["urlparams"].items()]) +            url = url + '?' + "&".join([ x + "=" + y  for x,y in request["urlparams"].iteritems()])          return url diff --git a/common/PubnubCoreAsync.py b/common/PubnubCoreAsync.py index 9dcad4b..5b8d130 100644 --- a/common/PubnubCoreAsync.py +++ b/common/PubnubCoreAsync.py @@ -188,3 +188,12 @@ class PubnubCoreAsync(PubnubBase):          ## BEGIN SUBSCRIPTION (LISTEN FOR MESSAGES)          _subscribe() +    def unsubscribe( self, args ): +        channel = str(args['channel']) +        if not (channel in self.subscriptions): +            return False + +        ## DISCONNECT +        self.subscriptions[channel]['connected'] = 0 +        self.subscriptions[channel]['timetoken'] = 0 +        self.subscriptions[channel]['first']     = False diff --git a/python-tornado/Makefile b/python-tornado/Makefile new file mode 100644 index 0000000..2c33cf3 --- /dev/null +++ b/python-tornado/Makefile @@ -0,0 +1,17 @@ +include ../Makefile.inc + + +.PHONY: all +all: build + +.PHONY: build +build: +	find -name "Pubnub*py" | xargs sed -i "s/PubNub\ [0-9]\.[0-9]\.[0-9]/PubNub\ $(VERSION)/g" + + +.PHONY: clean +clean: + +.PHONY: test +test: + diff --git a/python-tornado/Pubnub.py b/python-tornado/Pubnub.py index 0d78a86..55ca7ca 100644 --- a/python-tornado/Pubnub.py +++ b/python-tornado/Pubnub.py @@ -63,7 +63,6 @@ class Pubnub(PubnubCoreAsync):      def _request( self, request, callback ) :          url = self.getUrl(request) -        print url          ## Send Request Expecting JSON Response          #print self.headers          request = tornado.httpclient.HTTPRequest( url, 'GET', self.headers, connect_timeout=310, request_timeout=310 )  diff --git a/python-tornado/tests/benchmark.py b/python-tornado/tests/benchmark.py index 5f9b5e3..9d1840e 100644 --- a/python-tornado/tests/benchmark.py +++ b/python-tornado/tests/benchmark.py @@ -12,7 +12,9 @@  import sys  import datetime  import tornado +sys.path.append('./')  sys.path.append('../') +sys.path.append('../common')  from Pubnub import Pubnub  publish_key   = len(sys.argv) > 1 and sys.argv[1] or 'demo' diff --git a/python-tornado/tests/unit-test.py b/python-tornado/tests/unit-test.py index f593d11..c5940af 100644 --- a/python-tornado/tests/unit-test.py +++ b/python-tornado/tests/unit-test.py @@ -19,6 +19,8 @@  import sys  sys.path.append('../') +sys.path.append('./') +sys.path.append('../common/')  from Pubnub import Pubnub  publish_key   = len(sys.argv) > 1 and sys.argv[1] or 'demo' diff --git a/python-twisted/Makefile b/python-twisted/Makefile new file mode 100644 index 0000000..4cd9305 --- /dev/null +++ b/python-twisted/Makefile @@ -0,0 +1,18 @@ +include ../Makefile.inc + + +.PHONY: all +all: build + +.PHONY: build +build: +	find -name "Pubnub*py" | xargs sed -i "s/PubNub\ [0-9]\.[0-9]\.[0-9]/PubNub\ $(VERSION)/g" + + +.PHONY: clean +clean: + +.PHONY: test +test: +	python tests/unit-test.py + diff --git a/python-twisted/Pubnub.py b/python-twisted/Pubnub.py index 247c4ff..e317a9c 100644 --- a/python-twisted/Pubnub.py +++ b/python-twisted/Pubnub.py @@ -81,7 +81,6 @@ class Pubnub(PubnubCoreAsync):              contextFactory = WebClientContextFactory(),              pool = self.ssl and None or pnconn_pool          )), [('gzip', GzipDecoder)]) -        print url          request     = agent.request( 'GET', url, Headers(self.headers), None )          def received(response): diff --git a/python-twisted/tests/unit-test-full.py b/python-twisted/tests/unit-test-full.py index f593d11..c5940af 100644 --- a/python-twisted/tests/unit-test-full.py +++ b/python-twisted/tests/unit-test-full.py @@ -19,6 +19,8 @@  import sys  sys.path.append('../') +sys.path.append('./') +sys.path.append('../common/')  from Pubnub import Pubnub  publish_key   = len(sys.argv) > 1 and sys.argv[1] or 'demo' diff --git a/python-twisted/tests/unit-test.py b/python-twisted/tests/unit-test.py index 843f939..ed7fcd5 100644 --- a/python-twisted/tests/unit-test.py +++ b/python-twisted/tests/unit-test.py @@ -11,6 +11,8 @@  import sys  sys.path.append('../') +sys.path.append('./') +sys.path.append('../common/')  from Pubnub import Pubnub  publish_key   = len(sys.argv) > 1 and sys.argv[1] or 'demo' @@ -23,7 +25,7 @@ ssl_on        = len(sys.argv) > 5 and bool(sys.argv[5]) or False  ## Initiat Class  ## -----------------------------------------------------------------------  pubnub = Pubnub( publish_key, subscribe_key, secret_key, cipher_key, ssl_on ) -crazy  = ' ~`!@#$%^&*( 顶顅 Ȓ)+=[]\\{}|;\':",./<>?abcd' +crazy  = 'python-twisted-test-channel'  ## ---------------------------------------------------------------------------  ## Unit Test Function @@ -90,10 +92,17 @@ def message_received(message):          'callback' : dumpster      }) +  def connected() : +    ch = crazy +    def dump_message( msg): +        print ch, msg +        pubnub.unsubscribe({'channel':ch}) +        pubnub.stop()      pubnub.publish({ -        'channel' : crazy, -        'message' : { 'Info' : 'Connected!' } +        'channel' : ch, +        'message' : { 'Info' : 'Connected!' }, +        'callback' : dump_message      })  pubnub.subscribe({ diff --git a/python/Makefile b/python/Makefile new file mode 100644 index 0000000..9551bb7 --- /dev/null +++ b/python/Makefile @@ -0,0 +1,19 @@ +include ../Makefile.inc + + +.PHONY: all +all: build + +.PHONY: build +build: +	find -name "Pubnub*py" | xargs sed -i "s/PubNub\ [0-9]\.[0-9]\.[0-9]/PubNub\ $(VERSION)/g" + + +.PHONY: clean +clean: + +.PHONY: test +test: +	python tests/detailed-history-unit-test.py +	python tests/unit-test.py + diff --git a/python/Pubnub.py b/python/Pubnub.py index 6143b0b..0a6d877 100644 --- a/python/Pubnub.py +++ b/python/Pubnub.py @@ -6,7 +6,7 @@  ## http://www.pubnub.com/  ## ----------------------------------- -## PubNub 3.3.2 Real-time Push Cloud API +## PubNub 3.3.4 Real-time Push Cloud API  ## -----------------------------------  try: import json diff --git a/python/examples/detailed-history-unit-test.py b/python/tests/detailed-history-unit-test.py index 2169e52..31bdef8 100755 --- a/python/examples/detailed-history-unit-test.py +++ b/python/tests/detailed-history-unit-test.py @@ -9,9 +9,12 @@  ## PubNub 3.0 Real-time Push Cloud API  ## ----------------------------------- +import sys +sys.path.append('.') +sys.path.append('..') +sys.path.append('../common')  from Pubnub import Pubnub  import unittest2 as unittest -import sys  publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo' diff --git a/python/tests/unit-test.py b/python/tests/unit-test.py index 88391a0..1737ace 100755 --- a/python/tests/unit-test.py +++ b/python/tests/unit-test.py @@ -9,8 +9,11 @@  ## PubNub 3.0 Real-time Push Cloud API  ## ----------------------------------- -from Pubnub import Pubnub  import sys +sys.path.append('.') +sys.path.append('..') +sys.path.append('../common') +from Pubnub import Pubnub  publish_key   = len(sys.argv) > 1 and sys.argv[1] or 'demo'  subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo' @@ -23,7 +26,7 @@ ssl_on        = len(sys.argv) > 4 and bool(sys.argv[4]) or False  ## -----------------------------------------------------------------------  pubnub = Pubnub( publish_key, subscribe_key, secret_key, ssl_on ) -crazy  = ' ~`!@#$%^&*(顶顅Ȓ)+=[]\\{}|;\':",./<>?abcd' +crazy  = 'demo'  ## ---------------------------------------------------------------------------  ## Unit Test Function @@ -37,11 +40,11 @@ def test( trial, name ) :  ## -----------------------------------------------------------------------  ## Publish Example  ## ----------------------------------------------------------------------- -pubish_success = pubnub.publish({ +publish_success = pubnub.publish({      'channel' : crazy,      'message' : crazy  }) -test( pubish_success[0] == 1, 'Publish First Message Success' ) +test( publish_success[0] == 1, 'Publish First Message Success' )  ## -----------------------------------------------------------------------  ## History Example @@ -61,17 +64,3 @@ test( len(history) == 1, 'History Message Count' )  ## -----------------------------------------------------------------------  timestamp = pubnub.time()  test( timestamp > 0, 'PubNub Server Time: ' + str(timestamp) ) - -## ----------------------------------------------------------------------- -## Subscribe Example -## ----------------------------------------------------------------------- -def receive(message) : -    print(message) -    return True - -pubnub.subscribe({ -    'channel'  : crazy, -    'callback' : receive  -}) - - | 
