Exemple #1
0
 def testUpdateRanking(self):
     user1 = User(name="test1", email="*****@*****.**", password="******")
     user1.put()
     
     user2 = User(name="test2", email="*****@*****.**", password="******")
     user2.put()
     
     user3 = User(name="test3", email="*****@*****.**", password="******")
     user3.put()
     
     ranking_json = '{"title": "ranking", "itemNames": ["item1", "item2", "item3"], "itemContents": ["content1", "content2", "content3"], "ranks": [0, 1, 2]}'
     ranking_form = RankingForm(ranking_json) 
     ranking = Ranking.create(user1, ranking_form)
     self.assertEqual(ranking.number_of_votes, 1)
     
     vote2 = Vote(parent=ranking, user=user2, ranks=[2,1,0])
     vote2.put()
     ranking.update(vote2)
     self.assertEqual(ranking.number_of_votes, 2)
     
     vote3 = Vote(parent=ranking, user=user3, ranks=[2,1,0])
     vote3.put()
     ranking.update(vote3)
     self.assertEqual(ranking.number_of_votes, 3)
     
     self.assertListEqual(ranking.get_ranks(), [[0, 1, 2], [2, 1, 0], [2, 1, 0]])
     self.assertListEqual(ranking.ranks, [2, 1, 0])
     self.assertEqual(ranking.user, user1)
     self.assertListEqual([user.key() for user in ranking.get_users()], [user.key() for user in User.all()])
     
     self.assertTrue(ranking.is_sorted_by(user1), "Ranking should be sorted by user")
     self.assertTrue(ranking.is_sorted_by(user2), "Ranking should be sorted by user")
     self.assertTrue(ranking.is_sorted_by(user3), "Ranking should be sorted by user")
Exemple #2
0
    def post(self, ranking_id):
        
        user = self.get_current_user()
        ranking = Ranking.get_by_id(int(ranking_id))

        if user in ranking.get_users():
            self.response.out.write('You have already submitted this ranking!')
            return

        ranking_json = json.loads(self.request.get('ranking'))
        vote = Vote(user=user, parent=ranking, ranks=ranking_json["ranks"])
        vote.put()
        ranking.update(vote)
        self.redirect('/ranking/'+str(ranking_id))