mirror of
				https://github.com/graphql-python/graphene.git
				synced 2025-11-04 09:57:41 +03:00 
			
		
		
		
	Use argument's default_value regardless if the input field is required (#1326)
				
					
				
			* Use argument's default value regardless if the input field is required * Add a test * Format code
This commit is contained in:
		
							parent
							
								
									f622f1f53c
								
							
						
					
					
						commit
						c08379ed85
					
				| 
						 | 
					@ -26,7 +26,6 @@ from graphql import (
 | 
				
			||||||
    GraphQLObjectType,
 | 
					    GraphQLObjectType,
 | 
				
			||||||
    GraphQLSchema,
 | 
					    GraphQLSchema,
 | 
				
			||||||
    GraphQLString,
 | 
					    GraphQLString,
 | 
				
			||||||
    Undefined,
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
from graphql.execution import ExecutionContext
 | 
					from graphql.execution import ExecutionContext
 | 
				
			||||||
from graphql.execution.values import get_argument_values
 | 
					from graphql.execution.values import get_argument_values
 | 
				
			||||||
| 
						 | 
					@ -313,9 +312,7 @@ class TypeMap(dict):
 | 
				
			||||||
                        arg_type,
 | 
					                        arg_type,
 | 
				
			||||||
                        out_name=arg_name,
 | 
					                        out_name=arg_name,
 | 
				
			||||||
                        description=arg.description,
 | 
					                        description=arg.description,
 | 
				
			||||||
                        default_value=Undefined
 | 
					                        default_value=arg.default_value,
 | 
				
			||||||
                        if isinstance(arg.type, NonNull)
 | 
					 | 
				
			||||||
                        else arg.default_value,
 | 
					 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                subscribe = field.wrap_subscribe(
 | 
					                subscribe = field.wrap_subscribe(
 | 
				
			||||||
                    self.get_function_for_type(
 | 
					                    self.get_function_for_type(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@ from graphql.type import (
 | 
				
			||||||
    GraphQLInputField,
 | 
					    GraphQLInputField,
 | 
				
			||||||
    GraphQLInputObjectType,
 | 
					    GraphQLInputObjectType,
 | 
				
			||||||
    GraphQLInterfaceType,
 | 
					    GraphQLInterfaceType,
 | 
				
			||||||
 | 
					    GraphQLNonNull,
 | 
				
			||||||
    GraphQLObjectType,
 | 
					    GraphQLObjectType,
 | 
				
			||||||
    GraphQLString,
 | 
					    GraphQLString,
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					@ -94,6 +95,21 @@ def test_objecttype():
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def test_required_argument_with_default_value():
 | 
				
			||||||
 | 
					    class MyObjectType(ObjectType):
 | 
				
			||||||
 | 
					        foo = String(bar=String(required=True, default_value="x"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    type_map = create_type_map([MyObjectType])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    graphql_type = type_map["MyObjectType"]
 | 
				
			||||||
 | 
					    foo_field = graphql_type.fields["foo"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bar_argument = foo_field.args["bar"]
 | 
				
			||||||
 | 
					    assert bar_argument.default_value == "x"
 | 
				
			||||||
 | 
					    assert isinstance(bar_argument.type, GraphQLNonNull)
 | 
				
			||||||
 | 
					    assert bar_argument.type.of_type == GraphQLString
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def test_dynamic_objecttype():
 | 
					def test_dynamic_objecttype():
 | 
				
			||||||
    class MyObjectType(ObjectType):
 | 
					    class MyObjectType(ObjectType):
 | 
				
			||||||
        """Description"""
 | 
					        """Description"""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user