File: test_interface.py

package info (click to toggle)
python-graphene 2.1.9-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,024 kB
  • sloc: python: 7,295; makefile: 196; sh: 4
file content (90 lines) | stat: -rw-r--r-- 2,501 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
from ..field import Field
from ..interface import Interface
from ..unmountedtype import UnmountedType


class MyType(object):
    pass


class MyScalar(UnmountedType):
    def get_type(self):
        return MyType


def test_generate_interface():
    class MyInterface(Interface):
        """Documentation"""

    assert MyInterface._meta.name == "MyInterface"
    assert MyInterface._meta.description == "Documentation"
    assert MyInterface._meta.fields == {}


def test_generate_interface_with_meta():
    class MyInterface(Interface):
        class Meta:
            name = "MyOtherInterface"
            description = "Documentation"

    assert MyInterface._meta.name == "MyOtherInterface"
    assert MyInterface._meta.description == "Documentation"


def test_generate_interface_with_fields():
    class MyInterface(Interface):
        field = Field(MyType)

    assert "field" in MyInterface._meta.fields


def test_ordered_fields_in_interface():
    class MyInterface(Interface):
        b = Field(MyType)
        a = Field(MyType)
        field = MyScalar()
        asa = Field(MyType)

    assert list(MyInterface._meta.fields.keys()) == ["b", "a", "field", "asa"]


def test_generate_interface_unmountedtype():
    class MyInterface(Interface):
        field = MyScalar()

    assert "field" in MyInterface._meta.fields
    assert isinstance(MyInterface._meta.fields["field"], Field)


def test_generate_interface_inherit_abstracttype():
    class MyAbstractType(object):
        field1 = MyScalar()

    class MyInterface(Interface, MyAbstractType):
        field2 = MyScalar()

    assert list(MyInterface._meta.fields.keys()) == ["field1", "field2"]
    assert [type(x) for x in MyInterface._meta.fields.values()] == [Field, Field]


def test_generate_interface_inherit_interface():
    class MyBaseInterface(Interface):
        field1 = MyScalar()

    class MyInterface(MyBaseInterface):
        field2 = MyScalar()

    assert MyInterface._meta.name == "MyInterface"
    assert list(MyInterface._meta.fields.keys()) == ["field1", "field2"]
    assert [type(x) for x in MyInterface._meta.fields.values()] == [Field, Field]


def test_generate_interface_inherit_abstracttype_reversed():
    class MyAbstractType(object):
        field1 = MyScalar()

    class MyInterface(MyAbstractType, Interface):
        field2 = MyScalar()

    assert list(MyInterface._meta.fields.keys()) == ["field1", "field2"]
    assert [type(x) for x in MyInterface._meta.fields.values()] == [Field, Field]