mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-10-31 02:29:03 +00:00 
			
		
		
		
	
		
			
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | """SQLAlchemy utilities for testing purposes.""" | ||
|  | 
 | ||
|  | from typing import Sequence | ||
|  | 
 | ||
|  | from sqlalchemy import Column, Integer, String, create_engine | ||
|  | from sqlalchemy.orm import Session, declarative_base | ||
|  | from sqlalchemy.orm.decl_api import DeclarativeMeta | ||
|  | 
 | ||
|  | Base = declarative_base() | ||
|  | 
 | ||
|  | 
 | ||
|  | class User(Base): | ||
|  |     __tablename__ = "users" | ||
|  |     id = Column(Integer, primary_key=True) | ||
|  |     name = Column(String(256)) | ||
|  |     fullname = Column(String(256)) | ||
|  |     nickname = Column(String(256)) | ||
|  |     age = Column(Integer) | ||
|  | 
 | ||
|  | 
 | ||
|  | class SQATestUtils: | ||
|  |     def __init__(self, connection_url: str): | ||
|  |         self.connection_url = connection_url | ||
|  |         self.engine = create_engine(connection_url) | ||
|  |         self.session = Session(self.engine) | ||
|  | 
 | ||
|  |     def load_data(self, data: Sequence[DeclarativeMeta]): | ||
|  |         """load data into the database using sqlalchemy ORM
 | ||
|  | 
 | ||
|  |         Args: | ||
|  |             data List[DeclarativeMeta]: list of ORM objects to load | ||
|  |         """
 | ||
|  |         self.session.add_all(data) | ||
|  |         self.session.commit() | ||
|  | 
 | ||
|  |     def load_user_data(self): | ||
|  |         data = [ | ||
|  |             User(name="John", fullname="John Doe", nickname="johnny b goode", age=30),  # type: ignore | ||
|  |             User(name="Jane", fullname="Jone Doe", nickname=None, age=31),  # type: ignore | ||
|  |         ] * 20 | ||
|  |         self.load_data(data) | ||
|  | 
 | ||
|  |     def create_user_table(self): | ||
|  |         User.__table__.create(bind=self.session.get_bind()) | ||
|  | 
 | ||
|  |     def close(self): | ||
|  |         self.session.close() | ||
|  |         self.engine.dispose() |