diff --git a/fastapi_users/db/sqlalchemy.py b/fastapi_users/db/sqlalchemy.py index 4d376ef6..c8eabda0 100644 --- a/fastapi_users/db/sqlalchemy.py +++ b/fastapi_users/db/sqlalchemy.py @@ -13,10 +13,10 @@ class SQLAlchemyBaseUserTable: __tablename__ = "user" id = Column(String, primary_key=True) - email = Column(String, unique=True, index=True) - hashed_password = Column(String) - is_active = Column(Boolean, default=True) - is_superuser = Column(Boolean, default=False) + email = Column(String, unique=True, index=True, nullable=False) + hashed_password = Column(String, nullable=False) + is_active = Column(Boolean, default=True, nullable=False) + is_superuser = Column(Boolean, default=False, nullable=False) class SQLAlchemyUserDatabase(BaseUserDatabase): diff --git a/tests/test_db_sqlalchemy.py b/tests/test_db_sqlalchemy.py index 81f1fbbd..d6f36bf7 100644 --- a/tests/test_db_sqlalchemy.py +++ b/tests/test_db_sqlalchemy.py @@ -71,6 +71,14 @@ async def test_queries(sqlalchemy_user_db): with pytest.raises(sqlite3.IntegrityError): 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 = await sqlalchemy_user_db.get_by_email("galahad@camelot.bt") assert unknown_user is None