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)
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()
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')
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')
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)
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'], 'Вы уже/еще не в команде')
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)
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)
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))
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'], 'Вы не имеете доступа к ссылке приглашения в команду')
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'], 'Вы не имеете прав редактировать команду')
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'], 'Вы не имеете прав редактировать команду')