Beispiel #1
0
def move(request, column_number):
    game = Game.current_game(request.user)
    if game is None:
        return Response({"detail": "Not currently in a game."}, 400)
    try:
        game.move(request.user, column_number)
    except IllegalMove as exception:
        return Response({"detail": str(exception)}, 400)
    return Response(GameSerializer(game).data, 200)
Beispiel #2
0
def game_message_list(request):
    """
    List all messages for the current game this user is in.
    """
    game = Game.current_game(request.user)
    if not game:
        return Response({"detail": "You are not in a game."}, 400)
    game_messages = GameMessage.objects.filter(game=game)
    serializer = GameMessageSerializer(game_messages, many=True)
    return Response(serializer.data)
Beispiel #3
0
 def test_leave_stalemate(self):
     self.client.credentials(HTTP_AUTHORIZATION='Token ' + str(self.alice.auth_token))
     self.client.post(reverse("games:start"))
     self.client.credentials(HTTP_AUTHORIZATION='Token ' + str(self.bob.auth_token))
     self.client.post(reverse("games:start"))
     game = Game.current_game(self.alice)
     game.stalemate = True
     game.save()
     response = self.client.post(reverse("games:forfeit"))
     self.assertEquals(response.status_code, 200)
     self.assertEquals(response.data["winner"], None)
Beispiel #4
0
 def test_create_game_already_in_game(self):
     first_game = Game._create_game(self.alice)
     second_game = Game._create_game(self.alice)
     self.assertEquals(first_game.turn, None)
     self.assertEquals(first_game.player1, self.alice)
     self.assertEquals(first_game.player2, None)
     self.assertEquals(first_game.winner, None)
     self.assertEquals(Game.current_game(self.alice), second_game)
     self.assertEquals(second_game.turn, None)
     self.assertEquals(second_game.player1, self.alice)
     self.assertEquals(second_game.player2, None)
     self.assertEquals(second_game.winner, None)
Beispiel #5
0
def send_game_message(request):
    game = Game.current_game(request.user)
    if not game:
        return Response({"detail": "You are not in a game."}, 400)
    data = JSONParser().parse(request)
    data["sender"] = request.user.pk
    data["pub_date"] = timezone.now()
    data["game"] = game.pk
    serializer = GameMessageSerializer(data=data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=201)
    return Response(serializer.errors, status=400)
Beispiel #6
0
def forfeit(request):
    game = Game.current_game(request.user)
    if game is None:
        return Response({"detail": "Not currently in a game."}, 400)
    game.forfeit(request.user)
    return Response(GameSerializer(game).data, 200)