def test_int_coerce_result(): assert Int.coerce_result(True) is 1 assert Int.coerce_result(4.9) is 4 assert Int.coerce_result(None) is None with pytest.raises(ValueError): Int.coerce_result('2.0')
def test_field__get_args(): field_object = FieldObject( None, ('characters', ManyRelatedField(Character, types=List(String))), None, ) assert field_object.get_args() == (('types', List(String)), ) field_object = FieldObject( None, ('characters', ManyRelatedField(Episode, types=Int())), None, ) assert field_object.get_args() == (('types', Int()), )
def test_field__get_args(): field_object = Field( None, ('characters', ManyRelatedField(Character, arguments={'types': List(String)})), None, ) assert field_object.get_args() == (('types', List(String)), ) field_object = Field( None, ('characters', ManyRelatedField(Character, arguments={'types': Int() })), None, ) assert field_object.get_args() == (('types', Int()), )
class QueryRoot(Object): hero = RelatedField(Character, null=False) episodes = ManyRelatedField(Episode, arguments={'number': List(Int(null=False))}) episode = RelatedField(Episode, arguments={'number': Int(null=False)}, null=False) def get_hero(self): return CharacterModel.objects.get(name='R2-D2') def get_episodes(self, number): episodes = EpisodeModel.objects.all() if number: episodes = episodes.filter(number__in=list(number)) return episodes.order_by('number') def get_episode(self, number): return EpisodeModel.objects.get(number=number)
def test_get_resolver_args_coercion_error(): field = CharField(arguments={'foo': Int()}) selection = mock.MagicMock() argument = mock.Mock() argument.name = 'foo' argument.value = 'bar' selection.arguments = [argument] obj = mock.MagicMock() field.bind(selection, obj) with pytest.raises(GraphQLError): field.get_resolver_args()
class QueryRoot(Object): hero = RelatedField(Character) episodes = ManyRelatedField(Episode) episode = RelatedField(Episode, arguments={'number': Int()}) def get_hero(self): return CharacterModel.objects.get(name='R2-D2') def get_episodes(self): return EpisodeModel.objects.order_by('number') def get_episode(self, number): return EpisodeModel.objects.get(number=number)
def test_type__list__get_ofType(): type_object = Type(None, List(Character), None) assert type_object.get_ofType() == Character type_object = Type(None, List(Int(null=False)), None) assert type_object.get_ofType() == NonNull(Int())
class QueryRootWithNestedArgs(Object): nested = CharField( arguments={'arg': List(List(Int(null=False), null=False), null=False)}) def get_nested(self, arg): return 1
def test_int_coerce_input(): assert Int.coerce_input(-12) == -12 assert Int.coerce_input(None) is None with pytest.raises(ValueError): Int.coerce_input('2') with pytest.raises(ValueError): Int.coerce_input(True) with pytest.raises(ValueError): Int.coerce_input(2.0) max_int = (2**31) - 1 assert Int.coerce_input(max_int) == max_int with pytest.raises(ValueError): Int.coerce_input(max_int + 1) min_int = -2**31 assert Int.coerce_input(min_int) == min_int with pytest.raises(ValueError): Int.coerce_input(min_int - 1)