123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import os
- COV = None
- if os.environ.get('FLASK_COVERAGE'):
- import coverage
- COV = coverage.coverage(branch=True, include='app/*')
- COV.start()
- if os.path.exists('.env'):
- print('Importing environment from .env...')
- for line in open('.env'):
- var = line.strip().split('=')
- if len(var) == 2:
- os.environ[var[0]] = var[1]
- from app import create_app, db
- from app.models import *
- from flask_script import Manager, Shell
- from flask_migrate import Migrate, MigrateCommand
- app = create_app(os.getenv('FLASK_CONFIG') or 'default')
- manager = Manager(app)
- migrate = Migrate(app, db)
- def make_shell_context():
- return dict(app=app, db=db)
- manager.add_command('shell', Shell(make_context=make_shell_context))
- manager.add_command('db', MigrateCommand)
- @manager.command
- def test(coverage=False):
- if coverage and not os.environ.get('FLASK_COVERAGE'):
- import sys
- os.environ['FLASK_COVERAGE'] = '1'
- os.execvp(sys.executable, [sys.executable] + sys.argv)
- import unittest
- tests = unittest.TestLoader().discover('test')
- unittest.TextTestRunner(verbosity=2).run(tests)
- if COV:
- COV.stop()
- COV.save()
- print('Coverage Summary:')
- COV.report()
- basedir = os.path.abspath(os.path.dirname(__file__))
- covdir = os.path.join(basedir, 'tmp/coverage')
- COV.html_report(directory=covdir)
- print(f'HTML version: file://{covdir}/index.html')
- COV.erase()
- @manager.command
- def profile(length=25, profile_dir=None):
- from werkzeug.contrib.profiler import ProfilerMiddleware
- app.wsgi_app = ProfilerMiddleware(app.wsgi_app, restrictions=[length],
- profile_dir=profile_dir)
- app.run()
- @manager.command
- def deploy():
- from flask.ext.migrate import upgrade
- from app.models import Role, User
- upgrade()
- Role.insert_roles()
- User.add_self_follows()
- if __name__ == '__main__':
- manager.run()
|