From 06c26ba60d71b6bb45120db8dac5b4f3c0c82f51 Mon Sep 17 00:00:00 2001 From: efokschaner Date: Sat, 30 Apr 2022 15:11:21 -0700 Subject: [PATCH] tests: Lazy evaluate Deadline parameter in pytest (#380) The pytest parameters are evaluated when the tests are loading. The Deadline.from_timeout is a fixed point in time. By deferring the evaluation it helps ensure that the deadline is not reached before the test is executed. --- tests/grpc/test_grpclib_client.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/grpc/test_grpclib_client.py b/tests/grpc/test_grpclib_client.py index ce570e5..c44d4c0 100644 --- a/tests/grpc/test_grpclib_client.py +++ b/tests/grpc/test_grpclib_client.py @@ -177,15 +177,16 @@ async def test_service_call_lower_level_with_overrides(): @pytest.mark.asyncio @pytest.mark.parametrize( - ("overrides",), + ("overrides_gen",), [ - (dict(timeout=10),), - (dict(deadline=grpclib.metadata.Deadline.from_timeout(10)),), - (dict(metadata={"authorization": str(uuid.uuid4())}),), - (dict(timeout=20, metadata={"authorization": str(uuid.uuid4())}),), + (lambda: dict(timeout=10),), + (lambda: dict(deadline=grpclib.metadata.Deadline.from_timeout(10)),), + (lambda: dict(metadata={"authorization": str(uuid.uuid4())}),), + (lambda: dict(timeout=20, metadata={"authorization": str(uuid.uuid4())}),), ], ) -async def test_service_call_high_level_with_overrides(mocker, overrides): +async def test_service_call_high_level_with_overrides(mocker, overrides_gen): + overrides = overrides_gen() request_spy = mocker.spy(grpclib.client.Channel, "request") name = str(uuid.uuid4()) defaults = dict(