mirror of
				https://github.com/fastapi/sqlmodel.git
				synced 2025-11-04 14:47:08 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			777 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			777 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import Optional
 | 
						|
 | 
						|
from sqlalchemy import create_engine, select
 | 
						|
from sqlalchemy.orm import Session
 | 
						|
from sqlmodel import Field, SQLModel
 | 
						|
 | 
						|
 | 
						|
def test_allow_instantiation_without_arguments(clear_sqlmodel):
 | 
						|
    class Item(SQLModel):
 | 
						|
        id: Optional[int] = Field(default=None, primary_key=True)
 | 
						|
        name: str
 | 
						|
        description: Optional[str] = None
 | 
						|
 | 
						|
        class Config:
 | 
						|
            table = True
 | 
						|
 | 
						|
    engine = create_engine("sqlite:///:memory:")
 | 
						|
    SQLModel.metadata.create_all(engine)
 | 
						|
    with Session(engine) as db:
 | 
						|
        item = Item()
 | 
						|
        item.name = "Rick"
 | 
						|
        db.add(item)
 | 
						|
        db.commit()
 | 
						|
        result = db.execute(select(Item)).scalars().all()
 | 
						|
    assert len(result) == 1
 | 
						|
    assert isinstance(item.id, int)
 | 
						|
    SQLModel.metadata.clear()
 |