import eventlet
eventlet.monkey_patch()
from app import create_app, db, socketio
from app.models import Corpus, Job, Role, User
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 {'db': db,
            'Corpus': Corpus,
            'Job': Job,
            'User': User}


@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')
