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"]) })
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
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