def test_utils_coercers__get_coercer(field_mock): from tartiflette.utils.coercer import get_coercer field_mock.schema.find_type = Mock(return_value=None) assert get_coercer(field_mock) is not None assert field_mock.schema.find_enum.call_args_list == [(("aType", ), )] assert field_mock.schema.find_scalar.call_args_list == [(("String", ), )] field_mock.schema.find_enum = Mock(return_value=None) assert get_coercer(field_mock) is not None assert field_mock.schema.find_enum.call_args_list == [(("aType", ), )] assert field_mock.schema.find_scalar.call_args_list == [ (("String", ), ), (("aType", ), ), ] field_mock.schema.find_scalar = Mock(return_value=None) assert get_coercer(field_mock) is not None assert field_mock.schema.find_enum.call_args_list == [ (("aType", ), ), (("aType", ), ), ] assert field_mock.schema.find_scalar.call_args_list == [(("aType", ), )]
def bake(self, schema: "GraphQLSchema") -> None: self._schema = schema self._directives_implementations = get_directive_instances( self._directives, self._schema) self._introspection_directives = wraps_with_directives( directives_definition=self._directives_implementations, directive_hook="on_introspection", ) if isinstance(self.gql_type, GraphQLType): self._type = self.gql_type else: self._type["name"] = self.gql_type self._type["kind"] = self._schema.find_type(self.gql_type).kind self.coercer = partial( wraps_with_directives( directives_definition=self.directives, directive_hook="on_argument_execution", func=partial( argument_coercer, input_coercer=get_coercer(self, schema=schema, way=CoercerWay.INPUT), ), ), self, )
def test_utils_coercers__get_coercer_no_schema(): from tartiflette.utils.coercer import get_coercer f = Mock() f.schema = None assert get_coercer(f) is None
def test_resolver_factory__get_coercer_no_schema(): from tartiflette.utils.coercer import get_coercer f = Mock() f.schema = None assert get_coercer(f) is None
def test_resolver_factory__get_coercer___Type(): from tartiflette.utils.coercer import get_coercer from tartiflette.utils.coercer import _built_in_coercer from tartiflette.utils.coercer import _object_coercer field = Mock() field.gql_type = "__Type" c = get_coercer(field) assert c.func is _built_in_coercer a, = c.args assert a.func is _object_coercer assert a.args == (None,)
def bake(self, schema: "GraphQLSchema") -> None: self._schema = schema self._directives_implementations = get_directive_implem_list( self._directives, self._schema) if isinstance(self.gql_type, GraphQLType): self._type = self.gql_type else: self._type["name"] = self.gql_type self._type["kind"] = self._schema.find_type(self.gql_type).kind self.coercer = partial( surround_with_argument_execution_directives( partial( argument_coercer, input_coercer=get_coercer(self, schema=schema, way=CoercerWay.INPUT), ), self.directives, ), self, )
def test_utils_coercers__get_coercer_not_ok(field_mock): from tartiflette.utils.coercer import get_coercer field_mock.schema.find_scalar = Mock(return_value=None) assert get_coercer(field_mock) is not None
def update_coercer(self) -> None: self._coercer = get_coercer(self._schema_field)
def __init__(self, func: Callable, schema_field: "GraphQLField") -> None: self._raw_func = func self._directivated_func = func self._schema_field = schema_field self._coercer = get_coercer(schema_field) self._shall_produce_list = _shall_return_a_list(schema_field.gql_type)