Example #1
0
    def test_load_fixture(self):
        create_table(Base)
        fixtures = load_fixture_files(self.path, ['accounts.yaml'])
        load_fixtures(session, fixtures)
        accounts = session.query(Account).all()
        self.assertEqual(len(accounts), 2)

        drop_table(Base, session)
Example #2
0
def loaddata(filename=''):
    """Load seed data."""
    if filename == '':
        return
    path = os.path.join(app.root_path, 'fixtures')

    fixtures = load_fixture_files(path, [filename])
    load_fixtures(session, fixtures)
Example #3
0
def seed_data(filename=None):
    print("@@@start import data@@@")
    print(filename)
    path = os.path.join(application.root_path, 'fixtures')
    print('path: ', path)
    files = [os.path.split(f)[1] for f in glob.glob("./src/fixtures/*")]
    print('files: ', files)
    if filename is not None:
        files = [filename + '.yaml']
    fixtures = load_fixture_files(path, files)
    print(fixtures)
    load_fixtures(db.session, fixtures)
    print("@@@finish import data@@@")
    def test_load_json_fixtures(self):
        create_table(Base)
        fixtures = load_fixture_files(
            self.path,
            ['accounts.json', 'pictures.json'],
        )
        load_fixtures(session, fixtures)
        accounts = session.query(Account).all()
        self.assertEqual(len(accounts), 2)
        pictures = session.query(Picture).all()
        self.assertEqual(len(pictures), 4)

        drop_table(Base, session)
Example #5
0
    def test_load_fixture_by_wrong_order(self):
        # Picture has relationship to Account.
        # Model instances are added by `session.add_all()`.
        # So, it does not fail.
        create_table(Base)
        fixtures = load_fixture_files(
            self.path,
            ['pictures.yaml', 'accounts.yaml'],
        )
        load_fixtures(session, fixtures)
        accounts = session.query(Account).all()
        self.assertEqual(len(accounts), 2)
        pictures = session.query(Picture).all()
        self.assertEqual(len(pictures), 4)

        drop_table(Base, session)
Example #6
0
def main():
    script_dir = Path(__file__).absolute().parent.resolve(strict=True)
    data_dir = (script_dir / ".." / "Dummy DB Data").resolve(strict=True)
    print(f"Searching for seed data in directory '{data_dir}' ...")

    klap4.db.connect(script_dir / ".." / "test.db", reset=True)
    yaml_files = natsorted([path.name for path in data_dir.glob('*.yaml')])

    for yaml_file in yaml_files:
        print(f"Loading file: {yaml_file}")
        try:
            fixtures = load_fixture_files(data_dir, [yaml_file])
            load_fixtures(klap4.db.Session, fixtures)
        except Exception as e:
            raise RuntimeError(
                f"Error importing database data from file: {data_dir/yaml_file}"
            ) from e

    # Open the .sql file
    THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
    sql_load = os.path.join(THIS_FOLDER, 'program_slots.sql')
    sql_file = open(sql_load, 'r')

    # Create an empty command string
    sql_command = ''

    session = klap4.db.Session()

    # Iterate over all lines in the sql file
    for line in sql_file:
        # Ignore commented lines
        if not line.startswith('--') and line.strip('\n'):
            # Append line to the command string
            sql_command += line.strip('\n')

            # If the command string ends with ';', it is a full statement
            if sql_command.endswith(';'):
                # Try to execute statement and commit it
                try:
                    session.execute(str(sql_command))
                    session.commit()

                # Finally, clear command string
                finally:
                    sql_command = ''

    print("Done seeding data.")
Example #7
0
def main():
    path = './'
    fixtures = load_fixture_files(path, ['AuthorsData.yaml', 'BookData.yaml'])
    load_fixtures(session, fixtures)