def create(): data = getData() email, password, nameFirst, nameLast = (request.form[x] for x in ('email', 'password', 'name_first', 'name_last')) handle = createHandle( nameFirst, nameLast ) # In the form 'firstNamelastName' or if already taken: 'firstNamelastName123'. u_id = createU_ID(data) # In the form '123456'. if emailExists(email, data): raise ValueError('Email entered is already being used.') handle = uniqueHandle(data, handle) checkEmail(email) checkPassword(password) checkName(nameFirst, nameLast) createUser(data, email, hashPassword(password), nameFirst, nameLast, handle, u_id, PERMISSION3) data['users'][0][ 'is_admin'] = PERMISSION1 # The very first user who signs up is an owner data['tokens'].append(generateToken(u_id)) print(data) return sendSuccess({ 'u_id': u_id, 'token': generateToken(u_id), })
def test_valid_reset(): ''' Testing if auth_passwordreset functions return expected outputs if passed the correct password and reset code. ''' data = { "users": [{ "email": "*****@*****.**", "password": hashPassword("validPassword"), "name_first": "validFirst", "name_last": "validLast", "handle": "validFirstvalidLast", "u_id": 8501, "resetCode": 1234, "is_admin": 1, "img_url": None}], "tokens": [], "channels": [], } checkPassword("validNewPassword") assert resetPasswordFunc(data, 1234, "validNewPassword") is None assert data['users'][0]['password'] == hashPassword("validNewPassword") assert data['users'][0]['resetCode'] is None
def test_invalid_code(): ''' Testing if auth_passwordreset functions return expected outputs if passed a correct password but an invalid reset code. ''' data = { "users": [{ "email": "*****@*****.**", "password": hashPassword("validPassword"), "name_first": "validFirst", "name_last": "validLast", "handle": "validFirstvalidLast", "u_id": 8501, "resetCode": 1234, "is_admin": 1, "img_url": None}], "tokens": [], "channels": [], } checkPassword("validNewPassword") with pytest.raises(errors.ValueError): resetPasswordFunc(data, 4321, "validNewPassword")
def reset(): data = getData() resetCode = int(request.form.get('reset_code')) newPassword = request.form.get('new_password') checkPassword(newPassword) resetPasswordFunc(data, resetCode, newPassword) return sendSuccess({})
def test_invalid_reset(): ''' Testing if auth_passwordreset functions return expected outputs if passed an incorrect password and reset code. ''' invalidNewPassword = "******" with pytest.raises(errors.ValueError): checkPassword(invalidNewPassword)
def reset(): data = getData() resetCode = int(request.form.get('reset_code')) newPassword = request.form.get('new_password') checkPassword(newPassword) for user in data['users']: if user['resetCode'] == resetCode: user['password'] = hashPassword(newPassword) user['resetCode'].remove(resetCode) return sendSuccess({}) raise ValueError('Reset code is not valid.')
def create(): data = getData() email = request.form.get('email') password = request.form.get('password') nameFirst = request.form.get('name_first') nameLast = request.form.get('name_last') handle = createHandle( nameFirst, nameLast ) # In the form 'firstNamelastName' or if already taken: 'firstNamelastName123'. u_id = createU_ID(data) # In the form 'U123456'. for users in data['users']: if email in users['email']: raise ValueError('Email entered is already being used.') while handle in users['handle']: handle = randomHandle(handle) checkEmail(email) checkPassword(password) checkName(nameFirst, nameLast) data['users'].append({ 'email': email, 'password': hashPassword(password), 'name_first': nameFirst, 'name_last': nameLast, 'handle': handle, 'u_id': u_id, 'resetCode': None, 'is_admin': PERMISSION3, }) # The very first user who signs up is an owner data['users'][0]['is_admin'] = PERMISSION1 data['tokens'].append(generateToken(u_id)) print(data) return sendSuccess({ 'u_id': u_id, 'token': generateToken(u_id), })
def test_invalid_password_auth_register(): ''' Testing if auth_register raises a ValueError if passed an invalid password. ''' password1 = "short" password2 = "" password3 = "123" with pytest.raises(errors.ValueError): checkPassword(password1) with pytest.raises(errors.ValueError): checkPassword(password2) with pytest.raises(errors.ValueError): checkPassword(password3)