コード例 #1
0
 def setUp(self):
     self.c = Client()
     user = User(username='******', password='******')
     user.save()
     data = {'user': '******', 'pass': '******'}
     request = self.c.post('/users/login/',
                           data,
                           content_type='application/json').json()
     global USER0TOKEN
     USER0TOKEN = 'Token ' + request['token']
     user = User(username='******', password='******')
     user.save()
     data = {'user': '******', 'pass': '******'}
     request = self.c.post('/users/login/',
                           data,
                           content_type='application/json').json()
     global USER1TOKEN
     USER1TOKEN = 'Token ' + request['token']
     user = User(username='******', password='******')
     user.save()
     data = {'user': '******', 'pass': '******'}
     request = self.c.post('/users/login/',
                           data,
                           content_type='application/json').json()
     global USER2TOKEN
     USER2TOKEN = 'Token ' + request['token']
     user = User(username='******', password='******')
     user.save()
     data = {'user': '******', 'pass': '******'}
     request = self.c.post('/users/login/',
                           data,
                           content_type='application/json').json()
     global USER3TOKEN
     USER3TOKEN = 'Token ' + request['token']
     self.user1 = User.objects.get(username='******')
     self.user2 = User.objects.get(username='******')
     self.user3 = User.objects.get(username='******')
     self.user4 = User.objects.get(username='******')
     self.player1 = Player(username=self.user1, colour='green')
     self.player1.save()
     self.player2 = Player(username=self.user2, colour='green')
     self.player2.save()
     self.player3 = Player(username=self.user3, colour='green')
     self.player3.save()
     self.player4 = Player(username=self.user4, colour='green')
     self.player4.save()
     self.room = Room(id=1,
                      name="Cool Name",
                      owner=self.user1,
                      max_players=4)
     self.room.save()
     self.room.players.add(self.player1)
     self.room.players.add(self.player2)
     self.room.players.add(self.player3)
     self.room.players.add(self.player4)
コード例 #2
0
 def put(self, request, pk, format=None):
     COLOURS = ['Blue', 'Red', 'Green', 'Yellow']
     room = getRoomById(pk)
     if isinstance(room, tuple):
         return room[1]
     try:
         already_in = room.players.get(username=request.user)
     except BaseException:
         count = room.players.all().count()
         if (count < room.max_players) and not ():
             player = Player(username=request.user, colour=COLOURS[count])
             player.save()
             room.players.add(player)
         else:
             return Response({'error': 'Lobby lleno'},
                             status=status.HTTP_400_BAD_REQUEST)
     return Response({'OK': 'Unido al room con éxito'},
                     status=status.HTTP_200_OK)
コード例 #3
0
    def test_PlayerPersonalInfo(self):

        users = User.objects.all()
        colours = COLOURS
        min_len = min(len(users), len(colours))

        # creando el objeto del modelo de player en la base de datos.
        for i in range(0, min_len):
            player = Player(username=users[i], colour=colours[i]['colour'])
            player.save()
        print('Players agregados: -OK-')

        players = Player.objects.all()
        rooms = Room.objects.all()
        for room in rooms:
            room.players.add(players[0])
            room.players.add(players[1])
        print('Rooms agregadas: -OK-')
コード例 #4
0
 def test_getParticularsRooms(self):
     print('Testeando GET a /rooms/<id>/...')
     user = User.objects.get(username='******')
     player = Player(username=user, colour='green')
     player.save()
     room = Room(id=1, name="Cool Name", owner=user, max_players=2)
     room.save()
     c = Client()
     request = c.get('/rooms/1/',
                     HTTP_AUTHORIZATION=USER0TOKEN,
                     content_type='application/json')
     self.assertEqual(request.status_code, 200)
     request = request.json()
     self.assertEqual(request['name'], "Cool Name")
     request = c.get('/rooms/45/',
                     HTTP_AUTHORIZATION=USER0TOKEN,
                     content_type='application/json')
     self.assertEqual(request.status_code, 400)
     print('-OK!-')
コード例 #5
0
 def test_Put(self):
     print('Testeando PUT a /rooms/<id>...')
     user = User.objects.get(username='******')
     player = Player(username=user, colour='green')
     player.save()
     room = Room(name="Cool Name", owner=user, max_players=2)
     room.save()
     c = Client()
     request = c.put('/rooms/1/',
                     HTTP_AUTHORIZATION=USER0TOKEN,
                     content_type='application/json')
     self.assertEqual(request.status_code, 200)
     request = c.get('/rooms/',
                     HTTP_AUTHORIZATION=USER0TOKEN,
                     content_type='application/json')
     self.assertEqual(request.status_code, 200)
     request = request.json()
     self.assertEqual(len(list(request[0]['players'])), 1)
     print('-OK!-')
コード例 #6
0
 def test_stress(self):
     print('Estresando server...')
     r = Room.objects.all().delete()
     for x in range(0, 1000):
         user = User.objects.get(username='******')
         player = Player(id=1, username=user, colour='green')
         player.save()
         room = Room(id=1, name="Cool Name", owner=user, max_players=2)
         room.save()
         c = Client()
         request = c.put('/rooms/1/',
                         HTTP_AUTHORIZATION=USER0TOKEN,
                         content_type='application/json')
         self.assertEqual(request.status_code, 200)
         request = c.get('/rooms/',
                         HTTP_AUTHORIZATION=USER0TOKEN,
                         content_type='application/json')
         self.assertEqual(request.status_code, 200)
         request = request.json()
         self.assertEqual(len(list(request[0]['players'])), 1)
     print('-OK!-')
コード例 #7
0
 def test_addMorePermited(self):
     print('Testeando el agregado de jugadores:',
           'Cuando la Room esta llena...')
     user = User.objects.get(username='******')
     player = Player(username=user, colour='green')
     player.save()
     room = Room(id=2, name="Cool Name", owner=user, max_players=2)
     room.save()
     c = Client()
     tokenlist = [USER0TOKEN, USER1TOKEN, USER2TOKEN]
     for username in range(0, 2):
         if username < 3:
             request = c.put('/rooms/2/',
                             HTTP_AUTHORIZATION=tokenlist[username],
                             content_type='application/json')
             self.assertEqual(request.status_code, 200)
         else:
             request = c.put('/rooms/2/',
                             HTTP_AUTHORIZATION=tokenlist[username],
                             content_type='application/json')
             self.assertEqual(request.status_code, 400)
     print('-OK!-')
コード例 #8
0
 def setUp(self):
     user = User(username='******', password='******')
     user.save()
     player = Player(username=user, colour='red')
     player.save()
     user = User(username='******', password='******')
     user.save()
     player = Player(username=user, colour='blue')
     player.save()
     user = User(username='******', password='******')
     user.save()
     player = Player(username=user, colour='green')
     player.save()
     self.add_board()
     board = Board.objects.get(id=0)
     room = Room(id=1, name='ahah', board=board, owner=user, max_players=2)
     room.save()
コード例 #9
0
class TestsEliminarRoom(TestCase):
    def setUp(self):
        self.c = Client()
        user = User(username='******', password='******')
        user.save()
        data = {'user': '******', 'pass': '******'}
        request = self.c.post('/users/login/',
                              data,
                              content_type='application/json').json()
        global USER0TOKEN
        USER0TOKEN = 'Token ' + request['token']
        user = User(username='******', password='******')
        user.save()
        data = {'user': '******', 'pass': '******'}
        request = self.c.post('/users/login/',
                              data,
                              content_type='application/json').json()
        global USER1TOKEN
        USER1TOKEN = 'Token ' + request['token']
        user = User(username='******', password='******')
        user.save()
        data = {'user': '******', 'pass': '******'}
        request = self.c.post('/users/login/',
                              data,
                              content_type='application/json').json()
        global USER2TOKEN
        USER2TOKEN = 'Token ' + request['token']
        user = User(username='******', password='******')
        user.save()
        data = {'user': '******', 'pass': '******'}
        request = self.c.post('/users/login/',
                              data,
                              content_type='application/json').json()
        global USER3TOKEN
        USER3TOKEN = 'Token ' + request['token']
        self.user1 = User.objects.get(username='******')
        self.user2 = User.objects.get(username='******')
        self.user3 = User.objects.get(username='******')
        self.user4 = User.objects.get(username='******')
        self.player1 = Player(username=self.user1, colour='green')
        self.player1.save()
        self.player2 = Player(username=self.user2, colour='green')
        self.player2.save()
        self.player3 = Player(username=self.user3, colour='green')
        self.player3.save()
        self.player4 = Player(username=self.user4, colour='green')
        self.player4.save()
        self.room = Room(id=1,
                         name="Cool Name",
                         owner=self.user1,
                         max_players=4)
        self.room.save()
        self.room.players.add(self.player1)
        self.room.players.add(self.player2)
        self.room.players.add(self.player3)
        self.room.players.add(self.player4)

    def test_BorrarRoom(self):
        print('Testeando DELETE a /rooms/<id>/',
              'tratando de borrar una room con 4 jugadores',
              'siendo el owner de la misma.')
        request = self.c.delete('/rooms/1/',
                                HTTP_AUTHORIZATION=USER0TOKEN,
                                content_type='application/json')
        self.assertEqual(request.status_code, 200)
        request = request.json()
        self.assertEqual(request['OK'], "Room eliminada")
        print('OK')
        print('Testeando volver a hacer DELETE a la room recien eliminada...',
              'Asegurandose de que efectivamente se haya borrado.')
        request = self.c.delete('/rooms/1/',
                                HTTP_AUTHORIZATION=USER0TOKEN,
                                content_type='application/json')
        self.assertEqual(request.status_code, 400)
        request = request.json()
        self.assertEqual(request['error'], "No existe Lobby con id: 1")
        print('OK')

    def test_BorrarRoomSinSerOwner(self):
        print('Testeando DELETE a /rooms/<id>/',
              'tratando de borrar una room sin ser el owner de la misma.')
        request = self.c.delete('/rooms/1/',
                                HTTP_AUTHORIZATION=USER1TOKEN,
                                content_type='application/json')
        self.assertEqual(request.status_code, 401)
        request = request.json()
        self.assertEqual(request['error'],
                         "Sólo el dueño puede eliminar la partida")
        print('OK')

    def test_BorrarRoomInexistente(self):
        print('Testeando DELETE a /rooms/<id>/', 'tratando de borrar una room',
              'sin que exista una room con ese id.')
        request = self.c.delete('/rooms/25/',
                                HTTP_AUTHORIZATION=USER0TOKEN,
                                content_type='application/json')
        self.assertEqual(request.status_code, 400)
        request = request.json()
        self.assertEqual(request['error'], "No existe Lobby con id: 25")
        print('OK')

    def test_BorrarPartidaComenzada(self):
        print('Testeando DELETE a /rooms/<id>/',
              'tratando de borrar una room cuyo game ya comenzó')
        self.room.game_has_started = True
        self.room.save()
        request = self.c.delete('/rooms/1/',
                                HTTP_AUTHORIZATION=USER0TOKEN,
                                content_type='application/json')
        self.assertEqual(request.status_code, 400)
        request = request.json()
        self.assertEqual(request['error'],
                         "No se puede borrar una partida ya comenzada")
        print('OK')
コード例 #10
0
    def test_IniciarPartida_menosde4(self):
        user = User.objects.get(username='******')
        player = Player(username=user, colour='green')
        player.save()
        self.add_board()
        board = Board.objects.get(id=0)
        room = Room(id=1,
                    name="Room Test",
                    owner=user,
                    max_players=4,
                    board=board)
        room.players.add(player)
        room.save()
        user = User.objects.get(username='******')
        player = Player(username=user, colour='blue')
        player.save()
        room.players.add(player)
        room.save()
        user = User.objects.get(username='******')
        player = Player(username=user, colour='yellow')
        player.save()
        room.players.add(player)
        room.save()

        c = Client()

        print('Testeando iniciar partida con menos jugadores')
        request = c.patch('/rooms/1/',
                          HTTP_AUTHORIZATION=USER0TOKEN,
                          content_type='application/json')
        self.assertEqual(request.status_code, 400)
        print('OK')