58 lines
1.6 KiB
Python
Executable File
58 lines
1.6 KiB
Python
Executable File
#!/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()
|