def test_competition_json(self):
        competition = CompetitionModel('test', False, 1)
        expected = {
            'competicao': 'test',
            'isFinished': False,
            'numTrys': 1,
            'entrys': []
        }

        self.assertEqual(
            competition.json(), expected,
            "The JSON export of the competition is incorrect. Received {}, expected {}."
            .format(competition.json(), expected))
    def put(self, name):
        data = Competition.parser.parse_args()
        competition = CompetitionModel.find_by_name(name)

        if competition:
            competition.name = name
            competition.isFinished = data['isFinished']
            competition.numTrys = data['numTrys']
        else:
            competition = CompetitionModel(name, data['isFinished'],
                                           data['numTrys'])

        competition.save_to_db()

        return competition.json()
    def post(self, name):
        if CompetitionModel.find_by_name(name):
            return {
                'message':
                "An competition with name '{}' already exists.".format(name)
            }, 500

        data = Competition.parser.parse_args()
        competition = CompetitionModel(name, 0, data['numTrys'])

        try:
            competition.save_to_db()
        except:
            return {
                "message": "An error occurred inserting the competition."
            }, 500

        return competition.json(), 201