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)
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)
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)
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)
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.")
def main(): path = './' fixtures = load_fixture_files(path, ['AuthorsData.yaml', 'BookData.yaml']) load_fixtures(session, fixtures)
def test_load_fixture_files(self): fixtures = load_fixture_files(self.path, ['accounts.yaml']) self.assertTrue(isinstance(fixtures[0], list))