async def test_authenticate_user_wrong_password(fake_db): hashed_password = security.crypt.hash("testing312") user = user_factories.UserInDbFactory(hashed_password=hashed_password) await users_db.create_user_db(user, fake_db) assert ( await security.authenticate_user(user.username, "password", fake_db,) is False )
async def test_create_user_db(fake_db): fake_user = user_factories.UserInDbFactory() await users_db.create_user_db(fake_user, fake_db) created_user = await get_collection(users_db.COLLECTION_NAME, fake_db).find_one(fake_user.dict()) del created_user["_id"] assert created_user == fake_user.dict()
async def test_get_user_db(fake_db, field): fake_user = user_factories.UserInDbFactory() await get_collection(users_db.COLLECTION_NAME, fake_db).insert_one(fake_user.dict()) user = await users_db.get_user_db(getattr(fake_user, field), fake_db) del user["_id"] assert user == fake_user.dict()
async def test_authenticate_user_user_not_active(fake_db): test_password = "******" hashed_password = security.crypt.hash(test_password) user = user_factories.UserInDbFactory(hashed_password=hashed_password, active=False) await users_db.create_user_db(user, fake_db) assert ( await security.authenticate_user(user.username, test_password, fake_db) is False )
async def test_get_current_active_user_expired_token(fake_db): username = "******" user = user_factories.UserInDbFactory(username=username) await users_db.create_user_db(user, fake_db) token = jwt.encode( {"sub": username, "exp": datetime.now(timezone.utc) - timedelta(days=3)}, settings.SECRET_KEY, ) with pytest.raises(HTTPException): await security.get_current_user(token=token, db=fake_db)
async def test_get_current_user_valid_user(fake_db): username = "******" user = user_factories.UserInDbFactory(username=username) await users_db.create_user_db(user, fake_db) token = security.create_user_access_token(username) assert await security.get_current_user(token=token, db=fake_db) == user