test_async_retrying() — langchain Function Reference
Architecture documentation for the test_async_retrying() function in test_runnable.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 0a847979_2369_aa0c_9f5c_8cc81c9d7c44["test_async_retrying()"] 26df6ad8_0189_51d0_c3c1_6c3248893ff5["test_runnable.py"] 0a847979_2369_aa0c_9f5c_8cc81c9d7c44 -->|defined in| 26df6ad8_0189_51d0_c3c1_6c3248893ff5 8652094c_ec57_c551_fc44_9566d00cf872["abatch()"] 0a847979_2369_aa0c_9f5c_8cc81c9d7c44 -->|calls| 8652094c_ec57_c551_fc44_9566d00cf872 style 0a847979_2369_aa0c_9f5c_8cc81c9d7c44 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/tests/unit_tests/runnables/test_runnable.py lines 3982–4044
async def test_async_retrying(mocker: MockerFixture) -> None:
def _lambda(x: int) -> int:
if x == 1:
msg = "x is 1"
raise ValueError(msg)
if x == 2:
msg = "x is 2"
raise RuntimeError(msg)
return x
lambda_mock = mocker.Mock(side_effect=_lambda)
runnable = RunnableLambda(lambda_mock)
with pytest.raises(ValueError, match="x is 1"):
await runnable.ainvoke(1)
assert lambda_mock.call_count == 1
lambda_mock.reset_mock()
with pytest.raises(ValueError, match="x is 1"):
await runnable.with_retry(
stop_after_attempt=2,
wait_exponential_jitter=False,
retry_if_exception_type=(ValueError, KeyError),
).ainvoke(1)
assert lambda_mock.call_count == 2 # retried
lambda_mock.reset_mock()
with pytest.raises(RuntimeError):
await runnable.with_retry(
stop_after_attempt=2,
wait_exponential_jitter=False,
retry_if_exception_type=(ValueError,),
).ainvoke(2)
assert lambda_mock.call_count == 1 # did not retry
lambda_mock.reset_mock()
with pytest.raises(ValueError, match="x is 1"):
await runnable.with_retry(
stop_after_attempt=2,
wait_exponential_jitter=False,
retry_if_exception_type=(ValueError,),
).abatch([1, 2, 0])
# 3rd input isn't retried because it succeeded
assert lambda_mock.call_count == 3 + 2
lambda_mock.reset_mock()
output = await runnable.with_retry(
stop_after_attempt=2,
wait_exponential_jitter=False,
retry_if_exception_type=(ValueError,),
).abatch([1, 2, 0], return_exceptions=True)
# 3rd input isn't retried because it succeeded
assert lambda_mock.call_count == 3 + 2
assert len(output) == 3
assert isinstance(output[0], ValueError)
assert isinstance(output[1], RuntimeError)
assert output[2] == 0
lambda_mock.reset_mock()
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does test_async_retrying() do?
test_async_retrying() is a function in the langchain codebase, defined in libs/core/tests/unit_tests/runnables/test_runnable.py.
Where is test_async_retrying() defined?
test_async_retrying() is defined in libs/core/tests/unit_tests/runnables/test_runnable.py at line 3982.
What does test_async_retrying() call?
test_async_retrying() calls 1 function(s): abatch.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free