def post(cls): user_json = request.get_json() user = UserSchema().load(user_json) if not user.password: return max_err(USER_NO_PASSWORD, 404) if UserModel.find_by_username(user.username): return max_err(USER_ALREADY_EXISTS, 400) user.set_password(user.password) user.save_to_db() return max_res(CREATED_SUCCESSFULLY.format(username=user.username), 201)
def register_user(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] #email = request.form['email'] if UserModel.find_by_username(username): return "Username already exists! Try with another name." else: hashed_password=Utils.hash_password(password) user = UserSchema().load({"username":username, "password":hashed_password}) user.save_to_db() session['username'] = user.username return redirect(url_for("webmodels.index")) return render_template("users/register.html")
def test_register_with_existing_name(self): tester = app.test_client(self) username = '******' test_user = UserSchema().load({ 'username': username, 'password': '******' }).data test_user.save_to_db() response = tester.post( '/users', data=json.dumps(dict(username=username, password='******')), content_type='application/json' ) test_user.delete_from_db() self.assertEqual(response.status_code, 400) assert ('username' in json.loads(response.data.decode('utf-8'))['errors']) self.assertIn(b'user with username = \\"{}\\" already exists.'.format(username), response.data)