Ensure columns in SQL schema are not nullable

This commit is contained in:
François Voron
2019-10-11 13:08:03 +02:00
parent 76bb7bf6a5
commit f3b7fa662a
2 changed files with 12 additions and 4 deletions

View File

@ -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):

View File

@ -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