def test_sentiment(self): """Dataset.created_at should get set automatically.""" msg = self.dataset.message_set.create( text="kitties are the worst awfullest animals and i hate them") models.set_message_sentiment(msg) self.assertEquals(msg.sentiment, corpus_models.Message.SENTIMENT_NEGATIVE)
def get_or_create_a_tweet_from_json_obj(tweet_data, dataset_obj): """ Given a dataset object, imports a tweet from json object into the dataset. """ if 'in_reply_to_status_id' not in tweet_data: return None # if tweet_data.get('lang') != 'en': # return None tweet, created = Message.objects.get_or_create(dataset=dataset_obj, original_id=tweet_data['id']) # text if tweet_data.get('text'): tweet.text = tweet_data['text'] # created_at if tweet_data.get('created_at'): tweet.time = datetime(*(parsedate(tweet_data['created_at']))[:6], tzinfo=utc) # language if tweet_data.get('lang'): tweet.language = get_or_create_language(tweet_data['lang']) if tweet_data.get('user'): # sender tweet.sender = create_an_user_from_json_obj(tweet_data['user'], dataset_obj) # time_zone if tweet_data['user'].get('time_zone'): tweet.timezone = get_or_create_timezone(tweet_data['user']['time_zone']) # type if tweet_data.get('retweeted_status') is not None: tweet.type = get_or_create_messagetype("retweet") handle_retweet(tweet_data['retweeted_status'], dataset_obj) elif tweet_data.get('in_reply_to_status_id') is not None: tweet.type = get_or_create_messagetype("reply") handle_reply_to(status_id=tweet_data['in_reply_to_status_id'], user_id=tweet_data['in_reply_to_user_id'], screen_name=tweet_data['in_reply_to_screen_name'], dataset_obj=dataset_obj) else: tweet.type = get_or_create_messagetype('tweet') if tweet_data.get('entities'): handle_entities(tweet, tweet_data.get('entities'), dataset_obj) # sentiment set_message_sentiment(tweet, save=False) tweet.save() return tweet