Skip to content

Commit aaf2c4f

Browse files
Handle execution timeout on CLI
1 parent 5713ac7 commit aaf2c4f

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

gql/cli.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ def get_parser(with_examples: bool = False) -> ArgumentParser:
7373
parser.add_argument(
7474
"-H", "--headers", nargs="*", help="http headers in the form key:value"
7575
)
76+
parser.add_argument(
77+
"--timeout", type=int, default=None, help="Timeout in seconds for the request."
78+
)
7679
parser.add_argument("--version", action="version", version=f"v{__version__}")
7780
group = parser.add_mutually_exclusive_group()
7881
group.add_argument(
@@ -367,7 +370,9 @@ async def main(args: Namespace) -> int:
367370

368371
# Connect to the backend and provide a session
369372
async with Client(
370-
transport=transport, fetch_schema_from_transport=args.print_schema
373+
transport=transport,
374+
fetch_schema_from_transport=args.print_schema,
375+
execute_timeout=args.timeout,
371376
) as session:
372377

373378
if args.print_schema:

tests/test_cli.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ def test_cli_parser(parser):
5656
assert args.server == "https://your_server.com"
5757
assert args.headers == ["Authorization:Bearer blahblah"]
5858

59+
# Call with timeout parameter
60+
# gql-cli https://your_server.com --timeout 60
61+
args = parser.parse_args(["https://your_server.com", "--timeout", "60"])
62+
63+
assert args.server == "https://your_server.com"
64+
assert args.timeout == 60
65+
5966
# Check loglevel flags
6067
# gql-cli https://your_server.com --debug
6168
args = parser.parse_args(["https://your_server.com", "--debug"])

0 commit comments

Comments
 (0)