Esempio n. 1
0
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')
        ]
    )
Esempio n. 3
0
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'))
    ])
Esempio n. 5
0
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')
            )
        ]
    )
Esempio n. 7
0
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))
Esempio n. 8
0
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)
Esempio n. 11
0
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
Esempio n. 12
0
def test_converts_list_singletons():
    assert ast_from_value("FOO", GraphQLList(my_enum)) == ast.EnumValue("FOO")
Esempio n. 13
0
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_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')
Esempio n. 17
0
def test_converts_boolean_values_to_asts():
    assert ast_from_value(True) == ast.BooleanValue(True)
    assert ast_from_value(False) == ast.BooleanValue(False)
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_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')
Esempio n. 21
0
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')
Esempio n. 23
0
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")
Esempio n. 24
0
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_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')
Esempio n. 26
0
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")
Esempio n. 27
0
def test_it_converts_null_values_to_asts():
    assert ast_from_value(None) == ast.NullValue()