def test_view_tasks_twitter_post_status(self): if os.getenv('TWITTER_TESTS') == "FALSE": return # Modify in runtests.sh load_fixture('tests/states.json', kind={'State': State}) load_fixture('tests/questions.json', kind={'Question': Question,'State': State}) current_question = Question.get_current_question() # Add user with vote so we can test sway points vote_current = Vote( question = current_question.key, replyid = "123", state_abbreviation = "CA", party = 1, sway_points = 20 ) user = User( userid = "jrgrafton", votes = [vote_current], # Used 20 sway points upon creation sway_points = 30 ) user.put() original_sway_points = user.sway_points # Store initial sway points # Delete all previous tweets before proceeding twitter_api = TwitterAPI() twitter_api.delete_all_tweets() reponse = \ self.app.get('/tasks/twitter_post_status' \ '?question_cadence_minutes=1&post_to_twitter=True') current_question = Question.get_current_question() ndb.get_context().clear_cache() assert current_question.twitterid != None assert "Posted new status" in reponse.data assert status.is_success(reponse.status_code) == True # Ensure user had sway points returned assert user.sway_points == original_sway_points + \ sway_points_tasks["submit_answer"] + \ sway_points_tasks["submit_winning_answer"] + \ int(vote_current.sway_points * \ sway_points_tasks["refund"]) # Ensure Twitter timeline has been updated twitter_status = twitter_api.get_last_tweet().text question_entity = Question.get_current_question() assert twitter_status == question_entity.question_text # Expect question not to be posted as time is not yet up reponse = \ self.app.get('/tasks/twitter_post_status' \ '?question_cadence_minutes=52560000') assert "New question not ready" in reponse.data assert status.is_success(reponse.status_code) == True
def process_retweet_from_screename(self, current_question, target_id, screen_name, profile_image_url): # Has to retweet active poll if current_question.twitterid == target_id: user = User.query_by_userid(screen_name).get() # Add user if they don't exist if user == None: user = User(userid=screen_name, profile_image_url=profile_image_url) user.put() # Users can cheat by deleting and retweeting if user.last_retweet_id != current_question.twitterid: # Attribute sway points user.last_retweet_id = str(current_question.twitterid) user.sway_points += sway_points["rewteet_poll"]
def test_view_tasks_twitter_post_status(self): if os.getenv("TWITTER_TESTS") == "FALSE": return # Modify in runtests.sh load_fixture("tests/states.json", kind={"State": State}) load_fixture("tests/questions.json", kind={"Question": Question, "State": State}) current_question = Question.get_current_question() # Add user with vote so we can test sway points vote_current = Vote( question=current_question.key, replyid="123", state_abbreviation="CA", party=1, sway_points=20 ) user = User( userid="jrgrafton", votes=[vote_current], # Used 20 sway points upon creation sway_points=30, ) user.put() original_sway_points = user.sway_points # Store initial sway points # Delete all previous tweets before proceeding twitter_api = TwitterAPI() twitter_api.delete_all_tweets() reponse = self.app.get("/tasks/twitter_post_status" "?question_cadence_minutes=1&post_to_twitter=True") current_question = Question.get_current_question() ndb.get_context().clear_cache() assert current_question.twitterid != None assert "Posted new status" in reponse.data assert status.is_success(reponse.status_code) == True # Ensure user had sway points returned assert user.sway_points == original_sway_points + sway_points_tasks["submit_answer"] + sway_points_tasks[ "submit_winning_answer" ] + int(vote_current.sway_points * sway_points_tasks["refund"]) # Ensure Twitter timeline has been updated twitter_status = twitter_api.get_last_tweet().text question_entity = Question.get_current_question() assert twitter_status == question_entity.question_text # Expect question not to be posted as time is not yet up reponse = self.app.get("/tasks/twitter_post_status" "?question_cadence_minutes=52560000") assert "New question not ready" in reponse.data assert status.is_success(reponse.status_code) == True
def process_retweet_from_screename(self, current_question, target_id, screen_name, profile_image_url): # Has to retweet active poll if current_question.twitterid == target_id: user = User.query_by_userid(screen_name).get() # Add user if they don't exist if user == None: user = User( userid = screen_name, profile_image_url = profile_image_url ) user.put() # Users can cheat by deleting and retweeting if user.last_retweet_id != current_question.twitterid: # Attribute sway points user.last_retweet_id = str(current_question.twitterid) user.sway_points += sway_points["rewteet_poll"]
def test_view_tasks_twitter_stream_listener_process_retweet_from_screename(self): load_fixture('tests/states.json', kind={'State': State}) load_fixture('tests/questions.json', kind={'Question': Question,'State': State}) twitter_stream_listener = TwitterStreamListener() current_question = Question.get_current_question() # Invalid retweet id twitter_stream_listener.\ process_retweet_from_screename(current_question, -1, "jrgrafton", "https://pbs.twimg.com// \ profile_images//440698495// \ 9929_128442162134_504357134_ \ 2556732_5649977_n_bigger.jpg") users = User.get_all() assert len(users) == 0 # Valid retweet id - new user twitter_stream_listener.\ process_retweet_from_screename(current_question, current_question.twitterid, "jrgrafton", "https://pbs.twimg.com// \ profile_images//440698495// \ 9929_128442162134_504357134_ \ 2556732_5649977_n_bigger.jpg") users = User.get_all() assert len(users) == 1 assert users[0].sway_points == User.get_starting_sway_points() + \ sway_points_backend["rewteet_poll"] assert "https" in users[0].profile_image_url # Ensure no extra sway given for retweet twitter_stream_listener.\ process_retweet_from_screename(current_question, current_question.twitterid, "jrgrafton", "https://pbs.twimg.com// \ profile_images//440698495// \ 9929_128442162134_504357134_ \ 2556732_5649977_n_bigger.jpg") users = User.get_all() assert len(users) == 1 assert users[0].sway_points == User.get_starting_sway_points() + \ sway_points_backend["rewteet_poll"] # Test existing user reweet user = User( userid = "jrgrafton2", sway_points = 30 ) user.put() # Valid retweet id - new user twitter_stream_listener.\ process_retweet_from_screename(current_question, current_question.twitterid, "jrgrafton2", "https://pbs.twimg.com// \ profile_images//440698495// \ 9929_128442162134_504357134_ \ 2556732_5649977_n_bigger.jpg") users = User.get_all() assert len(users) == 2 assert users[1].sway_points == 30 + sway_points_backend["rewteet_poll"]
def test_view_tasks_twitter_stream_listener_process_retweet_from_screename(self): load_fixture("tests/states.json", kind={"State": State}) load_fixture("tests/questions.json", kind={"Question": Question, "State": State}) twitter_stream_listener = TwitterStreamListener() current_question = Question.get_current_question() # Invalid retweet id twitter_stream_listener.process_retweet_from_screename( current_question, -1, "jrgrafton", "https://pbs.twimg.com// \ profile_images//440698495// \ 9929_128442162134_504357134_ \ 2556732_5649977_n_bigger.jpg", ) users = User.get_all() assert len(users) == 0 # Valid retweet id - new user twitter_stream_listener.process_retweet_from_screename( current_question, current_question.twitterid, "jrgrafton", "https://pbs.twimg.com// \ profile_images//440698495// \ 9929_128442162134_504357134_ \ 2556732_5649977_n_bigger.jpg", ) users = User.get_all() assert len(users) == 1 assert users[0].sway_points == User.get_starting_sway_points() + sway_points_backend["rewteet_poll"] assert "https" in users[0].profile_image_url # Ensure no extra sway given for retweet twitter_stream_listener.process_retweet_from_screename( current_question, current_question.twitterid, "jrgrafton", "https://pbs.twimg.com// \ profile_images//440698495// \ 9929_128442162134_504357134_ \ 2556732_5649977_n_bigger.jpg", ) users = User.get_all() assert len(users) == 1 assert users[0].sway_points == User.get_starting_sway_points() + sway_points_backend["rewteet_poll"] # Test existing user reweet user = User(userid="jrgrafton2", sway_points=30) user.put() # Valid retweet id - new user twitter_stream_listener.process_retweet_from_screename( current_question, current_question.twitterid, "jrgrafton2", "https://pbs.twimg.com// \ profile_images//440698495// \ 9929_128442162134_504357134_ \ 2556732_5649977_n_bigger.jpg", ) users = User.get_all() assert len(users) == 2 assert users[1].sway_points == 30 + sway_points_backend["rewteet_poll"]