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)
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)
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)
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)
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)