#!/usr/bin/env python import os, sys from backend.models import Permission, Group sys.path.append(os.path.join(os.path.dirname(__file__), os.path.pardir)) import os import unittest import coverage from flask_script import Manager from flask_migrate import Migrate, MigrateCommand from backend import app, db COV = coverage.coverage( branch=True, include='app/*', omit=[ 'app/tests/*', 'app/server/config.py', 'app/server/*/__init__.py' ] ) COV.start() migrate = Migrate(app, db) manager = Manager(app) # migrations manager.add_command('db', MigrateCommand) @manager.command def test(): """Runs the unit tests without test coverage.""" tests = unittest.TestLoader().discover('tests', pattern='test*.py') result = unittest.TextTestRunner(verbosity=2).run(tests) if result.wasSuccessful(): return 0 return 1 @manager.command def cov(): """Runs the unit tests with coverage.""" tests = unittest.TestLoader().discover('app/tests') result = unittest.TextTestRunner(verbosity=2).run(tests) if result.wasSuccessful(): 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('HTML version: file://%s/index.html' % covdir) COV.erase() return 0 return 1 def insert_initial_groups(): print("DB: inserting default groups:") for g in app.config.get("GROUPS", []): print(g['name']) g_permissions = g.pop('permissions', []) g['permissions'] = Permission.get_by_names(g_permissions) db.session.add(Group(**g)) db.session.commit() @manager.command def recreate_db(): """Drops the db tables.""" db.drop_all() """Creates the db tables.""" db.create_all() insert_initial_groups() @manager.command def create_db(): """Creates the db tables.""" db.create_all() insert_initial_groups() @manager.command def drop_db(): """Drops the db tables.""" db.drop_all() if __name__ == '__main__': manager.run()