Skip to content

Commit 7e8a355

Browse files
committed
Improve typings for validation functions
Replicates graphql/graphql-js@b101bf6
1 parent 43364c1 commit 7e8a355

File tree

4 files changed

+21
-18
lines changed

4 files changed

+21
-18
lines changed

graphql/validation/rules/__init__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
"""graphql.validation.rules package"""
22

3+
from typing import Type
4+
35
from ...error import GraphQLError
46
from ...language.visitor import Visitor
57
from ..validation_context import ValidationContext
68

7-
__all__ = ['ValidationRule']
9+
__all__ = ['ValidationRule', 'RuleType']
810

911

1012
class ValidationRule(Visitor):
@@ -14,3 +16,6 @@ def __init__(self, context: ValidationContext) -> None:
1416

1517
def report_error(self, error: GraphQLError):
1618
self.context.report_error(error)
19+
20+
21+
RuleType = Type[ValidationRule]

graphql/validation/specified_rules.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from typing import List, Type
1+
from typing import List
22

3-
from .rules import ValidationRule
3+
from .rules import RuleType
44

55
# Spec Section: "Executable Definitions"
66
from .rules.executable_definitions import ExecutableDefinitionsRule
@@ -90,7 +90,7 @@
9090
# The order of the rules in this list has been adjusted to lead to the
9191
# most clear output when encountering multiple validation errors.
9292

93-
specified_rules: List[Type[ValidationRule]] = [
93+
specified_rules: List[RuleType] = [
9494
ExecutableDefinitionsRule,
9595
UniqueOperationNamesRule,
9696
LoneAnonymousOperationRule,

graphql/validation/validate.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
1-
from typing import List, Sequence, Type
1+
from typing import List, Sequence
22

33
from ..error import GraphQLError
44
from ..language import DocumentNode, ParallelVisitor, TypeInfoVisitor, visit
55
from ..type import GraphQLSchema, assert_valid_schema
66
from ..utilities import TypeInfo
7-
from .rules import ValidationRule
7+
from .rules import RuleType
88
from .specified_rules import specified_rules
99
from .validation_context import ValidationContext
1010

1111
__all__ = ['validate']
1212

13-
RuleType = Type[ValidationRule]
14-
1513

1614
def validate(schema: GraphQLSchema, document_ast: DocumentNode,
1715
rules: Sequence[RuleType]=None,

tests/validation/harness.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -232,29 +232,29 @@ def raise_type_error(message):
232232
types=[Cat, Dog, Human, Alien])
233233

234234

235-
def expect_valid(schema, rules, query_string):
236-
errors = validate(schema, parse(query_string), rules)
235+
def expect_valid(schema, rule, query_string):
236+
errors = validate(schema, parse(query_string), [rule])
237237
assert errors == [], 'Should validate'
238238

239239

240-
def expect_invalid(schema, rules, query_string, expected_errors):
241-
errors = validate(schema, parse(query_string), rules)
240+
def expect_invalid(schema, rule, query_string, expected_errors):
241+
errors = validate(schema, parse(query_string), [rule])
242242
assert errors, 'Should not validate'
243243
assert errors == expected_errors
244244
return errors
245245

246246

247247
def expect_passes_rule(rule, query_string):
248-
return expect_valid(test_schema, [rule], query_string)
248+
return expect_valid(test_schema, rule, query_string)
249249

250250

251251
def expect_fails_rule(rule, query_string, errors):
252-
return expect_invalid(test_schema, [rule], query_string, errors)
252+
return expect_invalid(test_schema, rule, query_string, errors)
253253

254254

255-
def expect_fails_rule_with_schema(schema, rule, query_string, errors):
256-
return expect_invalid(schema, [rule], query_string, errors)
255+
def expect_passes_rule_with_schema(schema, rule, query_string):
256+
return expect_valid(schema, rule, query_string)
257257

258258

259-
def expect_passes_rule_with_schema(schema, rule, query_string):
260-
return expect_valid(schema, [rule], query_string)
259+
def expect_fails_rule_with_schema(schema, rule, query_string, errors):
260+
return expect_invalid(schema, rule, query_string, errors)

0 commit comments

Comments
 (0)