Beispiel #1
0
def client():
    """Yields a flask test client fixture for testing http requests.
    """

    app = create_app("testing")
    flaskapp = app.app

    test_client = flaskapp.test_client()

    ctx = flaskapp.app_context()
    ctx.push()

    db.reflect()  # Necessary for PostgreSQL
    db.engine.execute("DROP EXTENSION IF EXISTS postgis CASCADE;")
    db.drop_all()
    db.engine.execute("CREATE EXTENSION postgis;")
    db.create_all()

    yield test_client

    db.session.remove()
    db.engine.execute("DROP EXTENSION postgis CASCADE;")
    db.drop_all()

    ctx.pop()
Beispiel #2
0
def init_db():
    # Reflect all tables from database
    db.reflect()
    # Try to drop all tables
    db.drop_all()
    # Re-initiate all tables
    db.create_all()
    click.echo('Initialized the database.')
Beispiel #3
0
 def setUp(self):
     app.config['TESTING'] = True
     app.config['DEBUG'] = True
     app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
     self.app = app.test_client()
     db.reflect()
     db.drop_all()
     db.create_all()
Beispiel #4
0
def recreate_db():
    """
    Recreates a local database. You probably should not use this on
    production.
    """
    db.reflect()
    db.drop_all()
    db.create_all()
    db.session.commit()
Beispiel #5
0
def add_projectt():

    project = Project(description="description", user_id=1, status=ProjectStatus.active)
    db.session.add(project)
    db.session.commit()
    db.reflect()
    db.drop_all()

    return jsonify(project.serialize())
Beispiel #6
0
def db_rebuild():
    """
    Destroy and rebuild database with fake data.
    """
    # destroy and rebuild tables
    db.reflect()
    db.drop_all()
    db.create_all()

    # insert locations as defined in model
    Location.insert_locations()

    # insert roles as defined in model
    Role.insert_roles()

    # insert geos and usertypes as defined in model
    Geo.insert_geos()
    UserType.insert_user_types()

    # insert education data
    Education.create_education()

    # insert fake admin/test users
    from random import seed
    import forgery_py
    seed()
    test_user_1 = User(email='*****@*****.**',
                       username='******',
                       password='******',
                       app_name='password'.encode('base64'),
                       confirmed=True,
                       name='David Kimaru',
                       location='KE',
                       about_me=forgery_py.lorem_ipsum.sentence(),
                       member_since=forgery_py.date.date(True))
    admin_user = User(email='*****@*****.**',
                      username='******',
                      password='******',
                      app_name='webmaster'.encode('base64'),
                      confirmed=True,
                      name='Web Master',
                      location='UG',
                      about_me=forgery_py.lorem_ipsum.sentence(),
                      member_since=forgery_py.date.date(True))
    db.session.add_all([test_user_1, admin_user])
    db.session.commit()

    # insert fake user data
    # User.generate_fake(60)

    # print results
    inspector = db.inspect(db.engine)
    print('The following tables were created.')
    print('-' * 17)
    for table in inspector.get_table_names():
        print(table)
Beispiel #7
0
def db_rebuild():
    """
    Destroy and rebuild database with fake data.
    """
    # destroy and rebuild tables
    db.reflect()
    db.drop_all()
    db.create_all()

    # insert fake test users
    test_user_1 = User(
        email='*****@*****.**',
        username='******',
        password='******',
        confirmed=True,
    )
    test_user_2 = User(
        email='*****@*****.**',
        username='******',
        password='******',
        confirmed=True,
    )
    db.session.add_all([test_user_1, test_user_2])
    db.session.commit()

    # insert fake user data
    User.generate_fake(60)

    # insert fake conferences
    FootballConference.generate_fake(20)

    # insert fake fantasy leagues
    FantasyLeague.generate_fake(20)

    # insert fake fantasy teams
    FantasyTeam.generate_fake()

    # insert fake football teams
    FootballTeam.generate_fake(80)

    # insert fake football players
    FootballPlayer.generate_fake(3000)

    # insert fake draft orders
    DraftOrder.generate_fake(rounds=5)

    # complete draft
    # do not complete the draft when creating fake data
    # DraftPick.generate_fake()

    # print results
    inspector = db.inspect(db.engine)
    print 'The following tables were created.'
    print '-' * 35
    for table in inspector.get_table_names():
        print table
Beispiel #8
0
def seed_stores(member_store, post_store):
    db.reflect()
    db.drop_all()
    db.create_all()

    for member in dummy_members:
        member_store.add(member)

    for post in dummy_posts:
        post_store.add(post)
    def tearDown(self):
        """
        Tear down the environment after each executed test.

        :return: Nothing.
        """
        # Remove the session and drop de DB
        db.session.remove()
        db.reflect()
        db.drop_all()

        # Delete the SQLite file
        os.remove(db.session.bind.url.database)
    def tearDown(self):
        """
        Remove the registries and delete the DB at the end of each test.

        :return: Nothing.
        """
        # Remove the session and drop de DB
        db.session.remove()
        db.reflect()
        db.drop_all()

        # Delete the SQLite file
        os.remove(db.session.bind.url.database)
Beispiel #11
0
def db(request, app):
    """Create test database tables"""
    _db.reflect()
    _db.drop_all()
    # Create the tables based on the current model
    _db.create_all()
    MembershipRole._MembershipRole__insert_defaults()
    Country._Country__insert_defaults()
    # user = User.create_test_user()
    testfixture.testdata.addyaml()
    user = User.query.filter_by(name="certmaster").first()
    TestClient.test_user = user
    TestClient._api_user = user
    TestClient.test_user.organization_id = Organization.query.filter_by(abbreviation='cert').first().id
    app.test_client_class = TestClient
    app.response_class = TestResponse
    _db.session.commit()
Beispiel #12
0
def db_rebuild():
    """
    Destroy and rebuild database with fake data.
    """
    # destroy and rebuild tables
    db.reflect()
    db.drop_all()
    db.create_all()

    # insert fake test users
    test_user_1 = User(email="*****@*****.**", username="******", password="******", confirmed=True)
    test_user_2 = User(email="*****@*****.**", username="******", password="******", confirmed=True)
    db.session.add_all([test_user_1, test_user_2])
    db.session.commit()

    # insert fake user data
    User.generate_fake(60)

    # insert fake conferences
    FootballConference.generate_fake(20)

    # insert fake fantasy leagues
    FantasyLeague.generate_fake(20)

    # insert fake fantasy teams
    FantasyTeam.generate_fake()

    # insert fake football teams
    FootballTeam.generate_fake(80)

    # insert fake football players
    FootballPlayer.generate_fake(3000)

    # insert fake draft orders
    DraftOrder.generate_fake(rounds=5)

    # complete draft
    # do not complete the draft when creating fake data
    # DraftPick.generate_fake()

    # print results
    inspector = db.inspect(db.engine)
    print "The following tables were created."
    print "-" * 35
    for table in inspector.get_table_names():
        print table
Beispiel #13
0
    def setUp(self):
        app.config['TESTING'] = True
        app.config['DEBUG'] = True
        app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
        self.app = app.test_client()
        db.reflect()
        db.drop_all()
        db.create_all()

        # Add dummy metadata
        self.user_category = UserCategory('Postdoc')
        db.session.add(self.user_category)
        self.country = Country('South Africa')
        db.session.add(self.country)

        # Add a dummy organisation
        self.add_organisation(domain='org')
        db.session.flush()
Beispiel #14
0
def client():
    """Yields a flask test client fixture for testing http requests.
    """

    app = create_app("testing")
    flaskapp = app.app

    test_client = flaskapp.test_client()

    ctx = flaskapp.app_context()
    ctx.push()

    db.reflect()  # Necessary for PostgreSQL
    db.drop_all()
    db.create_all()

    yield test_client

    db.session.remove()
    db.drop_all()

    ctx.pop()
__author__ = 'jonathan'

from app import db
from app.models import User

db.reflect()
db.drop_all()
db.create_all()
Beispiel #16
0
 def tearDown(self):
     db.session.remove()
     db.reflect()
     db.drop_all()
Beispiel #17
0
def drop_db():
    db.session.commit()
    db.reflect()
    db.drop_all()
Beispiel #18
0
def drop_db():
    db.reflect()
    db.drop_all()
    click.echo('The database was droped!')
Beispiel #19
0
 def tearDown(self):
     with self.app.app_context():
         db.session.remove()
         db.reflect()
         db.drop_all()
Beispiel #20
0
def init_db():
    """Create Database Tables"""
    db.reflect()
    db.drop_all()  # drop all tables for preventing polluting new data
    db.create_all()
    click.echo('Successfully Create All DB Tables!')
Beispiel #21
0
    def db_import():
        """Initialize the database."""
        click.echo('Database initialization')
        MOCK_DB = None
        with open('fixtures/mock.json', 'r') as mock:
            MOCK_DB = json.load(mock)

        click.echo('Resetting db...')
        db.reflect()
        db.drop_all()
        db.create_all()

        click.echo('Adding items...')
        local_items = []
        for item in MOCK_DB['items']:
            item_row = Item(item)
            db.session.add(item_row)
            local_items += [item_row]

        local_skills = []
        for skill in MOCK_DB['skills']:
            skill_row = Skill(skill)
            db.session.add(skill_row)
            local_skills += [skill_row]

        local_videos = []
        for video in MOCK_DB['videos']:
            video_row = Video(video)
            db.session.add(video_row)
            local_videos += [video_row]

        local_reddits = []
        for reddit in MOCK_DB['reddits']:
            reddit_row = Reddit(reddit)
            db.session.add(reddit_row)
            local_reddits += [reddit_row]

        for json_item in MOCK_DB['items']:
            db_item = local_items[json_item['id'] - 1]
            for skill_id in json_item['skills']:
                db_item.skills.append(local_skills[skill_id - 1])
            for reddit_id in json_item['reddits']:
                db_item.reddits.append(local_reddits[reddit_id - 1])
            for video_id in json_item['videos']:
                db_item.videos.append(local_videos[video_id - 1])
            db.session.add(db_item)

        for json_skill in MOCK_DB['skills']:
            db_skill = local_skills[json_skill['id'] - 1]
            for item_id in json_skill['items']:
                db_skill.items.append(local_items[item_id - 1])
            for reddit_id in json_skill['reddits']:
                db_skill.reddits.append(local_reddits[reddit_id - 1])
            for video_id in json_skill['videos']:
                db_skill.videos.append(local_videos[video_id - 1])
            db.session.add(db_skill)

        for json_video in MOCK_DB['videos']:
            db_video = local_videos[json_video['id'] - 1]
            for item_id in json_video['items']:
                db_video.items.append(local_items[item_id - 1])
            for skill_id in json_video['skills']:
                db_video.skills.append(local_skills[skill_id - 1])
            db.session.add(db_video)

        for json_reddit in MOCK_DB['reddits']:
            db_reddit = local_reddits[json_reddit['id'] - 1]
            for item_id in json_reddit['items']:
                db_reddit.items.append(local_items[item_id - 1])
            for skill_id in json_reddit['skills']:
                db_reddit.skills.append(local_skills[skill_id - 1])
            db.session.add(db_reddit)
        click.echo('Reindexing for elasticsearch...')
        db.session.commit()
        Item.reindex()
        Skill.reindex()
        Reddit.reindex()
        Video.reindex()
        click.echo('Done.')
Beispiel #22
0
def after_all(context):
    """Destroy the context bag."""
    with context.app.app_context():
        db.reflect()
        db.drop_all()
Beispiel #23
0
 def tearDown(self):
     db.session.remove()
     db.reflect()
     db.drop_all()
     self.app_context.pop()
Beispiel #24
0
def drop_db():
    from app import db

    db.reflect()
    db.drop_all()
Beispiel #25
0
def db_rebuild():
    """
    Destroy and rebuild database with fake data.
    """
    # destroy and rebuild tables
    db.reflect()
    db.drop_all()
    db.create_all()

    # insert roles as defined in model
    Role.insert_roles()

    # insert geos and usertypes as defined in model
    Geo.insert_geos()
    UserType.insert_user_types()

    # insert firm types/tiers as defined in model
    FirmType.insert_firm_types()
    FirmTier.insert_firm_tiers()

    # insert fake admin/test users
    from random import seed
    import forgery_py
    seed()
    test_user_1 = User(email='*****@*****.**',
                       username='******',
                       password='******',
                       confirmed=True,
                       name='Salim Hamed',
                       location='Seattle, WA',
                       about_me=forgery_py.lorem_ipsum.sentence(),
                       member_since=forgery_py.date.date(True))
    test_user_2 = User(email='*****@*****.**',
                       username='******',
                       password='******',
                       confirmed=True,
                       name='Bryan Davis',
                       location='Seattle, WA',
                       about_me=forgery_py.lorem_ipsum.sentence(),
                       member_since=forgery_py.date.date(True))
    test_user_3 = User(email='*****@*****.**',
                       username='******',
                       password='******',
                       confirmed=True,
                       name='Joe Smith',
                       location='San Francisco, CA',
                       about_me=forgery_py.lorem_ipsum.sentence(),
                       member_since=forgery_py.date.date(True))
    test_user_4 = User(email='*****@*****.**',
                       username='******',
                       password='******',
                       confirmed=True,
                       name='Bill Gates',
                       location='Bellevue, WA',
                       about_me=forgery_py.lorem_ipsum.sentence(),
                       member_since=forgery_py.date.date(True))
    admin_user = User(email='*****@*****.**',
                      username='******',
                      password='******',
                      confirmed=True,
                      name='Bill Gates',
                      location='Seattle, WA',
                      about_me=forgery_py.lorem_ipsum.sentence(),
                      member_since=forgery_py.date.date(True))
    db.session.add_all(
        [test_user_1, test_user_2, test_user_3, test_user_4, admin_user])
    db.session.commit()

    # insert fake user data
    User.generate_fake(60)

    # insert fake post data
    Post.generate_fake(400)

    # insert fake followers
    Follow.generate_fake(2000)

    # insert fake firms
    Firm.generate_fake(5000)

    # insert fake companies
    Company.generate_fake(10000)

    # insert fake relationships
    Relationship.generate_fake(60000)

    # print results
    inspector = db.inspect(db.engine)
    print('The following tables were created.')
    print('-' * 17)
    for table in inspector.get_table_names():
        print(table)
Beispiel #26
0
from app import app, db

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import backref
from sqlalchemy import and_

Base = declarative_base()
metadata = Base.metadata

db.reflect()


class Article(db.Model):
    __tablename__ = 'article'

    entities = db.relationship("Entity", secondary="article_entity")

    def serialize(self):
        # TODO: FIGURE OUT TOP ENTITIES EFFICIENTLY
        #top_entities = Entity.query.join(ArticleEntity, Entity.id == ArticleEntity.entity_id).add_columns(
        #    ArticleEntity.score).filter(ArticleEntity.article_id == self.id).order_by(ArticleEntity.score.desc()).limit(3).all()

        return {
            'id': self.id,
            'title': self.title,
            'description': self.description,
            'source': self.source,
            'url': self.url,
            'image_url': self.image_url,
            'date_created': self.date_created,
            'entities': [e.serialize() for e in self.entities]
Beispiel #27
0
def createdb():
    from app import db
    db.reflect()
    db.drop_all()
    db.create_all()
Beispiel #28
0
from app import app, db

with app.app_context():
    print db.reflect()
    # print db.metadata.schema
    # print db.metadata.tables
    ResDesc = db.metadata.tables['res_desc']
    # print dir(ResTyp)
    # res_select = ResTyp.select().where(ResTyp.columns.ID == 0)
    # print dir(res_select)
    # result = db.session.execute(res_select)
    # for row in result:
    #     print row

    #print dir(db.session)
    #print dir(db.metadata)
Beispiel #29
0
def db_rebuild():
    """
    Destroy and rebuild database with fake data.
    """
    # destroy and rebuild tables
    db.reflect()
    db.drop_all()
    db.create_all()

    # insert roles as defined in model
    Role.insert_roles()

    # insert geos and usertypes as defined in model
    Geo.insert_geos()
    UserType.insert_user_types()

    # insert firm types/tiers as defined in model
    FirmType.insert_firm_types()
    FirmTier.insert_firm_tiers()

    # insert fake admin/test users
    from random import seed
    import forgery_py
    seed()
    test_user_1 = User(
        email='*****@*****.**',
        username='******',
        password='******',
        confirmed=True,
        name='Salim Hamed',
        location='Seattle, WA',
        about_me=forgery_py.lorem_ipsum.sentence(),
        member_since=forgery_py.date.date(True)
    )
    test_user_2 = User(
        email='*****@*****.**',
        username='******',
        password='******',
        confirmed=True,
        name='Bryan Davis',
        location='Seattle, WA',
        about_me=forgery_py.lorem_ipsum.sentence(),
        member_since=forgery_py.date.date(True)
    )
    test_user_3 = User(
        email='*****@*****.**',
        username='******',
        password='******',
        confirmed=True,
        name='Joe Smith',
        location='San Francisco, CA',
        about_me=forgery_py.lorem_ipsum.sentence(),
        member_since=forgery_py.date.date(True)
    )
    test_user_4 = User(
        email='*****@*****.**',
        username='******',
        password='******',
        confirmed=True,
        name='Bill Gates',
        location='Bellevue, WA',
        about_me=forgery_py.lorem_ipsum.sentence(),
        member_since=forgery_py.date.date(True)
    )
    admin_user = User(
        email='*****@*****.**',
        username='******',
        password='******',
        confirmed=True,
        name='Bill Gates',
        location='Seattle, WA',
        about_me=forgery_py.lorem_ipsum.sentence(),
        member_since=forgery_py.date.date(True)
    )
    db.session.add_all([test_user_1, test_user_2, test_user_3, test_user_4,
                        admin_user])
    db.session.commit()

    # insert fake user data
    User.generate_fake(60)

    # insert fake post data
    Post.generate_fake(400)

    # insert fake followers
    Follow.generate_fake(2000)

    # insert fake firms
    Firm.generate_fake(5000)

    # insert fake companies
    Company.generate_fake(10000)

    # insert fake relationships
    Relationship.generate_fake(60000)

    # print results
    inspector = db.inspect(db.engine)
    print 'The following tables were created.'
    print '-'*17
    for table in inspector.get_table_names():
        print table
Beispiel #30
0
def reflect_db():
    db.reflect()
def db_drop():
    db.reflect()
    db.drop_all()
Beispiel #32
0
from app import db, app


"""

You can use the extra Flask-AppBuilder fields and Mixin's

AuditMixin will add automatic timestamp of created and modified by who


"""


# idea came from this: https://stackoverflow.com/a/36337815/2130789
db.reflect(app=app)


class Competitions(db.Model):
    __bind_key__ = 'teamsdb'
    __tablename__ = 'competitions'
    __table_args__ = (
        db.CheckConstraint(u'age_group in (9,10,12,14,16,18,20,21)'),
        db.CheckConstraint(u"gender in ('F','M')"),
        db.CheckConstraint(u'section >= 1 and section <= 15'),
        {'extend_existing': True, 'autoload': True,
         'autoload_with': db.get_engine(app, 'teamsdb')}
    )


class Venues(db.Model):
    __bind_key__ = 'teamsdb'
Beispiel #33
0
def erase_db():
    a = input('Do you want to eresa and dele db (y/n)?')
    if a == 'y':

        db.reflect()
        db.drop_all()
Beispiel #34
0
def drop_tables():
    """drop all tables"""
    db.reflect()
    db.drop_all()