Exemplo n.º 1
0
    def post(self):
        if not request.json:
            return create_error_response(415, "Unsupported Media Type",
                                         "use JSON")
        try:
            validate(request.json, GametypeBuilder.gametypeSchema())
        except ValidationError as e:
            return create_error_response(400, "Invalid JSON document", str(e))

        gametype = GameType(name=request.json["name"])
        if "min_players" in request.json:
            gametype.min_players = request.json["min_players"]
        if "max_players" in request.json:
            gametype.max_players = request.json["max_players"]

        try:
            db.session.add(gametype)
            db.session.commit()
        except IntegrityError:
            db.session.rollback()
            return create_error_response(
                409, "Already exists",
                "Gametype with this name already exists " +
                str(request.json["name"]))

        return Response(status=201,
                        headers={
                            "Location":
                            url_for("gametyperesource",
                                    gametype_name=request.json["name"])
                        })
Exemplo n.º 2
0
    def testCreateAndDeleteValidGameType(self):
        game_type = GameType(name="Hearts")

        for min_players, max_players in self.player_count_cases:
            with self.subTest():
                if (max_players is not None):
                    game_type.max_players = max_players

                if (min_players is not None):
                    game_type.min_players = min_players

                db.session.add(game_type)
                db.session.commit()

                assert GameType.query.filter_by(name="Hearts").count() == 1
Exemplo n.º 3
0
    def testUpdateMaxPlayers(self):
        game_type = GameType(name="Hearts")

        db.session.add(game_type)
        db.session.commit()

        db_game_type = GameType.query.filter_by(name="Hearts").first()

        assert db_game_type.min_players == None
        assert db_game_type.max_players == None

        game_type.min_players = 3
        game_type.max_players = 4

        db.session.add(game_type)
        db.session.commit()

        db_game_type = GameType.query.filter_by(name="Hearts").first()

        assert db_game_type.min_players == 3
        assert db_game_type.max_players == 4