コード例 #1
0
ファイル: backend.py プロジェクト: jrgrafton/tweet-debate
    def add_vote_for_screenname(self,
                                question,
                                vote_text,
                                replyid,
                                state_abbreviation,
                                party,
                                sway_points,
                                screen_name,
                                profile_image_url):
        # Require valid state and party to vote
        if state_abbreviation == None or party == None:
            return False
       
        # Require new user or user never voted on this question
        user = User.query_by_userid(screen_name).get()
        if user == None or \
                user.votes[-1].question.get().key.id() != question.key.id():

                # Add vote for user
                User.add_user_vote(user, 
                                   screen_name,
                                   profile_image_url,
                                   Vote(
                                        question = question.key,
                                        vote_text = vote_text,
                                        replyid = replyid,
                                        state_abbreviation = state_abbreviation,
                                        party = party,
                                        sway_points = sway_points
                                    ))
                return True
        else:
            return False
コード例 #2
0
    def add_vote_for_screenname(self, question, vote_text, replyid,
                                state_abbreviation, party, sway_points,
                                screen_name, profile_image_url):
        # Require valid state and party to vote
        if state_abbreviation == None or party == None:
            return False

        # Require new user or user never voted on this question
        user = User.query_by_userid(screen_name).get()
        if user == None or \
                user.votes[-1].question.get().key.id() != question.key.id():

            # Add vote for user
            User.add_user_vote(
                user, screen_name, profile_image_url,
                Vote(question=question.key,
                     vote_text=vote_text,
                     replyid=replyid,
                     state_abbreviation=state_abbreviation,
                     party=party,
                     sway_points=sway_points))
            return True
        else:
            return False
コード例 #3
0
    def test_model_user(self):
        # Load fixtures
        load_fixture('tests/states.json', kind={'State': State})
        load_fixture('tests/questions.json',
                     kind={
                         'Question': Question,
                         'State': State
                     })

        current_question_entity = Question.get_current_question()
        User.add_user_vote(
            None, "jrgrafton_test",
            "https://pbs.twimg.com//profile_images//440698495// \
                          9929_128442162134_504357134_2556732_5649977_n_\
                          bigger.jpg",
            Vote(question=current_question_entity.key,
                 replyid="692368266292023296",
                 state_abbreviation="CA",
                 party=0,
                 sway_points=40))

        # Ensure user was created
        user_entity = User.query_by_userid("jrgrafton_test").fetch()
        assert len(user_entity) == 1
        assert user_entity[0].sway_points == User.get_starting_sway_points() - \
                                             40
        assert user_entity[0].userid == "jrgrafton_test"
        assert "https" in user_entity[0].profile_image_url
        assert user_entity[0].votes[0].question == current_question_entity.key
        assert user_entity[0].votes[0].replyid == "692368266292023296"
        assert user_entity[0].votes[0].state_abbreviation == "CA"
        assert user_entity[0].votes[0].party == 0

        # Ensure a reply to a different question is tallied
        next_question_entity = Question.get_current_question()
        User.add_user_vote(
            user_entity[0], "jrgrafton_test",
            "https://pbs.twimg.com//profile_images//440698495// \
                          9929_128442162134_504357134_2556732_5649977_n_\
                          bigger.jpg",
            Vote(question=next_question_entity.key,
                 replyid="692368266292023297",
                 state_abbreviation="WA",
                 party=1,
                 sway_points=10))

        # Ensure new vote was collated under existing user
        user_entity = User.query_by_userid("jrgrafton_test").fetch()
        assert len(user_entity) == 1
        assert len(user_entity[0].votes) == 2
        assert user_entity[0].sway_points == User.get_starting_sway_points() - \
                                             (40 + 10)
        # Verify integrity of new vote
        assert user_entity[0].votes[1].question == next_question_entity.key
        assert user_entity[0].votes[1].replyid == "692368266292023297"
        assert user_entity[0].votes[1].state_abbreviation == "WA"
        assert user_entity[0].votes[1].party == 1

        # Verify integrity of old vote
        assert user_entity[0].userid == "jrgrafton_test"
        assert "https" in user_entity[0].profile_image_url
        assert user_entity[0].votes[0].question == current_question_entity.key
        assert user_entity[0].votes[0].replyid == "692368266292023296"
        assert user_entity[0].votes[0].state_abbreviation == "CA"
        assert user_entity[0].votes[0].party == 0
コード例 #4
0
ファイル: test_model.py プロジェクト: jrgrafton/tweet-debate
    def test_model_user(self):
        # Load fixtures
        load_fixture('tests/states.json', kind={'State': State})
        load_fixture('tests/questions.json', 
                        kind={'Question': Question,'State': State})

        current_question_entity = Question.get_current_question()
        User.add_user_vote(None, 
                          "jrgrafton_test",
                          "https://pbs.twimg.com//profile_images//440698495// \
                          9929_128442162134_504357134_2556732_5649977_n_\
                          bigger.jpg",
                          Vote(
                            question = current_question_entity.key,
                            replyid = "692368266292023296",
                            state_abbreviation = "CA",
                            party = 0,
                            sway_points = 40
                          ))

        # Ensure user was created
        user_entity = User.query_by_userid("jrgrafton_test").fetch()
        assert len(user_entity) == 1
        assert user_entity[0].sway_points == User.get_starting_sway_points() - \
                                             40
        assert user_entity[0].userid == "jrgrafton_test"
        assert "https" in user_entity[0].profile_image_url
        assert user_entity[0].votes[0].question == current_question_entity.key
        assert user_entity[0].votes[0].replyid == "692368266292023296"
        assert user_entity[0].votes[0].state_abbreviation == "CA"
        assert user_entity[0].votes[0].party == 0

        # Ensure a reply to a different question is tallied
        next_question_entity = Question.get_current_question()
        User.add_user_vote(user_entity[0],
                          "jrgrafton_test",
                          "https://pbs.twimg.com//profile_images//440698495// \
                          9929_128442162134_504357134_2556732_5649977_n_\
                          bigger.jpg",
                          Vote(
                            question = next_question_entity.key,
                            replyid = "692368266292023297",
                            state_abbreviation = "WA",
                            party = 1,
                            sway_points = 10
                          ))

        # Ensure new vote was collated under existing user
        user_entity = User.query_by_userid("jrgrafton_test").fetch()
        assert len(user_entity) == 1
        assert len(user_entity[0].votes) == 2
        assert user_entity[0].sway_points == User.get_starting_sway_points() - \
                                             (40 + 10)
        # Verify integrity of new vote
        assert user_entity[0].votes[1].question == next_question_entity.key
        assert user_entity[0].votes[1].replyid == "692368266292023297"
        assert user_entity[0].votes[1].state_abbreviation == "WA"
        assert user_entity[0].votes[1].party == 1

        # Verify integrity of old vote
        assert user_entity[0].userid == "jrgrafton_test"
        assert "https" in user_entity[0].profile_image_url
        assert user_entity[0].votes[0].question == current_question_entity.key
        assert user_entity[0].votes[0].replyid == "692368266292023296"
        assert user_entity[0].votes[0].state_abbreviation == "CA"
        assert user_entity[0].votes[0].party == 0