Example #1
0
    def testRatings(self):
        """Tests that Game.get_rating_clean works.
        """
        users = User.objects.all()
        game = Game.objects.get(title='game1')
        for user in users:
            buy_game_for_user(user, game)

        def setRatings(*args):
            for i in range(0, len(args)):
                self.client.force_login(users[i])
                self.client.post(reverse('game:rate', args=[game.pk]),
                                 {'rating': args[i]},
                                 HTTP_X_REQUESTED_WITH='XMLHttpRequest')

        setRatings(3)
        game.refresh_from_db()
        self.assertEqual(game.get_rating_cleaned(), 6)

        setRatings(3, 4)
        game.refresh_from_db()
        self.assertEqual(game.get_rating_cleaned(), 7)

        setRatings(3, 4, 4)
        game.refresh_from_db()
        self.assertEqual(game.get_rating_cleaned(), 7)

        setRatings(1, 1, 4, 4)
        game.refresh_from_db()
        self.assertEqual(game.get_rating_cleaned(), 5)
Example #2
0
 def setUp(self):
     
     logger.debug('SortByTest.setUp')
     
     self.client = APIClient()
     self.parser = JSONParser()
     
     dev_group = Group.objects.get(name='Developer')
     ply_group = Group.objects.get(name='Player')
     
     developer = User.objects.create(username='******')
     developer.save()
     dev_group.user_set.add(developer)
     
     for i in range(4):
         user = User.objects.create(username='******'.format(i))
         user.save()
         ply_group.user_set.add(user)
     
     for i in range(4):
         game = Game.create(
             title='game{}'.format(i),
             url='http://foobar.fi',
             developer=developer,
             price=0.5*i
         )
         game.save()
         
         for user in ply_group.user_set.all():
             buy_game_for_user(user, game)
Example #3
0
    def testResponses(self):
        """Tests the failure responses, as well as that giving ratings works.
        """
        user = User.objects.get(username='******')
        self.client.force_login(user)
        buy_game_for_user(user, Game.objects.get(title='game2'))

        #test negative responses
        game = Game.objects.get(title='game1')
        response = self.client.post(reverse('game:rate', args=[game.pk]),
                                    {'rating': 3},
                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEqual(response.status_code, 403)
        response = self.client.post(reverse('game:rate', args=[10]),
                                    {'rating': 3},
                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEqual(response.status_code, 404)
        game = Game.objects.get(title='game2')
        response = self.client.post(reverse('game:rate', args=[game.pk]),
                                    {'rating': 3})
        self.assertEqual(response.status_code, 400)
        response = self.client.post(reverse('game:rate', args=[game.pk]), {})
        self.assertEqual(response.status_code, 400)
        response = self.client.post(reverse('game:rate', args=[game.pk]),
                                    {'rating': 'foobar'},
                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEqual(response.status_code, 400)
        response = self.client.post(reverse('game:rate', args=[game.pk]),
                                    {'rating': 7},
                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEqual(response.status_code, 400)

        #test positive response
        response = self.client.post(reverse('game:rate', args=[game.pk]),
                                    {'rating': 3},
                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.content, b'3')
        game.refresh_from_db()
        self.assertEqual(game.ratings, 1)
        self.assertEqual(game.total_rating, 3)
Example #4
0
    def testPriority(self):
        """Tests that the games in a search query are given in the correct order
        determined by their popularity.
        """

        users = [get_user('{}'.format(x)) for x in range(3)]
        games = [
            Game.objects.get(title='game1'),
            Game.objects.get(title='game2'),
            Game.objects.get(title='title'),
            Game.objects.get(title='another game'),
        ]
        for i in range(3):
            buy_game_for_user(users[i], games[1])
            buy_game_for_user(users[i], games[2])
            buy_game_for_user(users[i], games[3])

        rate_game_for_user(users[0], games[2], 4)
        rate_game_for_user(users[0], games[3], 2)
        rate_game_for_user(users[1], games[3], 3)

        qset = Game.search('game')
        self.assertEquals(qset[0].pk, games[2].pk)
        self.assertEquals(qset[1].pk, games[3].pk)
        self.assertEquals(qset[2].pk, games[1].pk)
        self.assertEquals(qset[3].pk, games[0].pk)
Example #5
0
    def setUp(self):

        logger.debug('StatisticsTest.setUp')

        dev_group = Group.objects.get(name='Developer')
        ply_group = Group.objects.get(name='Player')

        developer = User.objects.create(username='******')
        developer.save()
        dev_group.user_set.add(developer)

        users = []

        for i in range(5):
            user = User.objects.create(username='******'.format(i))
            user.save()
            ply_group.user_set.add(user)
            users.append(user)

        games = []

        for i in range(3):
            game = Game.create(title='game{}'.format(i),
                               url='http://foobar.fi',
                               developer=developer,
                               price=(i + 0.5))
            game.save()
            games.append(game)

        for user in users[:3]:
            buy_game_for_user(user, games[0])
            buy_game_for_user(user, games[1])
            rate_game_for_user(user, games[0], 3)
            rate_game_for_user(user, games[1], 4)
        for user in users:
            buy_game_for_user(user, games[2])
            rate_game_for_user(user, games[2], 3)