-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmanage.py
64 lines (45 loc) · 1.39 KB
/
manage.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"""
Entrypoint of the application.
Manager and Migrate are set up and the blueprint for the
application is created.
"""
import os
import unittest
from logging import getLogger
from flask import current_app
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from app import blueprint
from app.main import create_app, db
from app.main.logging_config import setup_logger
from app.main.models import users
setup_logger()
LOG = getLogger(__name__)
app = create_app(os.getenv('FLASK_ENV') or 'dev')
app.register_blueprint(blueprint)
LOG.info('blueprints registered')
manager = Manager(app)
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)
@manager.command
def run():
"""Run the flask app."""
LOG.info('initiating app...')
app.run(host=current_app.config['HOST'],
port=current_app.config['PORT'], debug=current_app.config['DEBUG'])
@manager.command
def test():
"""Run the unit tests."""
tests = unittest.TestLoader().discover('app/test', pattern='test*.py')
result = unittest.TextTestRunner(verbosity=2).run(tests)
if result.wasSuccessful():
# Return error code
return 0
return 1
@manager.command
def rollback():
"""Roll back database to a previous state in case of exception."""
db.session.rollback()
LOG.warning('Last session rolled back!')
if __name__ == '__main__':
manager.run()