def modifyContext(self, properties): """Update the user object with the given properties""" # If updating the twitterUsername, get its Twitter ID if properties.get("twitterUsername", None): api = get_twitter_api(self.request.registry) properties["twitterUsernameId"] = get_userid_from_twitter(api, properties["twitterUsername"]) self.updateFields(properties) if self.get("twitterUsername", None) is None and self.get("twitterUsernameId", None) is not None: del self["twitterUsernameId"] # someone changed notifications settings for this context if "notifications" in properties: notifier = RabbitNotifications(self.request) if self.get("notifications", False): for user in self.subscribedUsers(): notifier.bind_user_to_context(self, user["username"]) else: for user in self.subscribedUsers(): notifier.unbind_user_from_context(self, user["username"]) if "url" in properties: self["hash"] = sha1(self["url"]).hexdigest() self.save()
def buildObject(self): super(Context, self).buildObject() # If creating with the twitterUsername, get its Twitter ID if self.data.get("twitterUsername", None): api = get_twitter_api(self.request.registry) self["twitterUsernameId"] = get_userid_from_twitter(api, self.data["twitterUsername"]) self["hash"] = self.getIdentifier() # Set displayName only if it's not specified self["displayName"] = self.get("displayName", self["url"])
def test_get_twitter_user(self): """ Given a valid cloudapis settings When i try to get a twitter user Then get a user object And the expected properties are there """ from max.utils.twitter import get_twitter_api from max.utils.twitter import get_userid_from_twitter api = get_twitter_api(self.app.registry) userid = get_userid_from_twitter(api, 'maxupcnet') self.assertEqual(userid, '526326641')