示例#1
0
def app():
    db_dir = tempfile.mkdtemp()
    media_dir = tempfile.mkdtemp()

    app = create_app({
        "TESTTING":
        True,
        "SERVER_NAME":
        "localhost.localdomain",
        "SQLALCHEMY_DATABASE_URI":
        "sqlite:////{}/db.sqlite".format(db_dir),
        "UPLOAD_FOLDER":
        media_dir,
    })

    with app.app_context():
        db.create_all()
        user = User("admin", "*****@*****.**", stuff=True, superuser=True)
        user.set_password("admin")
        db.session.add(user)
        db.session.commit()

    yield app

    shutil.rmtree(db_dir)
    shutil.rmtree(media_dir)
示例#2
0
def create_superuser(app: Flask) -> None:
    print("create superuser...")
    with app.app_context():
        admin = User("admin", "*****@*****.**", stuff=True, superuser=True)
        admin.set_password("admin")
        db.session.add(admin)
        db.session.commit()
示例#3
0
def create_users(app: Flask) -> None:
    print("create some fake users...")
    with app.app_context():
        for _ in range(10):
            username = name()
            user = User(username, "{}@{}.org".format(username, word()))
            user.set_password("password")
            db.session.add(user)
            db.session.commit()
示例#4
0
def create_superuser(username, email, password) -> None:
    if not username or not email or not password:
        click.echo("Failed.")
        return
    user = User(username, email, stuff=True, superuser=True)
    user.set_password(password)
    db.session.add(user)
    db.session.commit()
    click.echo("Created.")
示例#5
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = RegistrationForm()
    if form.validate_on_submit():
        user = User(username=form.username.data, email=form.email.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash('Congratulations, you are now a registered user!')
        return redirect(url_for('main.login'))
    return render_template('register.html', title='Register', form=form)
示例#6
0
 def post(self):
     data = request.get_json() or {}
     username = data.get("username")
     password = data.get("password")
     email = data.get("email")
     if not username or not password or not email:
         return invalid_api_usage("No username, password, email provided",
                                  400)
     if not check_password(password):
         return invalid_api_usage("Invalid password", 400)
     user = User(username, email)
     user.set_password(password)
     db.session.add(user)
     db.session.commit()
     return {"message": "success"}, 201
示例#7
0
def stuff_client(app: Flask):
    client = app.test_client()
    user = User("stuff", "*****@*****.**", stuff=True)
    user.set_password("stuffpsw")
    with app.app_context():
        db.session.add(user)
        db.session.commit()
    res = client.post("/auth/token/login",
                      json={
                          "username": "******",
                          "password": "******",
                      })
    assert res.is_json
    token = res.get_json().get("token")
    client.environ_base["HTTP_AUTHORIZATION"] = "Bearer {}".format(token)
    return client