Fix: Use .formatted instead of format_error (#1327) & Fix tests

* 👽 Use .formatted instead of format_error

*  Fix test with newer graphene

null default values (graphql-python/graphene@03277a5)
no more trailing newlines
This commit is contained in:
Nikolai Røed Kristiansen 2022-08-15 11:41:39 +02:00 committed by GitHub
parent f6ec0689c1
commit 5f1731dca3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 16 additions and 37 deletions

View File

@ -120,10 +120,7 @@ def test_array_field_filter_schema_type(Query):
"randomField": "[Boolean!]", "randomField": "[Boolean!]",
} }
filters_str = ", ".join( filters_str = ", ".join(
[ [f"{filter_field}: {gql_type}" for filter_field, gql_type in filters.items()]
f"{filter_field}: {gql_type} = null"
for filter_field, gql_type in filters.items()
]
) )
assert ( assert (
f"type Query {{\n events({filters_str}): EventTypeConnection\n}}" in schema_str f"type Query {{\n events({filters_str}): EventTypeConnection\n}}" in schema_str

View File

@ -152,9 +152,6 @@ def test_filter_enum_field_schema_type(schema):
"reporter_AChoice_In": "[TestsReporterAChoiceChoices]", "reporter_AChoice_In": "[TestsReporterAChoiceChoices]",
} }
filters_str = ", ".join( filters_str = ", ".join(
[ [f"{filter_field}: {gql_type}" for filter_field, gql_type in filters.items()]
f"{filter_field}: {gql_type} = null"
for filter_field, gql_type in filters.items()
]
) )
assert f" allArticles({filters_str}): ArticleTypeConnection\n" in schema_str assert f" allArticles({filters_str}): ArticleTypeConnection\n" in schema_str

View File

@ -1008,7 +1008,7 @@ def test_integer_field_filter_type():
assert str(schema) == dedent( assert str(schema) == dedent(
"""\ """\
type Query { type Query {
pets(offset: Int = null, before: String = null, after: String = null, first: Int = null, last: Int = null, age: Int = null): PetTypeConnection pets(offset: Int, before: String, after: String, first: Int, last: Int, age: Int): PetTypeConnection
} }
type PetTypeConnection { type PetTypeConnection {
@ -1056,8 +1056,7 @@ def test_integer_field_filter_type():
interface Node { interface Node {
\"""The ID of the object\""" \"""The ID of the object\"""
id: ID! id: ID!
} }"""
"""
) )
@ -1077,7 +1076,7 @@ def test_other_filter_types():
assert str(schema) == dedent( assert str(schema) == dedent(
"""\ """\
type Query { type Query {
pets(offset: Int = null, before: String = null, after: String = null, first: Int = null, last: Int = null, age: Int = null, age_Isnull: Boolean = null, age_Lt: Int = null): PetTypeConnection pets(offset: Int, before: String, after: String, first: Int, last: Int, age: Int, age_Isnull: Boolean, age_Lt: Int): PetTypeConnection
} }
type PetTypeConnection { type PetTypeConnection {
@ -1125,8 +1124,7 @@ def test_other_filter_types():
interface Node { interface Node {
\"""The ID of the object\""" \"""The ID of the object\"""
id: ID! id: ID!
} }"""
"""
) )

View File

@ -98,7 +98,7 @@ def test_typed_filter_schema(schema):
) )
for filter_field, gql_type in filters.items(): for filter_field, gql_type in filters.items():
assert "{}: {} = null".format(filter_field, gql_type) in all_articles_filters assert "{}: {}".format(filter_field, gql_type) in all_articles_filters
def test_typed_filters_work(schema): def test_typed_filters_work(schema):

View File

@ -53,6 +53,5 @@ def test_generate_graphql_file_on_call_graphql_schema():
"""\ """\
type Query { type Query {
hi: String hi: String
} }"""
"""
) )

View File

@ -183,7 +183,7 @@ def test_schema_representation():
pets: [Reporter!]! pets: [Reporter!]!
aChoice: TestsReporterAChoiceChoices aChoice: TestsReporterAChoiceChoices
reporterType: TestsReporterReporterTypeChoices reporterType: TestsReporterReporterTypeChoices
articles(offset: Int = null, before: String = null, after: String = null, first: Int = null, last: Int = null): ArticleConnection! articles(offset: Int, before: String, after: String, first: Int, last: Int): ArticleConnection!
} }
\"""An enumeration.\""" \"""An enumeration.\"""
@ -244,8 +244,7 @@ def test_schema_representation():
\"""The ID of the object\""" \"""The ID of the object\"""
id: ID! id: ID!
): Node ): Node
} }"""
"""
) )
assert str(schema) == expected assert str(schema) == expected
@ -525,8 +524,7 @@ class TestDjangoObjectType:
id: ID! id: ID!
kind: String! kind: String!
cuteness: Int! cuteness: Int!
} }"""
"""
) )
def test_django_objecttype_convert_choices_enum_list(self, PetModel): def test_django_objecttype_convert_choices_enum_list(self, PetModel):
@ -560,8 +558,7 @@ class TestDjangoObjectType:
\"""Dog\""" \"""Dog\"""
DOG DOG
} }"""
"""
) )
def test_django_objecttype_convert_choices_enum_empty_list(self, PetModel): def test_django_objecttype_convert_choices_enum_empty_list(self, PetModel):
@ -586,8 +583,7 @@ class TestDjangoObjectType:
id: ID! id: ID!
kind: String! kind: String!
cuteness: Int! cuteness: Int!
} }"""
"""
) )
def test_django_objecttype_convert_choices_enum_naming_collisions( def test_django_objecttype_convert_choices_enum_naming_collisions(
@ -621,8 +617,7 @@ class TestDjangoObjectType:
\"""Dog\""" \"""Dog\"""
DOG DOG
} }"""
"""
) )
def test_django_objecttype_choices_custom_enum_name( def test_django_objecttype_choices_custom_enum_name(
@ -660,8 +655,7 @@ class TestDjangoObjectType:
\"""Dog\""" \"""Dog\"""
DOG DOG
} }"""
"""
) )

View File

@ -109,12 +109,10 @@ def test_reports_validation_errors(client):
{ {
"message": "Cannot query field 'unknownOne' on type 'QueryRoot'.", "message": "Cannot query field 'unknownOne' on type 'QueryRoot'.",
"locations": [{"line": 1, "column": 9}], "locations": [{"line": 1, "column": 9}],
"path": None,
}, },
{ {
"message": "Cannot query field 'unknownTwo' on type 'QueryRoot'.", "message": "Cannot query field 'unknownTwo' on type 'QueryRoot'.",
"locations": [{"line": 1, "column": 21}], "locations": [{"line": 1, "column": 21}],
"path": None,
}, },
] ]
} }
@ -135,8 +133,6 @@ def test_errors_when_missing_operation_name(client):
"errors": [ "errors": [
{ {
"message": "Must provide operation name if query contains multiple operations.", "message": "Must provide operation name if query contains multiple operations.",
"locations": None,
"path": None,
} }
] ]
} }
@ -477,7 +473,6 @@ def test_handles_syntax_errors_caught_by_graphql(client):
{ {
"locations": [{"column": 1, "line": 1}], "locations": [{"column": 1, "line": 1}],
"message": "Syntax Error: Unexpected Name 'syntaxerror'.", "message": "Syntax Error: Unexpected Name 'syntaxerror'.",
"path": None,
} }
] ]
} }

View File

@ -11,7 +11,6 @@ from django.views.decorators.csrf import ensure_csrf_cookie
from django.views.generic import View from django.views.generic import View
from graphql import OperationType, get_operation_ast, parse, validate from graphql import OperationType, get_operation_ast, parse, validate
from graphql.error import GraphQLError from graphql.error import GraphQLError
from graphql.error import format_error as format_graphql_error
from graphql.execution import ExecutionResult from graphql.execution import ExecutionResult
from graphene import Schema from graphene import Schema
@ -387,7 +386,7 @@ class GraphQLView(View):
@staticmethod @staticmethod
def format_error(error): def format_error(error):
if isinstance(error, GraphQLError): if isinstance(error, GraphQLError):
return format_graphql_error(error) return error.formatted
return {"message": str(error)} return {"message": str(error)}