def install(welcome, force, username, email, password, group): """Installs flaskbb. If no arguments are used, an interactive setup will be run. """ click.secho("[+] Installing FlaskBB...", fg="cyan") if database_exists(db.engine.url): if force or click.confirm(click.style( "Existing database found. Do you want to delete the old one and " "create a new one?", fg="magenta") ): drop_database(db.engine.url) else: sys.exit(0) create_database(db.engine.url) upgrade_database() click.secho("[+] Creating default settings...", fg="cyan") create_default_groups() create_default_settings() click.secho("[+] Creating admin user...", fg="cyan") prompt_save_user(username, email, password, group) if welcome: click.secho("[+] Creating welcome forum...", fg="cyan") create_welcome_forum() click.secho("[+] Compiling translations...", fg="cyan") compile_translations() click.secho("[+] FlaskBB has been successfully installed!", fg="green", bold=True)
def populate(bulk_data, test_data, posts, topics, force, initdb): """Creates the necessary tables and groups for FlaskBB.""" if force: click.secho("[+] Recreating database...", fg="cyan") drop_database(db.engine.url) # do not initialize the db if -i is passed if not initdb: upgrade_database() if initdb: click.secho("[+] Initializing database...", fg="cyan") upgrade_database() if test_data: click.secho("[+] Adding some test data...", fg="cyan") create_test_data() if bulk_data: timer = time.time() topic_count, post_count = insert_bulk_data(int(topics), int(posts)) elapsed = time.time() - timer click.secho("[+] It took {} seconds to create {} topics and {} posts" .format(elapsed, topic_count, post_count), fg="cyan") # this just makes the most sense for the command name; use -i to # init the db as well if not test_data: click.secho("[+] Populating the database with some defaults...", fg="cyan") create_default_groups() create_default_settings()
def test(): """Run the unit tests.""" import sys import unittest prepare_app(environment='test') upgrade_database() tests = unittest.TestLoader().discover('.', pattern="*_tests.py") test_result = unittest.TextTestRunner(verbosity=2).run(tests) if not test_result.wasSuccessful(): sys.exit(1)
def upgrade(all_latest, fixture, force): """Updates the migrations and fixtures.""" if all_latest: click.secho("[+] Upgrading migrations to the latest version...", fg="cyan") upgrade_database() if fixture or all_latest: try: settings = import_string("flaskbb.fixtures.{}".format(fixture)) settings = settings.fixture except ImportError: raise FlaskBBCLIError( "{} fixture is not available".format(fixture), fg="red") click.secho("[+] Updating fixtures...") count = update_settings_from_fixture(fixture=settings, overwrite_group=force, overwrite_setting=force) click.secho("[+] {} groups and {} settings updated.".format( len(count.keys()), len(count.values()), fg="green"))
def upgrade(all_latest, fixture, force): """Updates the migrations and fixtures.""" if all_latest: click.secho("[+] Upgrading migrations to the latest version...", fg="cyan") upgrade_database() if fixture or all_latest: try: settings = import_string( "flaskbb.fixtures.{}".format(fixture) ) settings = settings.fixture except ImportError: raise FlaskBBCLIError("{} fixture is not available" .format(fixture), fg="red") click.secho("[+] Updating fixtures...", fg="cyan") count = update_settings_from_fixture( fixture=settings, overwrite_group=force, overwrite_setting=force ) click.secho("[+] {} groups and {} settings updated.".format( len(count.keys()), len(count.values())), fg="green" )