Пример #1
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()), )
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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()), )
Пример #5
0
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)
Пример #6
0
 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_
Пример #7
0
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())
Пример #8
0
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'])
Пример #9
0
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'])
Пример #10
0
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')
Пример #11
0
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)
Пример #12
0
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
Пример #14
0
def test_type__list__get_ofType():
    type_object = TypeObject(None, List(Character), None)
    assert type_object.get_ofType() is Character
Пример #15
0
def test_type__list__get_enumValues():
    type_object = TypeObject(None, List(Character), None)
    assert type_object.get_enumValues() is None
Пример #16
0
def test_type__list__get_possibleTypes():
    type_object = TypeObject(None, List(Character), None)
    assert type_object.get_possibleTypes() is None
Пример #17
0
def test_type__list__get_inputFields():
    type_object = TypeObject(None, List(Character), None)
    assert type_object.get_inputFields() is None
Пример #18
0
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())
Пример #19
0
def test_type__list__get_interfaces():
    type_object = Type(None, List(Character), None)
    assert type_object.get_interfaces() is None
Пример #20
0
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)