def resetDatabase(): """Reset database for testing purpose""" db.drop_all() db.create_all() user_password_encrypted = sha256_crypt.hash('user') admin_password_encrypted = sha256_crypt.hash('admin') user = Users('user', '*****@*****.**', '081122112211', user_password_encrypted, False) admin = Users('admin', '*****@*****.**', '0811221122112', admin_password_encrypted, True) trash_category = ListTrashCategory(2, 'dummy_category') trash_one = { "trash_category_id": 1, "admin_id": 2, "trash_name": "dummy_trash", "price": 1000, "photo": "dummy_photo", "point": 1 } trash_two = { "trash_category_id": 1, "admin_id": 2, "trash_name": "dummy_trash", "price": 2000, "photo": "dummy_photo", "point": 2 } trash_instance_one = ListTrash(trash_one) trash_instance_two = ListTrash(trash_two) reward = Rewards(2, "reward dummy", 20, "photo", 20, True) reward1 = Rewards(2, "reward dummy", 20, "photo", 20, True) reward2 = Rewards(2, "reward dummy", 20, "photo", 20, True) order = ListOrders({ 'user_id': 1, 'adress': "dummy", 'time': datetime.datetime.utcnow(), 'photo': 'url', 'status': 'waiting' }) db.session.add(user) db.session.add(admin) db.session.add(trash_category) db.session.add(trash_instance_one) db.session.add(trash_instance_two) db.session.add(reward) db.session.add(reward1) db.session.add(reward2) db.session.add(order) db.session.commit() user_attr = UserAttributes(1, 0, 0, False) admin_attr = UserAttributes(2, 0, 0, False) db.session.add(user_attr) db.session.add(admin_attr) db.session.commit()
def recreate_db(): """ Recreates a local database. You probably should not use this on production. """ db.drop_all() db.create_all() db.session.commit()
def client(): from apps import create_app, db flask_app = create_app('testing') testing_client = flask_app.test_client() with flask_app.app_context(): db.create_all() yield testing_client db.drop_all()
def tearDownClass(cls): if cls.client: # stop the flask server and the browser cls.client.get('http://localhost:5000/shutdown') cls.client.close() # destroy database db.drop_all() db.session.remove() # remove application context cls.app_context.pop()
def drop_all(): """Drops all database tables""" if prompt_bool("Are you sure ? You will lose all your data !"): db.drop_all()
def setUp(self): self.app = app.test_client() self.app.testing = True db.drop_all() db.create_all()
class ArticleComment(db.Model): __tablename__ = 'article_comment' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) article_id = db.Column(db.Integer, db.ForeignKey('article.id')) comment = db.Column(db.TEXT) addtime = db.Column(db.DATETIME, index=True, default=datetime.now) def __repr__(self): return '<ArticleComment %r>' % self.id if __name__ == "__main__": db.drop_all() db.create_all() flag = 1 if flag == 0: db.drop_all() db.create_all() if flag == 1: tag0 = AlbumTag(name='风景') tag1 = AlbumTag(name='动漫') tag2 = AlbumTag(name='星空') tag3 = AlbumTag(name='萌宠') tag4 = AlbumTag(name='静物') tag5 = AlbumTag(name='汽车') tag6 = AlbumTag(name='海洋') tag7 = AlbumTag(name='美女') tag8 = AlbumTag(name='城市')
def tearDown(self): db.session.remove() db.drop_all() self.app_context.pop()
from werkzeug.security import check_password_hash class User(db.Model): __tablename__ = "user" # __table_args__ = {'extend_existing': True} id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) pwd = db.Column(db.String(255), nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) phone = db.Column(db.String(120), unique=True, nullable=False) face = db.Column(db.String(255), unique=True, nullable=False) jianjie = db.Column(db.TEXT) uuid = db.Column(db.String(255), unique=True, nullable=False) addtime = db.Column(db.DATETIME, index=True, default=datetime.now) # addtime = db.Column(db.DATETIME, default=datetime.now) def __repr__(self): return '<User %r>' % (self.name) def check_pwd(self, pwd): return check_password_hash(self.pwd, pwd) # 传入的pwd与解密后的self.pwd相等返回true否则返回false if __name__ == '__main__': # 当我们在数据库中写入新的类(表)或者某一表中添加或删除某一属性后需要更新数据库时, # 需要将__init__.py脚本中import apps.views 包注释掉,防止循环引用 db.drop_all(bind=None) db.create_all()
def dropdb(): '''Drops all database tables.''' if prompt_bool('Are you sure to drop your databse?'): db.drop_all()
def tearDown(self): """function to delete test_db after every test case""" db.session.remove() db.drop_all() self.app_context.pop()