More changes in token getting procedure, now you can specify whether
authorMarek Marecki <triviuss@gmail.com>
Mon, 10 Jun 2013 12:26:20 +0000 (14:26 +0200)
committerMarek Marecki <triviuss@gmail.com>
Mon, 10 Jun 2013 12:26:20 +0000 (14:26 +0200)
you want new token or try to reuse stored one

diaspy/connection.py
diaspy/streams.py

index d2f2044accc19e3bacfea8e568a35df80bb9f5d3..43f8ce19f2c26631a4a7bff3654c5bfbdca80cd3 100644 (file)
@@ -3,6 +3,7 @@
 import re
 import requests
 import json
+import warnings
 
 
 """This module abstracts connection to pod.
@@ -154,20 +155,21 @@ class Connection():
         token = self._token_regex.search(request.text).group(1)
         return token
  
-    def get_token(self):
+    def get_token(self, new=False):
         """This function returns a token needed for authentication in most cases.
         Each time it is run a _fetchtoken() is called and refreshed token is stored.
 
         It is more safe to use than _fetchtoken().
+        By setting new you can request new token or decide to get stored one.
+        If no token is stored new one will be fatched anyway.
 
         :returns: string -- token used to authenticate
         """
         try:
-            token = self._fetchtoken()
+            if new: self.token = self._fetchtoken()
+            if not self.token: self.token = self._fetchtoken()
         except requests.exceptions.ConnectionError as e:
-            warnings.warn('{0} was cought: trying to reuse old token'.format(e))
-            token = self.token
+            warnings.warn('{0} was cought: reusing old token'.format(e))
         finally:
-            if not token: raise TokenError('cannot obtain token and no previous token found for reuse')
-            self.token = token
-        return token
+            if not self.token: raise TokenError('cannot obtain token and no previous token found for reuse')
+        return self.token
index fa19d97a11859a231063866eee5dcead7a52c79f..f9c323164459270995222a364c189c98fea55516 100644 (file)
@@ -351,7 +351,7 @@ class FollowedTags(Generic):
 class Tag(Generic):
     """This stream contains all posts containing a tag.
     """
-    def __init__(connection, tag):
+    def __init__(self, connection, tag):
         """
         :param connection: Connection() object
         :type connection: diaspy.connection.Connection