Fix an issue where 'user' parameter value was getting overridden.
authorJoshua Roesslein <jroesslein@gmail.com>
Mon, 29 Mar 2010 14:45:42 +0000 (09:45 -0500)
committerJoshua Roesslein <jroesslein@gmail.com>
Mon, 29 Mar 2010 14:45:42 +0000 (09:45 -0500)
This caused issues with lists_memberships() when trying to get memberships
of an user besides the authenticated one. We now only set 'user' parameter
to the authenticated user when no 'user' value is provided when calling
the API method.

tweepy/binder.py

index f0de58f7a9f116289c9c5a3c7ed9d05c09e9876a..8ccd166701fff7a1f22737efd38b6103156349f7 100644 (file)
@@ -81,18 +81,20 @@ def bind_api(**config):
 
                 self.parameters[k] = convert_to_utf8_str(arg)
 
+            # Set 'user' paramter to the authenticated user's name
+            # if no 'user' parameter value provided
+            if(self.api.auth and 'user' not in self.parameters):
+                self.parameters['user'] = self.api.auth.get_username()
+
         def build_path(self):
             for variable in re_path_template.findall(self.path):
                 name = variable.strip('{}')
 
-                if name == 'user' and self.api.auth:
-                    value = self.api.auth.get_username()
-                else:
-                    try:
-                        value = urllib.quote(self.parameters[name])
-                    except KeyError:
-                        raise TweepError('No parameter value found for path variable: %s' % name)
-                    del self.parameters[name]
+                try:
+                    value = urllib.quote(self.parameters[name])
+                except KeyError:
+                    raise TweepError('No parameter value found for path variable: %s' % name)
+                del self.parameters[name]
 
                 self.path = self.path.replace(variable, value)