def create_admin(self): from bolao.models import User from bolao.database import db from bolao.utils import generate_password_hash password = os.urandom(5).encode('hex') admin = User(name="Admin", email='*****@*****.**', active=False, admin=True) admin.password = generate_password_hash(password) db.session.add(admin) db.session.commit() return password
def test_update_ranking(self): user1 = User(name="User1", email="*****@*****.**", active=True) user2 = User(name="User2", email="*****@*****.**", active=True) db.session.add(user1) db.session.add(user2) self.game1.score_team1 = 1 self.game1.score_team2 = 1 self.game2.score_team1 = 2 self.game2.score_team2 = 0 self.game3.score_team1 = 2 self.game3.score_team2 = 1 user1_bet1 = BetGame(user=user1, game=self.game1, score_team1=1, score_team2=1, score=18) user1_bet2 = BetGame(user=user1, game=self.game2, score_team1=1, score_team2=0, score=12) user2_bet1 = BetGame(user=user2, game=self.game1, score_team1=1, score_team2=0, score=3) user2_bet2 = BetGame(user=user2, game=self.game2, score_team1=2, score_team2=0, score=18) db.session.add(user1_bet1) db.session.add(user1_bet2) db.session.add(user2_bet1) db.session.add(user2_bet2) db.session.commit() update_ranking() self.assertEqual(30, user1.score_games) self.assertEqual(21, user2.score_games) ranking = User.ranking() self.assertEqual(user1.id, ranking[0].id) self.assertEqual(user2.id, ranking[1].id) user1_bet3 = BetGame(user=user1, game=self.game3, score_team1=0, score_team2=0, score=0) user2_bet3 = BetGame(user=user2, game=self.game3, score_team1=2, score_team2=1, score=18) db.session.add(user1_bet3) db.session.add(user2_bet3) db.session.commit() update_ranking() self.assertEqual(30, user1.score_games) self.assertEqual(39, user2.score_games) ranking = User.ranking() self.assertEqual(user2.id, ranking[0].id) self.assertEqual(user1.id, ranking[1].id)
def signup(): form = SignupForm(request.form) if form.validate_on_submit(): user = User() user.name = form.name.data user.email = form.email.data.lower() user.password = generate_password_hash(form.password.data) user.phone_number = form.phone_number.data db.session.add(user) db.session.commit() login_user(user, remember=True, force=True) flask.flash(WELCOME_MESSAGE, category='info') return redirect(url_for('.index')) return render_template('signup.html', form=form)
def setUp(self): db.create_all() user = User(name="Test", email="*****@*****.**", active=True) db.session.add(user) bra = Team(name='Brasil', alias='BRA') arg = Team(name='Argentina', alias='ARG') uru = Team(name='Uruguai', alias='URU') ale = Team(name='Alemanha', alias='ALE') usa = Team(name='Estados Unidos', alias='USA') db.session.add(bra) db.session.add(arg) db.session.add(uru) db.session.add(ale) db.session.add(usa) db.session.commit() self.user = user self.bra = bra self.arg = arg self.uru = uru self.ale = ale self.usa = usa
def setUp(self): db.create_all() user = User(name="Test", email="*****@*****.**", active=True) db.session.add(user) bra = Team(name='Brasil', alias='BRA') arg = Team(name='Argentina', alias='ARG') db.session.add(bra) db.session.add(arg) fred = Scorer(name="Fred", team=bra) neymar = Scorer(name="Neymar", team=bra) messi = Scorer(name="Messi", team=arg) db.session.add(fred) db.session.add(neymar) db.session.add(messi) db.session.commit() self.user = user self.fred = fred self.neymar = neymar self.messi = messi
def update_ranking(): for user in User.ranking(): user.score_games = db.session.query(func.sum( BetGame.score)).filter_by(user=user).scalar() or 0 update_ranking_criterias(user) update_total_score(user) db.session.commit()
def setUp(self): db.create_all() bra = Team(name='Brasil', alias='BRA') arg = Team(name='Argentina', alias='ARG') game = Game(team1=bra, team2=arg) db.session.add(game) user = User(name="Test", email="*****@*****.**", active=True) user2 = User(name="Test2", email="*****@*****.**", active=True) db.session.add(user) db.session.add(user2) db.session.commit() self.game = game self.user = user self.user2 = user2
def test_scorer_with_inactive_user(self): from bolao.views import INACTIVE_USER_MESSAGE user = User(name="Inactive", email="*****@*****.**", active=False) db.session.add(user) db.session.commit() with self.client.session_transaction() as sess: sess['user_id'] = user.id response = self.client.get('/artilheiros') self.assertRedirects(response, url_for('bolao.index')) self.assert_flashes(INACTIVE_USER_MESSAGE, category='warning')
def test_bet_games_with_inactive_user(self): from bolao.views import INACTIVE_USER_MESSAGE bra = Team(name="Brasil", alias="BRA") usa = Team(name="United States", alias="USA") now = datetime.now() game = Game(team1=bra, team2=usa, time=now) db.session.add(bra) db.session.add(usa) db.session.add(game) db.session.commit() user = User(name="Inactive", email="*****@*****.**", active=False) db.session.add(user) db.session.commit() with self.client.session_transaction() as sess: sess['user_id'] = user.id response = self.client.get(url_for('.bet_game_view', game_id=game.id)) self.assertRedirects(response, url_for('.games')) self.assert_flashes(INACTIVE_USER_MESSAGE, category='warning')
def setUp(self): db.create_all() self.user = User(name="Test", email="*****@*****.**", active=True) db.session.add(self.user) db.session.commit()
def update_positions(): """Update ranking positions.""" for pos, user in enumerate(User.ranking()): user.last_pos = user.pos user.pos = pos + 1 db.session.commit()
def ranking(): return render_template('ranking.html', users=User.ranking())
def test_update_ranking_criterias(self): user = User(name="User", email="*****@*****.**", active=True) db.session.add(user) self.game1.score_team1 = 2 self.game1.score_team2 = 0 self.game2.score_team1 = 2 self.game2.score_team2 = 2 self.game3.score_team1 = 2 self.game3.score_team2 = 0 self.game4.score_team1 = 2 self.game4.score_team2 = 0 self.game5.score_team1 = 2 self.game5.score_team2 = 0 self.game6.score_team1 = 2 self.game6.score_team2 = 0 self.game7.score_team1 = 2 self.game7.score_team2 = 2 self.game8.score_team1 = 2 self.game8.score_team2 = 2 # exact (+game result, winner and loser goals) bet1 = BetGame(user=user, game=self.game1, score_team1=2, score_team2=0, score=18) # game result bet2 = BetGame(user=user, game=self.game2, score_team1=1, score_team2=1, score=9) bet3 = BetGame(user=user, game=self.game3, score_team1=3, score_team2=1, score=9) # game result and winner goal bet4 = BetGame(user=user, game=self.game4, score_team1=2, score_team2=1, score=12) # game result and loser goal bet5 = BetGame(user=user, game=self.game5, score_team1=3, score_team2=0, score=12) # winner goal bet6 = BetGame(user=user, game=self.game6, score_team1=2, score_team2=0, score=3) # looser goal bet7 = BetGame(user=user, game=self.game7, score_team1=0, score_team2=2, score=3) # none bet8 = BetGame(user=user, game=self.game8, score_team1=0, score_team2=2, score=0) db.session.add(bet1) db.session.add(bet2) db.session.add(bet3) db.session.add(bet4) db.session.add(bet5) db.session.add(bet6) db.session.add(bet7) db.session.add(bet8) db.session.commit() update_ranking_criterias(user) self.assertEqual(1, user.crit_exact) self.assertEqual(5, user.crit_game_result) self.assertEqual(3, user.crit_win_goals) self.assertEqual(3, user.crit_lose_goals)
def update_ranking(): for user in User.ranking(): user.score_games = db.session.query(func.sum(BetGame.score)).filter_by(user=user).scalar() or 0 update_ranking_criterias(user) update_total_score(user) db.session.commit()