Example #1
0
def app():
    """Create and configure a new app instance for each test."""
    # create the app with common test config
    # app = create_app({"TESTING": True, "SQLALCHEMY_DATABASE_URI": "sqlite:///:memory:"})
    app = create_app({
        "TESTING":
        True,
        "SQLALCHEMY_DATABASE_URI":
        "postgresql://*****:*****@localhost:5432/test_flaskr"
    })

    # create the database and load test data
    # set _password to pre-generated hashes, since hashing for each test is slow
    with app.app_context():
        init_db()
        user = User(username="******",
                    _password=_user1_pass,
                    profile="test user profile")
        db.session.add_all((
            user,
            User(username="******",
                 _password=_user2_pass,
                 profile="other user profile"),
            Post(
                title="test title",
                body="test\nbody",
                author=user,
                created=datetime(2018, 1, 1),
            ),
        ))
        db.session.commit()

    yield app
Example #2
0
def register():
    """Register a new user.

    Validates that the username is not already taken. Hashes the
    password for security.
    """
    if request.method == "POST":
        username = request.form["username"]
        password = request.form["password"]
        error = None

        if not username:
            error = "Username is required."
        elif not password:
            error = "Password is required."
        elif db.session.query(
                User.query.filter_by(username=username).exists()).scalar():
            error = f"User {username} is already registered."

        if error is None:
            # the name is available, create the user and go to the login page
            db.session.add(User(username=username, password=password))
            db.session.commit()
            return redirect(url_for("auth.login"))

        flash(error)

    return render_template("auth/register.html")
Example #3
0
def register():
    """Register a new user.
    Validates that the email is not already taken. Hashes the
    password for security.
    """
    if request.method == "POST":
        email = request.form["email"]
        first_name = request.form["first_name"]
        last_name = request.form["last_name"]
        password = request.form["password"]
        confirm_password = request.form["confirm_password"]

        error = None

        if not first_name or not last_name:
            error = "Name is required"
        elif not email:
            error = "Email is required."
        elif not password:
            error = "Password is required."
        elif password != confirm_password:
            error = "Passwords do not match"
        elif db.session.query(
                User.query.filter_by(email=email).exists()).scalar():
            error = f"Email {email} is already registered."

        if error is None:
            print("SUccess")
            # the name is available, create the user and go to the login page
            db.session.add(
                User(first_name=first_name,
                     last_name=last_name,
                     email=email,
                     password=password))
            db.session.commit()
            return redirect(url_for("auth.login"))

        print("Error")
        flash(error)

    return render_template("register.html")
Example #4
0
def register():
  """Register a new user.
  Validates that the username and email is not already taken. Hashes the password for security
  """
  if request.method == 'POST':
    username = request.form['username']
    email = request.form['email']
    password = request.form['password']
    repassword = request.form["repassword"]
    error = None

    if not username:
      error = 'Username is required.'
    elif not email:
      error = 'Email is required.'
    elif not password:
      error = 'Password is required.'
    elif password != repassword:
      error = 'Passwords must match.'
    elif db.session.query(
      User.query.filter_by(username=username).exists()
    ).scalar():
      error = f"User {username} is already registered."
    elif db.session.query(
      User.query.filter_by(email=email).exists()
    ).scalar():
      error = f"User {email} is already registered."

    if error is None:
      # getting the user profile image
      link = gravatar(email, use_ssl=True)
      # the name and email is available, create the user and go to the login page
      db.session.add(User(username=username,email=email,password=password,image=link))
      db.session.commit()
      return redirect(url_for('auth.login'))

    flash(error)

  return render_template('auth/register.html')
Example #5
0
def test_user_password(app):
    user = User(username="******", password="******")
    assert user.password != "a"
    assert user.check_password("a")
Example #6
0
def test_user_password(app):
    user = User(username="******", password="******")
    assert user.password != "a"
    assert user.check_password("a")