Esempio n. 1
0
def create_app(config_class="config.Config"):
    from flask import Flask
    app = Flask(__name__)
    app.config.from_object(config_class)
    jwt_utils.bind_jwt_messages(app)
    api = Api(app)

    api.add_resource(User, "/user/<string:username>")
    api.add_resource(UserCreate, "/user")
    api.add_resource(UserList, "/users")
    api.add_resource(UserLogin, "/login")
    api.add_resource(UserLogout, "/logout")
    api.add_resource(UserChangePassword, "/change_password")
    api.add_resource(MaintenanceActivity, "/activity/<int:id>")
    api.add_resource(MaintenanceActivityCreate, "/activity")
    api.add_resource(MaintenanceActivityList, "/activities")
    api.add_resource(MaintainerWeeklyAvailabilityList,
                     "/maintainer/<int:activity_id>/availabilities")
    api.add_resource(MaintainerDailyAvailability,
                     "/maintainer/<string:username>/availability")
    api.add_resource(MaintenanceActivityAssign, "/activity/<int:id>/assign")

    from db import db
    db.init_app(app)
    seeder = FlaskSeeder()
    seeder.init_app(app, db)
    return app
Esempio n. 2
0
    def setUp(self):
        self.db_mock = MagicMock()

        self.app = Flask("test")
        self.cli = self.app.test_cli_runner()
        self.seeder = FlaskSeeder()
        self.seeder.init_app(self.app, db=self.db_mock)
Esempio n. 3
0
def initialize_db(app):
    app.app_context().push()
    db.init_app(app)
    db.create_all()

    seeder = FlaskSeeder()
    seeder.init_app(app, db)
Esempio n. 4
0
def init_app():
    """Construct the core application."""
    app = Flask(__name__)

    db.init_app(app)

    seeder = FlaskSeeder()
    seeder.init_app(app, db)

    return app
Esempio n. 5
0
def create_app():
    app = Flask(__name__)

    db = SQLAlchemy()
    db.init_app(app)

    seeder = FlaskSeeder()
    seeder.init_app(app, db)

    return app
Esempio n. 6
0
    def test_init_app_without_db(self):
        """ FlaskSeeder should use db object when passed via constructor.
        """
        db = MagicMock()
        app = MagicMock()
        ext = {}
        app.extensions.__setitem__.side_effect = ext.__setitem__
        seeder = FlaskSeeder(db=db)

        seeder.init_app(app)

        self.assertEqual(ext["flask_seeder"].db, db)
Esempio n. 7
0
def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(config_class)

    db.init_app(app)
    migrate.init_app(app, db)
    login.init_app(app)
    mail.init_app(app)
    bootstrap.init_app(app)
    moment.init_app(app)
    babel.init_app(app)
    seeder = FlaskSeeder()
    seeder.init_app(app, db)


    from app.errors import bp as errors_bp
    app.register_blueprint(errors_bp)

    from app.auth import bp as auth_bp
    app.register_blueprint(auth_bp, url_prefix='/auth')

    from app.main import bp as main_bp
    app.register_blueprint(main_bp)


    if not app.debug and not app.testing:
        if app.config['MAIL_SERVER']:
            auth = None
            if app.config['MAIL_USERNAME'] or app.config['MAIL_PASSWORD']:
                auth = (app.config['MAIL_USERNAME'], app.config['MAIL_PASSWORD'])
            secure = None
            if app.config['MAIL_USE_TLS']:
                secure = ()
            mail_handler = SMTPHandler(
                mailhost=(app.config['MAIL_SERVER'], app.config['MAIL_PORT']),
                fromaddr='no-reply@' + app.config['MAIL_SERVER'],
                toaddrs=app.config['ADMINS'], subject='Microblog Failure',
                credentials=auth, secure=secure)
            mail_handler.setLevel(logging.ERROR)
            app.logger.addHandler(mail_handler)
        if not os.path.exists('logs'):
            os.mkdir('logs')
        file_handler = RotatingFileHandler(
            'logs/microblog.log', maxBytes=10240, backupCount=20)
        file_handler.setFormatter(logging.Formatter(
            '%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d'))
        file_handler.setLevel(logging.INFO)
        app.logger.addHandler(file_handler)

        app.logger.setLevel(logging.INFO)
        app.logger.info('Microblog startup')
    
    return app 
Esempio n. 8
0
def create_app():
    """Construct the core application."""
    app = Flask(__name__, instance_relative_config=False)
    app.config.from_object('config.Config')
    db.init_app(app)
    ma.init_app(app)

    # Seed random data into tables.
    seeder = FlaskSeeder()
    seeder.init_app(app, db)

    with app.app_context():
        # Imports
        from application.routes import errors, missions

        # Reset tables.
        db.drop_all()
        db.create_all()

        return app
Esempio n. 9
0
def create_app(env=None):
    from .db import db
    from .ext import ma, migrate
    from .config import config_by_name
    from app.routes import register_routes

    app = Flask(__name__)
    app.config.from_object(config_by_name[env or "dev"])

    api = Api(app, title="Credit Collection API", version="0.1.0")

    register_routes(api, app)

    db.init_app(app)

    ma.init_app(app)
    migrate.init_app(app, db)

    seeder = FlaskSeeder()
    seeder.init_app(app, db)
    CORS(app)

    return app
Esempio n. 10
0
def development(app):
    from flask_seeder import FlaskSeeder

    FlaskSeeder(app, db)
Esempio n. 11
0
application = Flask(__name__, template_folder=template_dir)
application.secret_key = os.environ.get('SECRET_KEY')

# Initiate database connection
connection_string = os.environ.get('DB_CONNECTION') + '://' + os.environ.get(
    'DB_USERNAME') + '@' + os.environ.get(
        'DB_PASSWORD') + '/' + os.environ.get('DATABASE_NAME')
application.config['SQLALCHEMY_DATABASE_URI'] = connection_string
application.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
application.config['SQLALCHEMY_ECHO'] = bool(os.environ.get('SQL_LOG'))

# register routes from urls
application.register_blueprint(routes)

csrf = CSRFProtect()
seeder = FlaskSeeder()

db.init_app(application)
seeder.init_app(application, db)

if __name__ == '__main__':

    if os.environ.get('FLASK_ENV') == 'development':
        application.debug = True
    if os.environ.get('RECREATE_TABLES') == 'True':
        recreateTables(application, db)
    if os.environ.get('RECREATE_SEEDS') == 'True':
        seedData(application, db)

    application.run()
Esempio n. 12
0
from flask_migrate import Migrate
from flask_seeder import FlaskSeeder
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()
migrate = Migrate(compare_type=True)
flask_seeder = FlaskSeeder()

from limbook_api.db.base_model import BaseDbModel  # noqa: E402


def setup_db(app):
    """ Binds a flask application and a SQLAlchemy service"""
    db.app = app
    db.init_app(app)

    # setup migration
    migrate.init_app(app, db)

    # setup flask seed
    flask_seeder.init_app(app, db)


def db_drop_and_create_all():
    """Drops the database tables and start fresh"""
    db.drop_all()
    db.create_all()
Esempio n. 13
0
#Memanggil library Flask
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_seeder import FlaskSeeder

#Inisialisasi JWT
from flask_jwt_extended import JWTManager

#Untuk menjelaskan nama modul yang digunakan, sehingga ketika folder lain memanggil folder app akan otomatis teridentifikasi.
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
jwt = JWTManager(app)

seeder = FlaskSeeder()
seeder.init_app(app, db)

#Memanggil file routes
from app.model import todo, user
from app import routes
Esempio n. 14
0
class TestSeedCLI(TestCase):
    def setUp(self):
        self.db_mock = MagicMock()

        self.app = Flask("test")
        self.cli = self.app.test_cli_runner()
        self.seeder = FlaskSeeder()
        self.seeder.init_app(self.app, db=self.db_mock)

    @patch("flask_seeder.cli.os.walk", return_value=MOCK_FILES)
    def test_get_seed_scripts_return_list_of_modules(self, mocked):
        expected_result = [
            os.path.join("data", "sub1", "file1.py"),
            os.path.join("data", "sub1", "file2.py"),
            os.path.join("data", "sub2", "file3.py"),
            os.path.join("data", "sub2", "file4.py"),
        ]

        modules = cli.get_seed_scripts()

        self.assertListEqual(modules, expected_result)

    @patch("flask_seeder.cli.get_seeders")
    def test_seeder_calls_run_method_on_loaded_modules(self, m_get_seeders):
        m_seeder = MagicMock()
        m_get_seeders.return_value = [m_seeder]

        self.cli.invoke(cli.seed_run)

        m_seeder.run.assert_called_once()

    @patch("flask_seeder.cli.get_seed_scripts", return_value=["test"])
    @patch("flask_seeder.cli.get_seeders_from_script")
    def test_get_seeders_return_ordered_iterable_of_seeders(
            self, m_get_seeders, m_get_scripts):
        class TestSeeder:
            def __init__(self, priority=None):
                if priority:
                    self.priority = priority

        class QQTestSeeder:
            def __init__(self, priority=None):
                if priority:
                    self.priority = priority

        unordered_seeder_list = [
            TestSeeder(10),
            QQTestSeeder(),
            TestSeeder(),
            QQTestSeeder(1)
        ]
        m_get_seeders.return_value = unordered_seeder_list
        expected_result = [
            unordered_seeder_list[3], unordered_seeder_list[0],
            unordered_seeder_list[1], unordered_seeder_list[2]
        ]

        result = list(cli.get_seeders())

        self.assertListEqual(result, expected_result)

    @patch("flask_seeder.cli.get_seeders")
    def test_seed_list_print_list_of_seeders(self, m_get_seeders):
        m_seeder = MagicMock()
        m_seeder.name = "testseeder"
        m_get_seeders.return_value = [m_seeder]

        result = self.cli.invoke(cli.seed_list)

        self.assertTrue("testseeder" in result.output)

    @patch("flask_seeder.cli.get_seeders")
    def test_seed_run_echo_failed_runs(self, m_get_seeders):
        class TestSeeder(Seeder):
            def run(self):
                raise ValueError()

        m_get_seeders.return_value = [TestSeeder()]

        result = self.cli.invoke(cli.seed_run)

        self.assertTrue("ERROR" in result.output)

    @patch("flask_seeder.cli.get_seeders")
    def test_root_option_with_list(self, m_get_seeders):

        self.cli.invoke(cli.seed_list, args=["--root", "sub1"])

        m_get_seeders.assert_called_once_with(root="sub1")

    @patch("flask_seeder.cli.get_seeders")
    def test_root_option_with_run(self, m_get_seeders):

        self.cli.invoke(cli.seed_run, args=["--root", "sub1"])

        m_get_seeders.assert_called_once_with(root="sub1")

    @patch("flask_seeder.cli.get_seeders")
    def test_run_with_seeder_argument(self, m_get_seeders):
        m_seeder = MagicMock()
        m_seeder.name = "TestSeeder"
        m_get_seeders.return_value = [m_seeder]

        self.cli.invoke(cli.seed_run, args=["TestSeeder"])

        m_seeder.run.assert_called_once()

    @patch("flask_seeder.cli.get_seeders", return_value=[])
    def test_run_commit_session_by_default(self, m_get_seeders):
        self.cli.invoke(cli.seed_run)

        self.db_mock.session.commit.assert_called()

    @patch("flask_seeder.cli.get_seeders", return_value=[])
    def test_run_avoid_commit_with_no_commit_option(self, m_get_seeders):
        self.cli.invoke(cli.seed_run, args=["--no-commit"])

        self.assertFalse(self.db_mock.session.commit.called)
Esempio n. 15
0
def setup_database_seeder(_app, _db):
    seeder = FlaskSeeder()
    seeder.init_app(_app, _db)
Esempio n. 16
0
# Imports
from flask import Flask
from flask_cors import CORS
from flask_sqlalchemy import SQLAlchemy
from flask_seeder import FlaskSeeder

# Database
db = SQLAlchemy()
seeder = FlaskSeeder()

from CustomApi.models import *


def create_app():
    # instantiate the app
    app = Flask(__name__)
	#static_url_path='/static', static_folder='/static'
    app.config.from_object('CustomApi.config.BaseConfig')

    db.init_app(app)
    seeder.init_app(app, db)

    # enable CORS for unrestrected js request

    from CustomApi.main.routes import main
    from CustomApi.products.routes import api as products
    from CustomApi.users.routes import api as users
    from CustomApi.cart.routes import api as cart
    from CustomApi.login.routes import api as login
    from CustomApi.otp.routes import api as otp
    from CustomApi.signup.routes import api as signup
Esempio n. 17
0
def init_db(app):
    db.init_app(app)
    Migrate(app, db)
    seeder = FlaskSeeder()
    seeder.init_app(app, db)
Esempio n. 18
0
app.config.from_object("src.config.Config")
# cache
# cache = Cache(app, config=app.config['REDIS_CONFIG'])
cache = None
# cors
CORS(app)
# db
db = SQLAlchemy(app)
# migrate
migrate = Migrate(app, db, compare_type=True)
# ma
ma = Marshmallow()
# routes
api = Api(app)
# seeder
seeder = FlaskSeeder(app, db)

# logging
import logging.config

logging.config.dictConfig(app.config['LOGGING_CONFIG'])

# import models
from .models import *
# import routes
from .routes import *
# import services
from .services import *

# import common
from .common import (
Esempio n. 19
0
def create_app(env_name):
    """
    Create app
    """
    # app initiliazation
    app = Flask(__name__)
    # cors
    CORS(app, supports_credentials=True)
    # cors = CORS(app)
    # cors = CORS(app, resources={r"/api/*": {"origins": "http://*****:*****@app.route('/')
    def index():
        """
        example endpoint
        """
        app.logger.info('Mostrando los posts del blog')
        return 'TAT 5005'

    # @app.after_request
    # def after_request(response):
    #     # response.headers.add('Access-Control-Allow-Origin', '*')
    #     # response.headers.add('Access-Control-Allow-Headers', 'Content-Type')
    #     response.headers.add('Access-Control-Allow-Origin', 'http://localhost:8080')
    #     response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
    #     response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
    #     response.headers.add('Access-Control-Allow-Credentials', 'true')
    #     print("123123123213213333333333333333333333333333333333333")
    #     return response

    return app