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']
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']