def test_field_resolver_can_be_set_using_setter(schema): query = ObjectType("Query") query.set_field("hello", lambda *_: "World") query.bind_to_schema(schema) result = graphql_sync(schema, "{ hello }") assert result.errors is None assert result.data == {"hello": "World"}
def test_set_alias_method_creates_resolver_for_specified_attribute(schema): query = ObjectType("Query") query.set_alias("hello", "test") query.bind_to_schema(schema) result = graphql_sync(schema, "{ hello }", root_value={"test": "World"}) assert result.errors is None assert result.data == {"hello": "World"}
def test_interface_resolver_doesnt_override_existing_resolver(schema, interface): user = ObjectType("User") user.set_field("summary", test_resolver) user.bind_to_schema(schema) def interface_resolver(*_): pass # pragma: no cover interface.set_field("summary", interface_resolver) interface.bind_to_schema(schema) field = schema.type_map.get("User").fields["summary"] assert field.resolve is test_resolver
def test_default_fallback_is_not_replacing_already_set_resolvers(schema): resolvers_map = ObjectType("Query") resolvers_map.set_field("hello", lambda *_: False) resolvers_map.set_field("snake_case", lambda *_: False) resolvers_map.bind_to_schema(schema) fallback_resolvers.bind_to_schema(schema) query_root = { "hello": True, "snake_case": True, "camel": True, "camel_case": True } result = graphql_sync(schema, query, root_value=query_root) assert result.data == { "hello": False, "snake_case": False, "Camel": None, "camelCase": None, }
def test_attempt_bind_object_type_field_to_undefined_field_raises_error( schema): query = ObjectType("Query") query.set_alias("user", "_") with pytest.raises(ValueError): query.bind_to_schema(schema)
def test_attempt_bind_object_type_to_invalid_type_raises_error(schema): query = ObjectType("Date") with pytest.raises(ValueError): query.bind_to_schema(schema)
def test_attempt_bind_object_type_to_undefined_type_raises_error(schema): query = ObjectType("Test") with pytest.raises(ValueError): query.bind_to_schema(schema)