From c70755d267dcf2eee55c36ec1bc37094a53463f0 Mon Sep 17 00:00:00 2001 From: marksibrahim Date: Sat, 26 Aug 2017 17:39:39 -0400 Subject: [PATCH] basic sqlalchemy + flask + pytest --- flask-bootstrap/app.py | 45 +++++++++++++++++++++++++++++++++++++ flask-bootstrap/test_app.py | 23 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 flask-bootstrap/app.py create mode 100644 flask-bootstrap/test_app.py diff --git a/flask-bootstrap/app.py b/flask-bootstrap/app.py new file mode 100644 index 0000000..a2b683b --- /dev/null +++ b/flask-bootstrap/app.py @@ -0,0 +1,45 @@ +from flask import Flask +from flask import jsonify +from flask_sqlalchemy import SQLAlchemy + + +app = Flask(__name__) +app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://' +db = SQLAlchemy(app) + + +class User(db.Model): + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True) + email = db.Column(db.String(120), unique=True) + + def __init__(self, username, email): + self.username = username + self.email = email + + def __repr__(self): + return '' % self.username + +@app.route('/') +def hello_world(): + return 'Hello, World!' + + +@app.route('/add_user') +def add_user(): + guest = User('guest', 'guest@example.com') + db.session.add(guest) + db.session.commit() + return 'added guest' + +@app.route('/print_users') +def print_users(): + users = User.query.all() + users_dict = {} + for user in users: + users_dict[str(user)] = True + return jsonify(users_dict) + +if __name__ == "__main__": + db.create_all() + app.run() diff --git a/flask-bootstrap/test_app.py b/flask-bootstrap/test_app.py new file mode 100644 index 0000000..ebb0244 --- /dev/null +++ b/flask-bootstrap/test_app.py @@ -0,0 +1,23 @@ +import app +import pytest + + +@pytest.fixture(scope='session') +def test_app(): + """Returns a Flask app for testing""" + app.app.testing = True + an_app = app.app.test_client() + app.db.create_all() + yield an_app + + +def test_hello(test_app): + result = test_app.get('/') + assert b"Hello" in result.data + + +def test_print_users(test_app): + result = test_app.get('/print_users') + assert b"{}" in result.data + +