Skip to content

Commit 422ba4c

Browse files
authored
infra: handle flaky tests (#30501)
1 parent 9a80be7 commit 422ba4c

File tree

6 files changed

+40
-3
lines changed

6 files changed

+40
-3
lines changed

libs/partners/anthropic/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ test = [
3030
"pytest-watcher<1.0.0,>=0.3.4",
3131
"pytest-asyncio<1.0.0,>=0.21.1",
3232
"defusedxml<1.0.0,>=0.7.1",
33+
"pytest-retry<1.8.0,>=1.7.0",
3334
"pytest-timeout<3.0.0,>=2.3.1",
3435
"pytest-socket<1.0.0,>=0.7.0",
3536
"langchain-core",

libs/partners/anthropic/tests/integration_tests/test_chat_models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,7 @@ def test_thinking() -> None:
730730
assert block["signature"] and isinstance(block["signature"], str)
731731

732732

733+
@pytest.mark.flaky(retries=3, delay=1)
733734
def test_redacted_thinking() -> None:
734735
llm = ChatAnthropic(
735736
model="claude-3-7-sonnet-latest",

libs/partners/anthropic/uv.lock

Lines changed: 16 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

libs/partners/openai/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ test = [
3030
"pytest-watcher<1.0.0,>=0.3.4",
3131
"pytest-asyncio<1.0.0,>=0.21.1",
3232
"pytest-cov<5.0.0,>=4.1.0",
33+
"pytest-retry<1.8.0,>=1.7.0",
3334
"pytest-socket<1.0.0,>=0.6.0",
3435
"pytest-xdist<4.0.0,>=3.6.1",
3536
"numpy<2,>=1; python_version < \"3.12\"",

libs/partners/openai/tests/integration_tests/chat_models/test_responses_api.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ def _check_response(response: Optional[BaseMessage]) -> None:
5353
assert tool_output["type"]
5454

5555

56+
@pytest.mark.flaky(retries=3, delay=1)
5657
def test_web_search() -> None:
5758
llm = ChatOpenAI(model=MODEL_NAME)
5859
first_response = llm.invoke(
@@ -108,6 +109,7 @@ def test_web_search() -> None:
108109
_check_response(response)
109110

110111

112+
@pytest.mark.flaky(retries=3, delay=1)
111113
async def test_web_search_async() -> None:
112114
llm = ChatOpenAI(model=MODEL_NAME)
113115
response = await llm.ainvoke(
@@ -129,6 +131,7 @@ async def test_web_search_async() -> None:
129131
_check_response(full)
130132

131133

134+
@pytest.mark.flaky(retries=3, delay=1)
132135
def test_function_calling() -> None:
133136
def multiply(x: int, y: int) -> int:
134137
"""return x * y"""
@@ -197,6 +200,7 @@ async def test_parsed_pydantic_schema_async() -> None:
197200
assert parsed.response
198201

199202

203+
@pytest.mark.flaky(retries=3, delay=1)
200204
@pytest.mark.parametrize("schema", [Foo.model_json_schema(), FooDict])
201205
def test_parsed_dict_schema(schema: Any) -> None:
202206
llm = ChatOpenAI(model=MODEL_NAME, use_responses_api=True)
@@ -241,6 +245,7 @@ class InvalidJoke(TypedDict):
241245
)
242246

243247

248+
@pytest.mark.flaky(retries=3, delay=1)
244249
@pytest.mark.parametrize("schema", [Foo.model_json_schema(), FooDict])
245250
async def test_parsed_dict_schema_async(schema: Any) -> None:
246251
llm = ChatOpenAI(model=MODEL_NAME, use_responses_api=True)
@@ -313,6 +318,7 @@ def test_route_from_model_kwargs() -> None:
313318
_ = next(llm.stream("Hello"))
314319

315320

321+
@pytest.mark.flaky(retries=3, delay=1)
316322
def test_computer_calls() -> None:
317323
llm = ChatOpenAI(model="computer-use-preview", model_kwargs={"truncation": "auto"})
318324
tool = {

libs/partners/openai/uv.lock

Lines changed: 15 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)