def test_does_not_mutate_passed_field_definitions():
    fields = {
        'field1': GraphQLField(GraphQLString),
        'field2': GraphQLField(GraphQLString, args={'id': GraphQLArgument(GraphQLString)}),
    }

    TestObject1 = GraphQLObjectType(name='Test1', fields=fields)
    TestObject2 = GraphQLObjectType(name='Test1', fields=fields)

    assert TestObject1.get_fields() == TestObject2.get_fields()
    assert fields == {
        'field1': GraphQLField(GraphQLString),
        'field2': GraphQLField(GraphQLString, args={'id': GraphQLArgument(GraphQLString)}),
    }

    input_fields = {
        'field1': GraphQLInputObjectField(GraphQLString),
        'field2': GraphQLInputObjectField(GraphQLString),
    }

    TestInputObject1 = GraphQLInputObjectType(name='Test1', fields=input_fields)
    TestInputObject2 = GraphQLInputObjectType(name='Test2', fields=input_fields)

    assert TestInputObject1.get_fields() == TestInputObject2.get_fields()

    assert input_fields == {
        'field1': GraphQLInputObjectField(GraphQLString),
        'field2': GraphQLInputObjectField(GraphQLString),
    }
def test_does_not_sort_fields_and_argument_keys_when_using_ordered_dict():
    fields = OrderedDict([
        ('b', GraphQLField(GraphQLString)),
        ('c', GraphQLField(GraphQLString)),
        ('a', GraphQLField(GraphQLString)),
        ('d', GraphQLField(GraphQLString, args=OrderedDict([
            ('q', GraphQLArgument(GraphQLString)),
            ('x', GraphQLArgument(GraphQLString)),
            ('v', GraphQLArgument(GraphQLString)),
            ('a', GraphQLArgument(GraphQLString)),
            ('n', GraphQLArgument(GraphQLString))
        ])))
    ])

    test_object = GraphQLObjectType(name='Test', fields=fields)
    ordered_fields = test_object.get_fields()
    assert list(ordered_fields.keys()) == ['b', 'c', 'a', 'd']
    field_with_args = test_object.get_fields().get('d')
    assert [a.name for a in field_with_args.args] == ['q', 'x', 'v', 'a', 'n']
def test_sorts_fields_and_argument_keys_if_not_using_ordered_dict():
    fields = {
        'b': GraphQLField(GraphQLString),
        'c': GraphQLField(GraphQLString),
        'a': GraphQLField(GraphQLString),
        'd': GraphQLField(GraphQLString, args={
            'q': GraphQLArgument(GraphQLString),
            'x': GraphQLArgument(GraphQLString),
            'v': GraphQLArgument(GraphQLString),
            'a': GraphQLArgument(GraphQLString),
            'n': GraphQLArgument(GraphQLString)
        })
    }

    test_object = GraphQLObjectType(name='Test', fields=fields)
    ordered_fields = test_object.get_fields()
    assert list(ordered_fields.keys()) == ['a', 'b', 'c', 'd']
    field_with_args = test_object.get_fields().get('d')
    assert [a.name for a in field_with_args.args] == ['a', 'n', 'q', 'v', 'x']
示例#4
0
def test_does_not_sort_fields_and_argument_keys_when_using_ordered_dict():
    fields = OrderedDict([
        ('b', GraphQLField(GraphQLString)), ('c', GraphQLField(GraphQLString)),
        ('a', GraphQLField(GraphQLString)),
        ('d',
         GraphQLField(GraphQLString,
                      args=OrderedDict([('q', GraphQLArgument(GraphQLString)),
                                        ('x', GraphQLArgument(GraphQLString)),
                                        ('v', GraphQLArgument(GraphQLString)),
                                        ('a', GraphQLArgument(GraphQLString)),
                                        ('n', GraphQLArgument(GraphQLString))
                                        ])))
    ])

    test_object = GraphQLObjectType(name='Test', fields=fields)
    ordered_fields = test_object.get_fields()
    assert list(ordered_fields.keys()) == ['b', 'c', 'a', 'd']
    field_with_args = test_object.get_fields().get('d')
    assert [a.name for a in field_with_args.args] == ['q', 'x', 'v', 'a', 'n']
示例#5
0
def test_does_not_mutate_passed_field_definitions():
    fields = {
        'field1':
        GraphQLField(GraphQLString),
        'field2':
        GraphQLField(GraphQLString,
                     args={'id': GraphQLArgument(GraphQLString)}),
    }

    TestObject1 = GraphQLObjectType(name='Test1', fields=fields)
    TestObject2 = GraphQLObjectType(name='Test1', fields=fields)

    assert TestObject1.get_fields() == TestObject2.get_fields()
    assert fields == {
        'field1':
        GraphQLField(GraphQLString),
        'field2':
        GraphQLField(GraphQLString,
                     args={'id': GraphQLArgument(GraphQLString)}),
    }

    input_fields = {
        'field1': GraphQLInputObjectField(GraphQLString),
        'field2': GraphQLInputObjectField(GraphQLString),
    }

    TestInputObject1 = GraphQLInputObjectType(name='Test1',
                                              fields=input_fields)
    TestInputObject2 = GraphQLInputObjectType(name='Test2',
                                              fields=input_fields)

    assert TestInputObject1.get_fields() == TestInputObject2.get_fields()

    assert input_fields == {
        'field1': GraphQLInputObjectField(GraphQLString),
        'field2': GraphQLInputObjectField(GraphQLString),
    }
示例#6
0
def test_sorts_fields_and_argument_keys_if_not_using_ordered_dict():
    fields = {
        'b':
        GraphQLField(GraphQLString),
        'c':
        GraphQLField(GraphQLString),
        'a':
        GraphQLField(GraphQLString),
        'd':
        GraphQLField(GraphQLString,
                     args={
                         'q': GraphQLArgument(GraphQLString),
                         'x': GraphQLArgument(GraphQLString),
                         'v': GraphQLArgument(GraphQLString),
                         'a': GraphQLArgument(GraphQLString),
                         'n': GraphQLArgument(GraphQLString)
                     })
    }

    test_object = GraphQLObjectType(name='Test', fields=fields)
    ordered_fields = test_object.get_fields()
    assert list(ordered_fields.keys()) == ['a', 'b', 'c', 'd']
    field_with_args = test_object.get_fields().get('d')
    assert [a.name for a in field_with_args.args] == ['a', 'n', 'q', 'v', 'x']