Skip to content

Commit e58b08e

Browse files
author
xzhang2
committed
Raises KeyError when argument is invalid.
1 parent 8fc378d commit e58b08e

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

gql/dsl.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ def args(self, **kwargs):
103103
added_args = []
104104
for name, value in kwargs.items():
105105
arg = self.field.args.get(name)
106+
if not arg:
107+
raise KeyError(f"Argument {name} does not exist in {self.field}.")
106108
arg_type_serializer = get_arg_serializer(arg.type)
107109
serialized_value = arg_type_serializer(value)
108110
added_args.append(

tests/starwars/test_dsl.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,8 @@ def test_create_review_mutation_result(ds):
144144
)
145145
expected = {"createReview": {"stars": 5, "commentary": "This is a great movie!"}}
146146
assert result == expected
147+
148+
149+
def test_invalid_arg(ds):
150+
with pytest.raises(KeyError, match="Argument invalid_arg does not exist in Field: Character."):
151+
ds.query(ds.Query.hero.args(invalid_arg=5).select(ds.Character.name))

0 commit comments

Comments
 (0)