Revision: 360
Author: bslatkin
Date: Thu Jun  3 16:00:36 2010
Log: hub property handles missing lease_seconds parameter
http://code.google.com/p/pubsubhubbub/source/detail?r=360

Modified:
 /trunk/hub/main.py
 /trunk/hub/main_test.py

=======================================
--- /trunk/hub/main.py  Thu Jun  3 15:45:54 2010
+++ /trunk/hub/main.py  Thu Jun  3 16:00:36 2010
@@ -1934,8 +1934,8 @@
verify_type_list = [s.lower() for s in self.request.get_all('hub.verify')]
     verify_token = unicode(self.request.get('hub.verify_token', ''))
     secret = unicode(self.request.get('hub.secret', '')) or None
-    lease_seconds = self.request.get('hub.lease_seconds',
-                                     str(DEFAULT_LEASE_SECONDS))
+    lease_seconds = (
+ self.request.get('hub.lease_seconds', '') or str(DEFAULT_LEASE_SECONDS))
     mode = self.request.get('hub.mode', '').lower()

     error_message = None
=======================================
--- /trunk/hub/main_test.py     Thu Jun  3 15:45:54 2010
+++ /trunk/hub/main_test.py     Thu Jun  3 16:00:36 2010
@@ -2885,6 +2885,34 @@
     self.assertEquals(Subscription.STATE_VERIFIED, sub.subscription_state)
     self.verify_record_task(self.topic)

+  def testDefaultLeaseSeconds(self):
+    """Tests when the lease_seconds parameter is ommitted."""
+    sub_key = Subscription.create_key_name(self.callback, self.topic)
+    self.assertTrue(Subscription.get_by_key_name(sub_key) is None)
+
+    self.verify_callback_querystring_template = (
+        self.callback +
+        '?hub.verify_token=the_token'
+        '&hub.challenge=this_is_my_fake_challenge_string'
+        '&hub.topic=http%%3A%%2F%%2Fexample.com%%2Fthe-topic'
+        '&hub.mode=%s'
+        '&hub.lease_seconds=2592000')
+    urlfetch_test_stub.instance.expect(
+ 'get', self.verify_callback_querystring_template % 'subscribe', 200,
+        self.challenge)
+    self.handle('post',
+        ('hub.callback', self.callback),
+        ('hub.topic', self.topic),
+        ('hub.mode', 'subscribe'),
+        ('hub.verify', 'sync'),
+        ('hub.verify_token', self.verify_token),
+        ('hub.lease_seconds', ''))
+    self.assertEquals(204, self.response_code())
+    sub = Subscription.get_by_key_name(sub_key)
+    self.assertTrue(sub is not None)
+    self.assertEquals(Subscription.STATE_VERIFIED, sub.subscription_state)
+    self.verify_record_task(self.topic)
+
   def testInvalidChallenge(self):
     """Tests when the returned challenge is bad."""
     sub_key = Subscription.create_key_name(self.callback, self.topic)

Reply via email to