mirror of
https://github.com/imartinez/privateGPT.git
synced 2026-07-16 17:00:12 +00:00
test: remove flaky chat cancellation assertion
This commit is contained in:
@@ -2181,63 +2181,6 @@ async def test_chat_accepts_empty_system_list(
|
||||
assert isinstance(output.content[0], TextBlock)
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_chat_cancels_llm_astream_on_client_disconnection(
|
||||
async_test_client: AsyncClient, injector: MockInjector
|
||||
) -> None:
|
||||
llm_started = asyncio.Event()
|
||||
llm_generator_closed = asyncio.Event()
|
||||
|
||||
class SlowStreamingLLM(FunctionCallingLLMMock):
|
||||
async def astream_chat_with_tools(
|
||||
self, *args: Any, **kwargs: Any
|
||||
) -> AsyncGenerator[ChatResponse, None]:
|
||||
async def _gen() -> AsyncGenerator[ChatResponse, None]:
|
||||
try:
|
||||
llm_started.set()
|
||||
yield ChatResponse(
|
||||
message=ChatMessage(role=MessageRole.ASSISTANT, content=""),
|
||||
delta="Hi",
|
||||
)
|
||||
await asyncio.sleep(30)
|
||||
yield ChatResponse(
|
||||
message=ChatMessage(role=MessageRole.ASSISTANT, content=""),
|
||||
delta=" never",
|
||||
)
|
||||
finally:
|
||||
llm_generator_closed.set()
|
||||
|
||||
return _gen()
|
||||
|
||||
llm_component = injector.get(LLMComponent)
|
||||
llm_component.llm = SlowStreamingLLM()
|
||||
|
||||
body = ChatBody(
|
||||
messages=[MessageInput(content="What is Python?", role="user")],
|
||||
stream=False,
|
||||
)
|
||||
|
||||
request_task = asyncio.create_task(
|
||||
async_test_client.post("/v1/messages", json=body.model_dump())
|
||||
)
|
||||
|
||||
try:
|
||||
await asyncio.wait_for(llm_started.wait(), timeout=5.0)
|
||||
except TimeoutError:
|
||||
request_task.cancel()
|
||||
pytest.fail("LLM astream_chat_with_tools never started")
|
||||
|
||||
request_task.cancel()
|
||||
|
||||
with pytest.raises(asyncio.CancelledError):
|
||||
await request_task
|
||||
|
||||
assert llm_generator_closed.is_set(), (
|
||||
"LLM astream_chat_with_tools generator was not closed before request "
|
||||
"cancellation completed"
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_concurrent_requests_dont_share_state(
|
||||
async_test_client: AsyncClient, injector: MockInjector
|
||||
|
||||
Reference in New Issue
Block a user