async def test_queries(sqlalchemy_user_db: SQLAlchemyUserDatabase[UserDB]): user = UserDB( email="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) # Create user_db = await sqlalchemy_user_db.create(user) assert user_db.id is not None assert user_db.is_active is True assert user_db.is_superuser is False assert user_db.email == user.email # Update user_db.is_superuser = True await sqlalchemy_user_db.update(user_db) # Get by id id_user = await sqlalchemy_user_db.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.is_superuser is True # Get by email email_user = await sqlalchemy_user_db.get_by_email(str(user.email)) assert email_user is not None assert email_user.id == user_db.id # Exception when inserting existing email with pytest.raises(sqlite3.IntegrityError): await sqlalchemy_user_db.create(user) # Exception when inserting non-nullable fields with pytest.raises(sqlite3.IntegrityError): wrong_user = UserDB(hashed_password="******") await sqlalchemy_user_db.create(wrong_user) # Unknown user unknown_user = await sqlalchemy_user_db.get_by_email("*****@*****.**") assert unknown_user is None # Delete user await sqlalchemy_user_db.delete(user) deleted_user = await sqlalchemy_user_db.get(user.id) assert deleted_user is None # Exception when creating/updating a OAuth user user_oauth = UserDBOAuth( email="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) with pytest.raises(NotSetOAuthAccountTableError): await sqlalchemy_user_db.create(user_oauth) with pytest.raises(NotSetOAuthAccountTableError): await sqlalchemy_user_db.update(user_oauth) # Exception when trying to get by OAuth account with pytest.raises(NotSetOAuthAccountTableError): await sqlalchemy_user_db.get_by_oauth_account("foo", "bar")
async def test_queries(ormar_user_db: OrmarUserDatabase[UserDB]): user = UserDB( email="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) # Create user_db = await ormar_user_db.create(user) assert user_db.id is not None assert user_db.is_active is True assert user_db.is_superuser is False assert user_db.email == user.email # Update user_db.is_superuser = True await ormar_user_db.update(user_db) # Exception when updating a user with a not existing id id_backup = user_db.id user_db.id = uuid.uuid4() with pytest.raises(NoMatch): await ormar_user_db.update(user_db) user_db.id = id_backup # Get by id id_user = await ormar_user_db.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.is_superuser is True # Get by email email_user = await ormar_user_db.get_by_email(str(user.email)) assert email_user is not None assert email_user.id == user_db.id # Get by uppercased email email_user = await ormar_user_db.get_by_email("*****@*****.**") assert email_user is not None assert email_user.id == user_db.id # Exception when inserting existing email with pytest.raises(IntegrityError): await ormar_user_db.create(user) # Exception when inserting non-nullable fields with pytest.raises(ValueError): wrong_user = UserDB(hashed_password="******") await ormar_user_db.create(wrong_user) # Unknown user unknown_user = await ormar_user_db.get_by_email("*****@*****.**") assert unknown_user is None # Delete user await ormar_user_db.delete(user) deleted_user = await ormar_user_db.get(user.id) assert deleted_user is None
async def test_queries(tortoise_user_db: TortoiseUserDatabase[UserDB]): user = UserDB( id="111", email="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) # Create user_db = await tortoise_user_db.create(user) assert user_db.id is not None assert user_db.is_active is True assert user_db.is_superuser is False assert user_db.email == user.email # Update user_db.is_superuser = True await tortoise_user_db.update(user_db) # Get by id id_user = await tortoise_user_db.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.is_superuser is True # Get by email email_user = await tortoise_user_db.get_by_email(str(user.email)) assert email_user is not None assert email_user.id == user_db.id # List users = await tortoise_user_db.list() assert len(users) == 1 first_user = users[0] assert first_user.id == user_db.id # Exception when inserting existing email with pytest.raises(IntegrityError): await tortoise_user_db.create(user) # Exception when inserting non-nullable fields with pytest.raises(ValueError): wrong_user = UserDB(id="222", hashed_password="******") await tortoise_user_db.create(wrong_user) # Unknown user unknown_user = await tortoise_user_db.get_by_email("*****@*****.**") assert unknown_user is None # Delete user await tortoise_user_db.delete(user) deleted_user = await tortoise_user_db.get(user.id) assert deleted_user is None
async def test_queries(tortoise_user_db: TortoiseUserDatabase[UserDB]): user = UserDB( phone="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) # Create user_db = await tortoise_user_db.create(user) assert user_db.id is not None assert user_db.is_active is True assert user_db.is_superuser is False assert user_db.phone == user.phone # Update user_db.is_superuser = True await tortoise_user_db.update(user_db) # Get by id id_user = await tortoise_user_db.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.is_superuser is True # Get by phone phone_user = await tortoise_user_db.get_by_phone(str(user.phone)) assert phone_user is not None assert phone_user.id == user_db.id # Get by uppercased phone phone_user = await tortoise_user_db.get_by_phone("*****@*****.**") assert phone_user is not None assert phone_user.id == user_db.id # Exception when inserting existing phone with pytest.raises(IntegrityError): await tortoise_user_db.create(user) # Exception when inserting non-nullable fields with pytest.raises(ValueError): wrong_user = UserDB(hashed_password="******") await tortoise_user_db.create(wrong_user) # Unknown user unknown_user = await tortoise_user_db.get_by_phone("*****@*****.**") assert unknown_user is None # Delete user await tortoise_user_db.delete(user) deleted_user = await tortoise_user_db.get(user.id) assert deleted_user is None
async def test_queries_custom_fields(ormar_user_db: OrmarUserDatabase[UserDB]): """It should output custom fields in query result.""" user = UserDB( email="*****@*****.**", hashed_password=get_password_hash("guinevere"), first_name="Lancelot", ) await ormar_user_db.create(user) id_user = await ormar_user_db.get(user.id) assert id_user is not None assert id_user.id == user.id assert id_user.first_name == user.first_name
async def test_email_query( mongodb_user_db: MongoDBUserDatabase[UserDB], email: str, query: str, found: bool ): user = UserDB(email=email, hashed_password=get_password_hash("guinevere"),) await mongodb_user_db.create(user) email_user = await mongodb_user_db.get_by_email(query) if found: assert email_user is not None assert email_user.id == user.id else: assert email_user is None
async def test_phone_query(mongodb_user_db: MongoDBUserDatabase[UserDB], phone: str, query: str, found: bool): user = UserDB( phone=phone, hashed_password=get_password_hash("guinevere"), ) await mongodb_user_db.create(user) phone_user = await mongodb_user_db.get_by_phone(query) if found: assert phone_user is not None assert phone_user.id == user.id else: assert phone_user is None
async def test_queries(mongodb_user_db: MongoDBUserDatabase[UserDB]): user = UserDB( id="111", email="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) # Create user_db = await mongodb_user_db.create(user) assert user_db.id is not None assert user_db.is_active is True assert user_db.is_superuser is False assert user_db.email == user.email # Update user_db.is_superuser = True await mongodb_user_db.update(user_db) # Get by id id_user = await mongodb_user_db.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.is_superuser is True # Get by email email_user = await mongodb_user_db.get_by_email(str(user.email)) assert email_user is not None assert email_user.id == user_db.id # List users = await mongodb_user_db.list() assert len(users) == 1 first_user = users[0] assert first_user.id == user_db.id # Exception when inserting existing email with pytest.raises(pymongo.errors.DuplicateKeyError): await mongodb_user_db.create(user) # Unknown user unknown_user = await mongodb_user_db.get_by_email("*****@*****.**") assert unknown_user is None # Delete user await mongodb_user_db.delete(user) deleted_user = await mongodb_user_db.get(user.id) assert deleted_user is None
async def test_queries(mongodb_user_db: MongoDBUserDatabase[UserDB]): user = UserDB( phone="*****@*****.**", hashed_password=get_password_hash("guinevere"), ) # Create user_db = await mongodb_user_db.create(user) assert user_db.id is not None assert user_db.is_active is True assert user_db.is_superuser is False assert user_db.phone == user.phone # Update user_db.is_superuser = True await mongodb_user_db.update(user_db) # Get by id id_user = await mongodb_user_db.get(user.id) assert id_user is not None assert id_user.id == user_db.id assert id_user.is_superuser is True # Get by phone phone_user = await mongodb_user_db.get_by_phone(str(user.phone)) assert phone_user is not None assert phone_user.id == user_db.id # Get by uppercased phone phone_user = await mongodb_user_db.get_by_phone("*****@*****.**") assert phone_user is not None assert phone_user.id == user_db.id # Exception when inserting existing phone with pytest.raises(pymongo.errors.DuplicateKeyError): await mongodb_user_db.create(user) # Unknown user unknown_user = await mongodb_user_db.get_by_phone("*****@*****.**") assert unknown_user is None # Delete user await mongodb_user_db.delete(user) deleted_user = await mongodb_user_db.get(user.id) assert deleted_user is None