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_inputvalue__get_type(): inputvalue_object = InputValueObject( None, ('name', String()), None, ) assert inputvalue_object.get_type() == String inputvalue_object = InputValueObject( None, ('names', List(String)), None, ) assert inputvalue_object.get_type() == List(String)
def test_field__get_type(): field_object = Field( None, ('name', CharField()), None, ) assert field_object.get_type() == String field_object = Field( None, ('characters', RelatedField('self')), None, ) field_object.data[1]._self_object_type = Character assert field_object.get_type() == Character field_object = Field( None, ('characters', RelatedField(Character)), None, ) assert field_object.get_type() == Character field_object = Field( None, ('characters', RelatedField(lambda: Character)), None, ) assert field_object.get_type() == Character field_object = Field( None, ('characters', RelatedField('test_app.schema.Character')), None, ) assert field_object.get_type() == Character field_object = Field( None, ('characters', ManyRelatedField(Character)), None, ) assert field_object.get_type() == List(Character) field_object = Field( None, ('characters', ManyRelatedField(Character, null=False)), None, ) assert field_object.get_type() == NonNull(List(Character)) field_object = Field( None, ('id', IntegerField(null=False)), None, ) assert field_object.get_type() == NonNull(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()), )
def test_field__get_type(): field_object = FieldObject( None, ('name', CharField()), None, ) assert field_object.get_type() == String field_object = FieldObject( None, ('characters', RelatedField('self')), None, ) field_object.data[1]._self_object_type = Character assert field_object.get_type() == Character field_object = FieldObject( None, ('characters', RelatedField(Character)), None, ) assert field_object.get_type() == Character field_object = FieldObject( None, ('characters', ManyRelatedField(Character)), None, ) assert field_object.get_type() == List(Character)
def get_type(self): field = self.data[1] if isinstance(field, RelatedField): type_ = field.object_type if isinstance(field.type_, List): type_ = List(type_) else: type_ = field.type_ return type_
def test_inputvalue__get_type(): inputvalue_object = InputValue( None, ('name', String()), None, ) assert inputvalue_object.get_type() == String inputvalue_object = InputValue( None, ('names', List(String)), None, ) assert inputvalue_object.get_type() == List(String) inputvalue_object = InputValue( None, ('name', String(null=False)), None, ) assert inputvalue_object.get_type() == NonNull(String())
def test_list_coerce_result(): assert List(Boolean).coerce_result({False}) == [False] assert List(String).coerce_result([True]) == ['True'] assert List(Int).coerce_result((1, 2, '3')) == [1, 2, 3] assert List(Int).coerce_result(None) is None assert List(String).coerce_result('not a list') == ['not a list'] with pytest.raises(ValueError): List(Float).coerce_result(['not a float'])
def test_list_coerce_input(): assert List(Int).coerce_input([]) == [] assert List(Boolean).coerce_input({True}) == [True] assert List(Int).coerce_input((1, 2, 3)) == [1, 2, 3] assert List(String).coerce_input('123') == ['123'] assert List(Int).coerce_input(None) is None with pytest.raises(ValueError): List(Int).coerce_input(['1', '2'])
class Episode(Object): name = CharField(description='The name of an episode') number = IntegerField() characters = ManyRelatedField(lambda: Character, types=List(String)) next = RelatedField('self') def get_next(self): return EpisodeModel.objects.filter(number=self.data.number + 1).first() def get_characters(self, types): q = Q() if types is not None: if 'human' not in types: q &= Q(human=None) if 'droid' not in types: q &= Q(droid=None) return self.data.characters.filter(q).order_by('pk')
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)
class Episode(Object): name = CharField(description='The name of an episode') number = IntegerField() characters = ManyRelatedField( 'test_app.schema.Character', arguments={ 'types': List(String(null=False)), }, ) next = RelatedField('self') def get_next(self): return EpisodeModel.objects.filter(number=self.data.number + 1).first() def get_characters(self, types): q = Q() if types is not None: if 'human' not in types: q &= Q(human=None) if 'droid' not in types: q &= Q(droid=None) return self.data.characters.filter(q).order_by('pk')
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_type__list__get_ofType(): type_object = TypeObject(None, List(Character), None) assert type_object.get_ofType() is Character
def test_type__list__get_enumValues(): type_object = TypeObject(None, List(Character), None) assert type_object.get_enumValues() is None
def test_type__list__get_possibleTypes(): type_object = TypeObject(None, List(Character), None) assert type_object.get_possibleTypes() is None
def test_type__list__get_inputFields(): type_object = TypeObject(None, List(Character), None) assert type_object.get_inputFields() is None
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())
def test_type__list__get_interfaces(): type_object = Type(None, List(Character), None) assert type_object.get_interfaces() is None
def test_type__non_null__get_ofType(): type_object = Type(None, NonNull(Boolean), None) assert type_object.get_ofType() == Boolean type_object = Type(None, NonNull(List(Boolean)), None) assert type_object.get_ofType() == List(Boolean)