def setUp(self):
     super().setUp()
     self.app = app.test_client()
     u = User('John Novikov', '*****@*****.**', 'login', 'secretpass',
              123)
     u.save()
     u2 = User('Johnnnn Novikov', '*****@*****.**', 'login',
               'secretpass', 123)
     u.save()
     db.session.add(Team('Shadow Servants'))
     db.session.add(Team('Shadow Servants'))
     db.session.commit()
     self.sh1 = ScoreHistory(500,
                             datetime.datetime(2018, 1, 1, 00, 00, 00),
                             contestant=1,
                             tournament=1)
     self.sh2 = ScoreHistory(700,
                             datetime.datetime(2018, 1, 1, 00, 00, 00),
                             contestant=1,
                             tournament=1)
     self.sh3 = ScoreHistory(700,
                             datetime.datetime(2018, 1, 1, 00, 00, 00),
                             contestant=2,
                             tournament=1)
     self.sh4 = ScoreHistory(900,
                             datetime.datetime(2018, 1, 1, 00, 00, 00),
                             contestant=2,
                             tournament=1)
示例#2
0
    def process(self, form: FlaskForm):
        user = User.query.filter(User.email == form.email.data).count()
        if user:
            return return_bad_status(
                'Пользователь с такой почтой уже существует.')
        user = User.query.filter(User.login == form.login.data).count()
        if user:
            return return_bad_status(
                'Пользователь с таким логином уже существует.')

        code = ''.join([
            random.choice(
                list(
                    '123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
                )) for x in range(8)
        ])
        secret_link = 'http://*****:*****@yandex.ru",
                      recipients=[form.email.data])
        msg.body = 'Для подтверждения вашей учетной записи пройдите по этой ссылке: ' + secret_link
        mail.send(msg)
        secret_pass = sha256(form.password.data.encode()).hexdigest()
        user = User(form.name.data, form.email.data, form.login.data,
                    secret_pass, code)
        user.save()
        user_id = User.last_id()
        return return_ok_status(user_id)
    def setUp(self):
        app.config['TESTING'] = True
        app.config['CSRF_ENABLED'] = False
        app.config['DEBUG'] = False
        app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(
            BASE_DIR, TEST_DB)
        self.app = app.test_client()
        db.create_all()
        self.invite_link = ''.join(
            random.choice(string.ascii_lowercase + string.digits)
            for _ in range(32))

        our_time = "2019-01-05 22:14:39"
        our_time_to_live = "2019-04-05 22:14:39"

        our_datetime = datetime.strptime(our_time, "%Y-%m-%d %H:%M:%S")
        our_datetime_to_live = datetime.strptime(our_time_to_live,
                                                 "%Y-%m-%d %H:%M:%S")

        self.user = User()
        self.user.add()

        print(self.user.id)

        self.tournament = Tournament("CTF", "description", self.user,
                                     our_datetime, our_datetime_to_live,
                                     "45.408062, -123.007827",
                                     self.invite_link, True, True, False, True)
        self.tournament.add()
示例#4
0
 def test_get_info_about_user(self):
     user = User('MyName', '*****@*****.**', 'MyLogin', 'MyPassword',
                 '123')
     user.save()
     url = '/api/user/1'
     resp = self.app.get(url)
     self.assertEqual(resp.status_code, 200)
     response = json.loads(resp.data)
     self.assertEqual(response['status'], 'ok')
示例#5
0
 def test_reset_password(self):
     user = User('MyName', '*****@*****.**', 'MyLogin', 'MyPassword',
                 '123')
     user.save()
     url = '/api/forgetpass'
     data = {'email': '*****@*****.**'}
     resp = self.app.post(url, data=data)
     self.assertEqual(resp.status_code, 200)
     response = json.loads(resp.data)
     self.assertEqual(response['status'], 'ok')
示例#6
0
    def setUp(self):
        super().setUp()
        self.app = app.test_client()

        self.user = User('name', 'test@test', 'login', 'pass', 'code')
        self.user.save()
        with self.app.session_transaction() as session:
            session['id'] = self.user.id

        self.team = Team("Bushwhackers", 'Moscow', 'qwerty', self.user)
示例#7
0
    def test_user_cant_leave_the_team_if_he_is_not_in_it(self):
        test_user = User('test', 'test@test', 'test', 'pass', 'lol')
        test_team = Team('SS', 'Moscow', 'lolkek', test_user)
        test_team.save()

        response = self.app.get('/api/teams/{}/leave'.format(test_team.id))
        self.assertEqual(response.status_code, 200)

        response = json.loads(response.data)
        self.assertEqual(response['status'], 'bad')
        self.assertEqual(response['result'], 'Вы уже/еще не в команде')
示例#8
0
    def test_user_can_join_the_team_by_right_code(self):
        test_user = User('test', 'test@test', 'test', 'pass', 'lol')
        test_team = Team('SS', 'Moscow', 'lolkek', test_user)
        test_team.save()

        response = self.app.get('/team/join?code={}'.format(
            test_team.invite_code))
        self.assertEqual(response.status_code, 200)

        response = json.loads(response.data)
        self.assertEqual(response['status'], 'ok')
        self.assertTrue(self.user in test_team.members)
示例#9
0
    def test_user_can_leave_the_team(self):
        test_user = User('test', 'test@test', 'test', 'pass', 'lol')
        test_team = Team('SS', 'Moscow', 'lolkek', test_user)
        test_team.save()
        test_team.add_new_member(self.user)

        response = self.app.get('/api/teams/{}/leave'.format(test_team.id))
        self.assertEqual(response.status_code, 200)

        response = json.loads(response.data)
        self.assertEqual(response['status'], 'ok')
        self.assertFalse(self.user in test_team.members)
示例#10
0
    def test_member_can_be_deleted_from_team_by_creator(self):
        self.team.save()
        test_user = User('test', 'test@test', 'test', 'pass', 'lol')
        test_user.save()
        self.team.add_new_member(test_user)

        response = self.app.get('/api/teams/{}/delete/{}'.format(
            self.team.id, test_user.id))
        self.assertEqual(response.status_code, 200)

        response = json.loads(response.data)
        self.assertEqual(response['status'], 'ok')
        self.assertFalse(self.team.if_user_in_the_team(test_user))
示例#11
0
    def test_invite_code_cant_be_got_not_by_creator(self):
        test_user = User('test', 'test@test', 'test', 'pass', 'lol')
        test_team = Team('SS', 'Moscow', 'lolkek', test_user)
        test_team.save()

        response = self.app.get('/api/teams/{}/code'.format(test_team.id))
        self.assertEqual(response.status_code, 200)

        response = json.loads(response.data)
        self.assertEqual(response['status'], 'bad')
        self.assertEqual(
            response['result'],
            'Вы не имеете доступа к ссылке приглашения в команду')
示例#12
0
    def test_member_cant_be_deleted_from_team_not_by_creator(self):
        test_user = User('test', 'test@test', 'test', 'pass', 'lol')
        test_user.save()
        test_team = Team('SS', 'Moscow', 'lolkek', test_user)
        test_team.save()

        response = self.app.get('/api/teams/{}/delete/{}'.format(
            test_team.id, test_user.id))
        self.assertEqual(response.status_code, 200)

        response = json.loads(response.data)
        self.assertEqual(response['status'], 'bad')
        self.assertEqual(response['result'],
                         'Вы не имеете прав редактировать команду')
示例#13
0
    def test_team_city_cant_be_changed_not_by_creator(self):
        test_user = User('test', 'test@test', 'test', 'pass', 'lol')
        test_team = Team('SS', 'Moscow', 'lolkek', test_user)
        test_team.save()

        response = self.app.post('/api/teams/{}/city/change'.format(
            test_team.id),
                                 data={'city': 'kek'})
        self.assertEqual(response.status_code, 200)

        response = json.loads(response.data)
        self.assertEqual(response['status'], 'bad')
        self.assertEqual(response['result'],
                         'Вы не имеете прав редактировать команду')