def test_api_decorators(client, flask_app):
    global AUTHENTICATED
    api = Api(flask_app, request_decorators=[auth_required])
    api.add_model(Company)
    assert client.get('/company').status_code == 403

    assert client.post('/company', data={'name': 'Terran'}, headers={'auth': True}).status_code == 201
    assert client.get('/company', headers={'auth': True}).status_code == 200
def test_resource_decorators(client, flask_app):
    api = Api(flask_app)
    api.add_model(Company)
    api.add_model(Address, request_decorators=[auth_required])

    assert client.get('/address').status_code == 403
    assert client.post('/address', data={'steet': '5 Av'}).status_code == 403
    assert client.get('/company', data={'name': 'Terran'}).status_code == 200
    assert client.post('/company', data={'name': 'Terran'}).status_code == 201

    assert client.post('/address', data={'id': 2, 'street': '5 Av'}, headers={'auth': True}).status_code == 201
    assert client.post('/company', data={'name': 'Terran'}, headers={'auth': True}).status_code == 201
    assert client.get('/address/2').status_code == 403
    assert client.get('/address/2', headers={'auth': True}).status_code == 200
def init_test_data(flask_app, db_session):
    for name, location in CLIENTS:
        company = Company(name=name, location=location)
        db_session.add(company)

    address = Address(street="5th Av.")
    emp1 = Employee(firstname="John", lastname="Doe", address=address)
    db_session.add(address)
    db_session.add(emp1)
    db_session.commit()

    api = Api(flask_app)
    api.add_model(Company)
    api.add_model(Employee, serializer_class=EmployeeSerializer)
    api.add_relation(Company.employees, serializer_class=EmployeeSerializer)
    return api
Beispiel #4
0
def test_api_decorators(client, flask_app):
    api = Api(flask_app, request_decorators=[auth_required])
    api.add_model(Company)
    api.add_model(Address, request_decorators=[post_hook])
    assert client.get("/company").status_code == 403

    assert (client.post("/company",
                        data={
                            "name": "Terran"
                        },
                        headers={
                            "auth": True
                        }).status_code == 201)
    assert client.get("/company", headers={"auth": True}).status_code == 200

    response = client.post("/address", headers={"auth": True})
Beispiel #5
0
def test_resource_decorators(client, flask_app):
    api = Api(flask_app)
    api.add_model(Company, request_decorators=[auth_required])
    api.add_model(Address)

    assert client.get("/company").status_code == 403
    assert client.post("/company", data={"name": "Terran"}).status_code == 403
    assert client.get("/address").status_code == 200
    assert client.post("/address", data={"street": "5 Av"}).status_code == 201

    resp = client.post("/company",
                       data={
                           "id": 2,
                           "name": "Protoss"
                       },
                       headers={"auth": True})
    assert resp.status_code == 201
    assert client.get("/company/2").status_code == 403
    assert client.get("/company/2", headers={"auth": True}).status_code == 200
Beispiel #6
0
def sample_api(flask_app):
    api = Api(flask_app)
    api.add_model(Company)
    api.add_model(Company, view_name="alt_company")
    api.add_model(Employee, serializer_class=EmployeeSerializer)
from flask import Flask
from flask_restalchemy import Api
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import Column, String, Integer

app = Flask('tour-of-heroes')
db = SQLAlchemy()


class Heroe(db.Model):
    id = Column(Integer, primary_key=True)
    name = Column(String)


# Set an SQLite in-memory database
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:'
db.init_app(app)  # Must be called before Api object creation

api = Api(app)
api.add_model(Heroe, '/heroes')


@app.route('/create_db', methods=['POST'])
def create_db():
    db.create_all()  # Remove this in production code
    return 'DB created'


if __name__ == '__main__':
    app.run()
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)


class UserView(ModelView):
    can_delete = True  # disable model deletion


app = Flask("tour-of-heroes")
app.secret_key = 'super secret key'
app.config['FLASK_ADMIN_SWATCH'] = 'cerulean'
app.config[
    'SQLALCHEMY_DATABASE_URI'] = 'mysql://*****:*****@#@47.104.80.155/javaweb'
db.init_app(app)  # Must be called before Api object creation


@app.route("/create_db", methods=["GET"])
def create_db():
    db.create_all()
    return "DB created"


api = Api(app)
api.add_model(User, "/users")

admin = Admin(app, name='统一后台管理模板', template_mode='bootstrap3')
admin.add_view(UserView(User, db.session))

if __name__ == "__main__":
    app.run()
Beispiel #9
0
from flask import Flask
from flask_restalchemy import Api

from declarative import db
from model.acordo_leniencia import AcordoLeniencia
from model.empresa import Empresa
from serializer.acordo_leniencia import AcordoLenienciaSerializer

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL',
                                                       'sqlite:///:memory:')
db.init_app(app)

api = Api(app)

api.add_model(Empresa)
api.add_model(AcordoLeniencia, serializer_class=AcordoLenienciaSerializer)
api.add_relation(Empresa.acordoLeniencia,
                 serializer_class=AcordoLenienciaSerializer)


@app.route("/")
def hello():
    return u'Olá mundo!'


@app.route("/init_db")
def create_db():
    db.drop_all()
    db.create_all()
    return 'Banco iniciado'
# 第一次运行需要执行这个 localhost:5000/create_db 创建所有的表
@app.route("/create_db", methods=["GET"])
def create_db():
    db.create_all()
    return "DB created"


@app.route('/addusers', methods=['GET'])
def add_users():

    for i in range(10000, 20000):
        u = User(username='******' % i, email='*****@*****.**' % i)
        db.session.add(u)
        db.session.commit()
    pass


# RestAPI 配置部分
api = Api(app)
api.add_model(User, "/users")
api.add_model(Job, "/jobs")

# 后台管理部分
admin = Admin(app, name='统一后台管理模板', template_mode='bootstrap3')
admin.add_view(UserView(User, db.session))
admin.add_view(JobView(Job, db.session))

if __name__ == "__main__":
    app.run()
from sqlalchemy import Column, String, Integer


db = SQLAlchemy()


class Hero(db.Model):
    id = Column(Integer, primary_key=True)
    name = Column(String)
    secret_name = Column(String)


app = Flask("tour-of-heroes")


@app.route("/create_db", methods=["POST"])
def create_db():
    db.create_all()
    return "DB created"


# Set an SQLite in-memory database
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///:memory:"
db.init_app(app)  # Must be called before Api object creation

api = Api(app)
api.add_model(Hero, "/heroes")

if __name__ == "__main__":
    app.run()
Beispiel #12
0
def sample_api(flask_app):
    api = Api(flask_app)
    api.add_model(Employee)
    return api