#!/usr/bin/env python from flask_script import Manager from flask_migrate import MigrateCommand from flaskbase import create_app, import_submodules from flaskbase.extensions import db app = create_app() manager = Manager(app) manager.add_command('db', MigrateCommand) for m_name, m in import_submodules(app, 'commands'): manager.add_command(m_name.replace('mod_', ''), m.manager) @manager.command def syncdb(): db.create_all() try: from flask.ext.zen import Test, ZenTest from flask_script import Option from coverage import coverage class CoverageTest(Test): def get_options(self): return super(CoverageTest, self).get_options() + [ Option('-H', '--html', dest='html', default=None, help='Save HTML report to directory'), ] def run(self, html=None, *args, **kwargs): cov = coverage(branch=True, source=['.'], omit=['*/tests.py', 'tests.py', 'manage.py', 'flaskbase/settings/*', '*/admin.py']) cov.start() super(CoverageTest, self).run(*args, **kwargs) cov.stop() cov.save() print cov.report() if html: cov.html_report(directory=html) print '\nHTML coverage report saved to', html manager.add_command('test', Test()) manager.add_command('coverage', CoverageTest()) manager.add_command('zen', ZenTest()) except ImportError: pass if __name__ == '__main__': manager.run()