def print_deprecated(reason: Optional[str]) -> str: if reason is None: return "" if reason != DEFAULT_DEPRECATION_REASON: ast_value = print_ast(ast_from_value(reason)) return f" @deprecated(reason: {ast_value})" return " @deprecated"
def test_converts_array_values_to_list_asts(): assert ast_from_value(['FOO', 'BAR']) == ast.ListValue( values=[ ast.StringValue('FOO'), ast.StringValue('BAR') ] )
def get_arg_serializer(arg_type): if isinstance(arg_type, GraphQLNonNull): return get_arg_serializer(arg_type.of_type) if isinstance(arg_type, GraphQLList): inner_serializer = get_arg_serializer(arg_type.of_type) return partial(serialize_list, inner_serializer) if isinstance(arg_type, GraphQLEnumType): return lambda value: ast.EnumValue(value=arg_type.serialize(value)) return lambda value: ast_from_value(arg_type.serialize(value))
def test_converts_input_objects(): value = OrderedDict([('foo', 3), ('bar', 'HELLO')]) assert ast_from_value(value) == ast.ObjectValue(fields=[ ast.ObjectField(name=ast.Name('foo'), value=ast.IntValue('3')), ast.ObjectField(name=ast.Name('bar'), value=ast.StringValue('HELLO')) ]) input_obj = GraphQLInputObjectType( 'MyInputObj', { 'foo': GraphQLInputObjectField(GraphQLFloat), 'bar': GraphQLInputObjectField(my_enum) }) assert ast_from_value(value, input_obj) == ast.ObjectValue(fields=[ ast.ObjectField(name=ast.Name('foo'), value=ast.FloatValue('3.0')), ast.ObjectField(name=ast.Name('bar'), value=ast.EnumValue('HELLO')) ])
def test_converts_input_objects(): value = OrderedDict([("foo", 3), ("bar", "HELLO")]) assert ast_from_value(value) == ast.ObjectValue(fields=[ ast.ObjectField(name=ast.Name("foo"), value=ast.IntValue("3")), ast.ObjectField(name=ast.Name("bar"), value=ast.StringValue("HELLO")), ]) input_obj = GraphQLInputObjectType( "MyInputObj", { "foo": GraphQLInputObjectField(GraphQLFloat), "bar": GraphQLInputObjectField(my_enum), }, ) assert ast_from_value(value, input_obj) == ast.ObjectValue(fields=[ ast.ObjectField(name=ast.Name("foo"), value=ast.FloatValue("3.0")), ast.ObjectField(name=ast.Name("bar"), value=ast.EnumValue("HELLO")), ])
def test_converts_input_objects(): value = OrderedDict([ ('foo', 3), ('bar', 'HELLO') ]) assert ast_from_value(value) == ast.ObjectValue( fields=[ ast.ObjectField( name=ast.Name('foo'), value=ast.IntValue('3') ), ast.ObjectField( name=ast.Name('bar'), value=ast.StringValue('HELLO') ) ] ) input_obj = GraphQLInputObjectType('MyInputObj', { 'foo': GraphQLInputObjectField(GraphQLFloat), 'bar': GraphQLInputObjectField(my_enum) }) assert ast_from_value(value, input_obj) == ast.ObjectValue( fields=[ ast.ObjectField( name=ast.Name('foo'), value=ast.FloatValue('3.0') ), ast.ObjectField( name=ast.Name('bar'), value=ast.EnumValue('HELLO') ) ] )
def get_arg_serializer(arg_type): if isinstance(arg_type, GraphQLNonNull): return get_arg_serializer(arg_type.of_type) if isinstance(arg_type, GraphQLInputObjectField): return get_arg_serializer(arg_type.type) if isinstance(arg_type, GraphQLInputObjectType): serializers = { k: get_arg_serializer(v) for k, v in arg_type.fields.items() } return lambda value: ast.ObjectValue(fields=[ ast.ObjectField(ast.Name(k), serializers[k](v)) for k, v in value.items() ]) if isinstance(arg_type, GraphQLList): inner_serializer = get_arg_serializer(arg_type.of_type) return partial(serialize_list, inner_serializer) if isinstance(arg_type, GraphQLEnumType): return lambda value: ast.EnumValue(value=arg_type.serialize(value)) return lambda value: ast_from_value(arg_type.serialize(value))
def print_description( def_: Union[GraphQLArgument, GraphQLDirective, GraphQLEnumType, GraphQLEnumValue, GraphQLInputObjectType, GraphQLInterfaceType, GraphQLObjectType, GraphQLScalarType, GraphQLUnionType, ], indentation: str = "", first_in_block: bool = True, ) -> str: description = def_.description if description is None: return "" description = description.rstrip() if is_printable_as_block_string(description): block_string = print_block_string(description) else: block_string = print_ast(ast_from_value(description)) prefix = "\n" + indentation if indentation and not first_in_block else indentation return prefix + block_string.replace("\n", "\n" + indentation) + "\n"
def test_converts_numeric_values_to_asts(): assert ast_from_value(123) == ast.IntValue('123') assert ast_from_value(123.0) == ast.IntValue('123') assert ast_from_value(123.5) == ast.FloatValue('123.5') assert ast_from_value(1e4) == ast.IntValue('10000') assert ast_from_value(1e40) == ast.FloatValue('1e+40')
def test_converts_boolean_values_to_asts(): assert ast_from_value(True) == ast.BooleanValue(True) assert ast_from_value(False) == ast.BooleanValue(False)
def print_input_value(name: str, arg: GraphQLArgument) -> str: default_ast = ast_from_value(arg.default_value, arg.type) arg_decl = f"{name}: {arg.type}" if default_ast: arg_decl += f" = {print_ast(default_ast)}" return arg_decl
def test_converts_list_singletons(): assert ast_from_value("FOO", GraphQLList(my_enum)) == ast.EnumValue("FOO")
def test_converts_array_values_to_list_asts(): assert ast_from_value(["FOO", "BAR"]) == ast.ListValue( values=[ast.StringValue("FOO"), ast.StringValue("BAR")])
def test_converts_string_values_to_enum_asts_if_possible(): assert ast_from_value('hello', my_enum) == ast.EnumValue('hello') assert ast_from_value('HELLO', my_enum) == ast.EnumValue('HELLO') assert ast_from_value('VAL\nUE', my_enum) == ast.StringValue('VAL\\nUE') assert ast_from_value('123', my_enum) == ast.StringValue('123')
def test_converts_list_singletons(): assert ast_from_value('FOO', GraphQLList(my_enum)) == ast.EnumValue('FOO')
def test_converts_array_values_to_list_asts(): assert ast_from_value(['FOO', 'BAR']) == ast.ListValue( values=[ast.StringValue('FOO'), ast.StringValue('BAR')])
def test_it_converts_numeric_values_to_float_asts(): assert ast_from_value(123, GraphQLFloat) == ast.FloatValue('123.0') assert ast_from_value(123.0, GraphQLFloat) == ast.FloatValue('123.0') assert ast_from_value(123.5, GraphQLFloat) == ast.FloatValue('123.5') assert ast_from_value(1e4, GraphQLFloat) == ast.FloatValue('10000.0') assert ast_from_value(1e40, GraphQLFloat) == ast.FloatValue('1e+40')
def test_it_converts_string_values_to_asts(): assert ast_from_value("hello") == ast.StringValue("hello") assert ast_from_value("VALUE") == ast.StringValue("VALUE") assert ast_from_value(u"VAL\nUE") == ast.StringValue("VAL\\nUE") assert ast_from_value("VAL\nUE") == ast.StringValue("VAL\\nUE") assert ast_from_value("123") == ast.StringValue("123")
def test_it_converts_string_values_to_asts(): assert ast_from_value('hello') == ast.StringValue('hello') assert ast_from_value('VALUE') == ast.StringValue('VALUE') assert ast_from_value(u'VAL\nUE') == ast.StringValue('VAL\\nUE') assert ast_from_value('VAL\nUE') == ast.StringValue('VAL\\nUE') assert ast_from_value('123') == ast.StringValue('123')
def test_converts_string_values_to_enum_asts_if_possible(): assert ast_from_value("hello", my_enum) == ast.EnumValue("hello") assert ast_from_value("HELLO", my_enum) == ast.EnumValue("HELLO") assert ast_from_value("VAL\nUE", my_enum) == ast.StringValue("VAL\\nUE") assert ast_from_value("123", my_enum) == ast.StringValue("123")
def test_converts_numeric_values_to_asts(): assert ast_from_value(123) == ast.IntValue("123") assert ast_from_value(123.0) == ast.IntValue("123") assert ast_from_value(123.5) == ast.FloatValue("123.5") assert ast_from_value(1e4) == ast.IntValue("10000") assert ast_from_value(1e40) == ast.FloatValue("1e+40")
def test_it_converts_numeric_values_to_float_asts(): assert ast_from_value(123, GraphQLFloat) == ast.FloatValue("123.0") assert ast_from_value(123.0, GraphQLFloat) == ast.FloatValue("123.0") assert ast_from_value(123.5, GraphQLFloat) == ast.FloatValue("123.5") assert ast_from_value(1e4, GraphQLFloat) == ast.FloatValue("10000.0") assert ast_from_value(1e40, GraphQLFloat) == ast.FloatValue("1e+40")
def test_it_converts_null_values_to_asts(): assert ast_from_value(None) == ast.NullValue()