def create_tournament(self, name, date, past_event=False): """Create a tournament""" to_username = '******'.format(name) db.session.add(Account(to_username, '{}@bar.com'.format(to_username))) db.session.flush() if past_event: # We need to do this by hand with the daos dao = Tournament(name) dao.date = date dao.to_username = to_username db.session.add(dao) db.session.commit() tourn = Tourn(name) else: tourn = Tourn(name).new(**{ 'date': date.strftime(Tourn.DATE_FORMAT), 'to_username': to_username }) self.tournaments.add(tourn)
def new(self, **details): """ add a tournament to the db Expects: - details - dict of keys to put into the DAO """ if self.get_dao() is not None: raise RuntimeError('A tournament with name {} already exists! ' \ 'Please choose another name'.format(self.tournament_id)) dao = TournamentDAO(self.tournament_id) dao.to_username = details.pop('to_username') try: dao.date = datetime.strptime(details.pop('date'), self.DATE_FORMAT) if dao.date.date() < date.today(): raise ValueError() except ValueError: raise ValueError('Enter a valid date') db.session.add(dao) db.session.commit() self._set_details(details) return self