import eventlet
eventlet.monkey_patch()
from app import create_app, db, socketio
from app.models import Corpus, User, Role, Permission, Job
from flask_migrate import Migrate
import os


app = create_app(os.getenv('FLASK_CONFIG') or 'default')
migrate = Migrate(app, db)


@app.shell_context_processor
def make_shell_context():
    return dict(db=db,
                Corpus=Corpus,
                User=User,
                Role=Role,
                Permission=Permission,
                Job=Job)


@app.cli.command()
def test():
    """Run the unit tests."""
    import unittest
    tests = unittest.TestLoader().discover('tests')
    unittest.TextTestRunner(verbosity=2).run(tests)


@app.cli.command('insert-initial-database-entries')
def insert_initial_database_entries():
    Role.insert_roles()


if __name__ == '__main__':
    socketio.run(app, host='0.0.0.0')