Exemple #1
0
    def test_simple(self):
        union_schema = s.Union(
            "Foo",
            "my union!",
            [
                s.TypeRef("BlaType", s.Kind.OBJECT, None),
                s.TypeRef("Quxlike", s.Kind.INTERFACE, None),
                s.TypeRef("Foobar", s.Kind.UNION, None),
            ],
        )

        objs = {
            "BlaType": type("BlaType", (), {}),
            "Quxlike": type("Quxlike", (), {}),
            "Foobar": type("Foobar", (), {}),
            "Bla": type("Bla", (), {}),
        }

        created = s.union_as_type(union_schema, objs)
        assert created.__name__ == "Foo"
        assert created.__doc__ == "my union!"
        assert issubclass(created, quiz.Union)

        assert created.__args__ == (
            objs["BlaType"],
            objs["Quxlike"],
            objs["Foobar"],
        )
Exemple #2
0
    def test_non_null(self):
        ref = s.TypeRef(None, s.Kind.NON_NULL,
                        s.TypeRef('Foo', s.Kind.OBJECT, None))

        classes = {'Foo': type('Foo', (), {})}
        resolved = s.resolve_typeref(ref, classes)
        assert resolved == classes['Foo']
Exemple #3
0
 def test_simple(self):
     obj_schema = s.Object(
         "Foo",
         "the foo description!",
         interfaces=[
             s.TypeRef("Interface1", s.Kind.INTERFACE, None),
             s.TypeRef("BlaInterface", s.Kind.INTERFACE, None),
         ],
         input_fields=None,
         fields=[
             s.Field(
                 "blabla",
                 type=s.TypeRef("String", s.Kind.SCALAR, None),
                 args=[],
                 desc="my description",
                 is_deprecated=False,
                 deprecation_reason=None,
             )
         ],
     )
     interfaces = {
         "Interface1":
         type("Interface1", (quiz.Interface, ), {"__module__": "foo"}),
         "BlaInterface":
         type("BlaInterface", (quiz.Interface, ), {"__module__": "foo"}),
         "Qux":
         type("Qux", (quiz.Interface, ), {"__module__": "foo"}),
     }
     created = s.object_as_type(obj_schema, interfaces, module="foo")
     assert issubclass(created, quiz.Object)
     assert created.__name__ == "Foo"
     assert created.__doc__ == "the foo description!"
     assert created.__module__ == "foo"
     assert issubclass(created, interfaces["Interface1"])
     assert issubclass(created, interfaces["BlaInterface"])
Exemple #4
0
 def test_list(self):
     ref = s.TypeRef(None, s.Kind.LIST, s.TypeRef('Foo', s.Kind.OBJECT,
                                                  None))
     classes = {'Foo': type('Foo', (), {})}
     resolved = s.resolve_typeref(ref, classes)
     assert issubclass(resolved, quiz.Nullable)
     assert issubclass(resolved.__arg__, quiz.List)
     assert issubclass(resolved.__arg__.__arg__, quiz.Nullable)
     assert resolved.__arg__.__arg__.__arg__ == classes['Foo']
Exemple #5
0
    def test_default(self):
        ref = s.TypeRef('Foo', s.Kind.ENUM, None)

        classes = {'Foo': quiz.Enum('Foo', {})}
        resolved = s.resolve_typeref(ref, classes)
        assert issubclass(resolved, quiz.Nullable)
        assert resolved.__arg__ is classes['Foo']
Exemple #6
0
 def test_list_non_null(self):
     ref = s.TypeRef(
         None,
         s.Kind.NON_NULL,
         s.TypeRef(
             None,
             s.Kind.LIST,
             s.TypeRef(
                 None,
                 s.Kind.NON_NULL,
                 s.TypeRef("Foo", s.Kind.OBJECT, None),
             ),
         ),
     )
     classes = {"Foo": type("Foo", (), {})}
     resolved = s.resolve_typeref(ref, classes)
     assert issubclass(resolved, quiz.List)
     assert resolved.__arg__ == classes["Foo"]
Exemple #7
0
    def test_one(self):
        union_schema = s.Union("Foo", "my union!",
                               [s.TypeRef("BlaType", s.Kind.OBJECT, None)])

        objs = {"BlaType": type("BlaType", (), {})}

        created = s.union_as_type(union_schema, objs)
        assert created.__name__ == "Foo"
        assert created.__doc__ == "my union!"
        assert issubclass(created, quiz.Union)

        assert created.__args__ == (objs["BlaType"], )
Exemple #8
0
    def test_simple(self):
        union_schema = s.Union('Foo', 'my union!', [
            s.TypeRef('BlaType', s.Kind.OBJECT, None),
            s.TypeRef('Quxlike', s.Kind.INTERFACE, None),
            s.TypeRef('Foobar', s.Kind.UNION, None),
        ])

        objs = {
            'BlaType': type('BlaType', (), {}),
            'Quxlike': type('Quxlike', (), {}),
            'Foobar': type('Foobar', (), {}),
            'Bla': type('Bla', (), {}),
        }

        created = s.union_as_type(union_schema, objs)
        assert created.__name__ == 'Foo'
        assert created.__doc__ == 'my union!'
        assert issubclass(created, quiz.Union)

        assert created.__args__ == (
            objs['BlaType'],
            objs['Quxlike'],
            objs['Foobar'],
        )
Exemple #9
0
 def test_simple(self):
     obj_schema = s.Object('Foo',
                           'the foo description!',
                           interfaces=[
                               s.TypeRef('Interface1', s.Kind.INTERFACE,
                                         None),
                               s.TypeRef('BlaInterface', s.Kind.INTERFACE,
                                         None),
                           ],
                           input_fields=None,
                           fields=[
                               s.Field(
                                   'blabla',
                                   type=s.TypeRef('String', s.Kind.SCALAR,
                                                  None),
                                   args=[],
                                   desc='my description',
                                   is_deprecated=False,
                                   deprecation_reason=None,
                               ),
                           ])
     interfaces = {
         'Interface1':
         type('Interface1', (quiz.Interface, ), {'__module__': 'foo'}),
         'BlaInterface':
         type('BlaInterface', (quiz.Interface, ), {'__module__': 'foo'}),
         'Qux':
         type('Qux', (quiz.Interface, ), {'__module__': 'foo'}),
     }
     created = s.object_as_type(obj_schema, interfaces, module='foo')
     assert issubclass(created, quiz.Object)
     assert created.__name__ == 'Foo'
     assert created.__doc__ == 'the foo description!'
     assert created.__module__ == 'foo'
     assert issubclass(created, interfaces['Interface1'])
     assert issubclass(created, interfaces['BlaInterface'])
Exemple #10
0
    def test_one(self):
        union_schema = s.Union('Foo', 'my union!', [
            s.TypeRef('BlaType', s.Kind.OBJECT, None),
        ])

        objs = {
            'BlaType': type('BlaType', (), {}),
        }

        created = s.union_as_type(union_schema, objs)
        assert created.__name__ == 'Foo'
        assert created.__doc__ == 'my union!'
        assert issubclass(created, quiz.Union)

        assert created.__args__ == (objs['BlaType'], )
Exemple #11
0
    def test_simple(self):
        interface_schema = s.Interface('Foo', 'my interface!', [
            s.Field(
                'blabla',
                type=s.TypeRef('String', s.Kind.SCALAR, None),
                args=[],
                desc='my description',
                is_deprecated=False,
                deprecation_reason=None,
            ),
        ])
        created = s.interface_as_type(interface_schema, module='mymodule')

        assert isinstance(created, quiz.Interface)
        assert issubclass(created, quiz.types.Namespace)
        assert created.__name__ == 'Foo'
        assert created.__doc__ == 'my interface!'
        assert created.__module__ == 'mymodule'
Exemple #12
0
    def test_simple(self):
        interface_schema = s.Interface(
            "Foo",
            "my interface!",
            [
                s.Field(
                    "blabla",
                    type=s.TypeRef("String", s.Kind.SCALAR, None),
                    args=[],
                    desc="my description",
                    is_deprecated=False,
                    deprecation_reason=None,
                )
            ],
        )
        created = s.interface_as_type(interface_schema, module="mymodule")

        assert isinstance(created, quiz.Interface)
        assert issubclass(created, quiz.types.Namespace)
        assert created.__name__ == "Foo"
        assert created.__doc__ == "my interface!"
        assert created.__module__ == "mymodule"