This repository has been archived on 2021-09-15. You can view files and clone it, but cannot push or open issues or pull requests.
M2OLA/backend/manage.py

75 lines
1.9 KiB
Python
Raw Normal View History

2017-01-20 17:04:12 +01:00
import argparse
import os
import unittest
import warnings
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager, Command
from flask_script import prompt_bool
from backend.app.core import app, db, configure_app
warnings.simplefilter('ignore')
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("-d", "--debug", action="store_true")
group.add_argument("-t", "--test", action="store_true")
args, _ = parser.parse_known_args()
if args.debug:
configure_app(config="debug")
if args.test:
configure_app(config="test")
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_option("-d", "--debug",
action="store_true", dest="debug", required=False)
manager.add_option("-t", "--test",
action="store_true", dest="test", required=False)
# migrations : python manage.py db to show usage
manager.add_command('db', MigrateCommand)
class SeedDB(Command):
"""Seed the db """
def run(self):
if args.test:
raise Exception("Test Database is seed in test case tear up !")
#some seed method
manager.add_command('seeddb', SeedDB())
class DropDB(Command):
"""drop db """
def run(self):
if prompt_bool("Are you sure you want to lose all your data"):
os.system("python manage.py -t db downgrade base")
manager.add_command('dropdb', DropDB())
class RunTests(Command):
"""Seed the db """
def run(self):
configure_app(config="test")
os.system("python manage.py -t db downgrade base")
os.system("python manage.py -t db upgrade")
test_loader = unittest.defaultTestLoader
test_runner = unittest.TextTestRunner()
test_suite = test_loader.discover('tests')
test_runner.run(test_suite)
manager.add_command('runtests', RunTests())
if __name__ == '__main__':
manager.run()