Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
    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)
Пример #4
0
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)
Пример #5
0
    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
Пример #6
0
    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
Пример #7
0
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()
Пример #8
0
    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
Пример #9
0
    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')
Пример #10
0
    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')
Пример #11
0
 def setUp(self):
     db.create_all()
     self.user = User(name="Test", email="*****@*****.**", active=True)
     db.session.add(self.user)
     db.session.commit()
Пример #12
0
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()
Пример #13
0
    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)
Пример #14
0
def ranking():
    return render_template('ranking.html', users=User.ranking())
Пример #15
0
    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)
Пример #16
0
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()
Пример #17
0
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()