mirror of
				https://github.com/fastapi-users/fastapi-users.git
				synced 2025-11-04 06:37:51 +08:00 
			
		
		
		
	Ensure columns in SQL schema are not nullable
This commit is contained in:
		@ -13,10 +13,10 @@ class SQLAlchemyBaseUserTable:
 | 
				
			|||||||
    __tablename__ = "user"
 | 
					    __tablename__ = "user"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    id = Column(String, primary_key=True)
 | 
					    id = Column(String, primary_key=True)
 | 
				
			||||||
    email = Column(String, unique=True, index=True)
 | 
					    email = Column(String, unique=True, index=True, nullable=False)
 | 
				
			||||||
    hashed_password = Column(String)
 | 
					    hashed_password = Column(String, nullable=False)
 | 
				
			||||||
    is_active = Column(Boolean, default=True)
 | 
					    is_active = Column(Boolean, default=True, nullable=False)
 | 
				
			||||||
    is_superuser = Column(Boolean, default=False)
 | 
					    is_superuser = Column(Boolean, default=False, nullable=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SQLAlchemyUserDatabase(BaseUserDatabase):
 | 
					class SQLAlchemyUserDatabase(BaseUserDatabase):
 | 
				
			||||||
 | 
				
			|||||||
@ -71,6 +71,14 @@ async def test_queries(sqlalchemy_user_db):
 | 
				
			|||||||
    with pytest.raises(sqlite3.IntegrityError):
 | 
					    with pytest.raises(sqlite3.IntegrityError):
 | 
				
			||||||
        await sqlalchemy_user_db.create(user)
 | 
					        await sqlalchemy_user_db.create(user)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Exception when inserting non-nullable fields
 | 
				
			||||||
 | 
					    with pytest.raises(sqlite3.IntegrityError):
 | 
				
			||||||
 | 
					        wrong_user = BaseUserDB(
 | 
				
			||||||
 | 
					            id="222",
 | 
				
			||||||
 | 
					            hashed_password="aaa"
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        await sqlalchemy_user_db.create(wrong_user)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Unknown user
 | 
					    # Unknown user
 | 
				
			||||||
    unknown_user = await sqlalchemy_user_db.get_by_email("galahad@camelot.bt")
 | 
					    unknown_user = await sqlalchemy_user_db.get_by_email("galahad@camelot.bt")
 | 
				
			||||||
    assert unknown_user is None
 | 
					    assert unknown_user is None
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user