(
self, user_manager: UserManagerMock[UserModel], user: UserModel
)
| 418 | assert user_manager.on_after_forgot_password.called is False |
| 419 | |
| 420 | async def test_user_active( |
| 421 | self, user_manager: UserManagerMock[UserModel], user: UserModel |
| 422 | ): |
| 423 | await user_manager.forgot_password(user) |
| 424 | assert user_manager.on_after_forgot_password.called is True |
| 425 | |
| 426 | actual_user = user_manager.on_after_forgot_password.call_args[0][0] |
| 427 | actual_token = user_manager.on_after_forgot_password.call_args[0][1] |
| 428 | |
| 429 | assert actual_user.id == user.id |
| 430 | decoded_token = decode_jwt( |
| 431 | actual_token, |
| 432 | user_manager.reset_password_token_secret, |
| 433 | audience=[user_manager.reset_password_token_audience], |
| 434 | ) |
| 435 | assert decoded_token["sub"] == str(user.id) |
| 436 | |
| 437 | valid_fingerprint, _ = user_manager.password_helper.verify_and_update( |
| 438 | user.hashed_password, decoded_token["password_fgpt"] |
| 439 | ) |
| 440 | assert valid_fingerprint is True |
| 441 | |
| 442 | |
| 443 | @pytest.mark.asyncio |
nothing calls this directly
no test coverage detected