File: test_generic.py

package info (click to toggle)
python-graphene 3.4.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,120 kB
  • sloc: python: 8,935; makefile: 214; sh: 18
file content (84 lines) | stat: -rw-r--r-- 2,226 bytes parent folder | download | duplicates (2)
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
from ..generic import GenericScalar
from ..objecttype import ObjectType
from ..schema import Schema


class Query(ObjectType):
    generic = GenericScalar(input=GenericScalar())

    def resolve_generic(self, info, input=None):
        return input


schema = Schema(query=Query)


def test_generic_query_variable():
    for generic_value in [
        1,
        1.1,
        True,
        "str",
        [1, 2, 3],
        [1.1, 2.2, 3.3],
        [True, False],
        ["str1", "str2"],
        {"key_a": "a", "key_b": "b"},
        {
            "int": 1,
            "float": 1.1,
            "boolean": True,
            "string": "str",
            "int_list": [1, 2, 3],
            "float_list": [1.1, 2.2, 3.3],
            "boolean_list": [True, False],
            "string_list": ["str1", "str2"],
            "nested_dict": {"key_a": "a", "key_b": "b"},
        },
        None,
    ]:
        result = schema.execute(
            """query Test($generic: GenericScalar){ generic(input: $generic) }""",
            variables={"generic": generic_value},
        )
        assert not result.errors
        assert result.data == {"generic": generic_value}


def test_generic_parse_literal_query():
    result = schema.execute(
        """
        query {
            generic(input: {
                int: 1,
                float: 1.1
                boolean: true,
                string: "str",
                int_list: [1, 2, 3],
                float_list: [1.1, 2.2, 3.3],
                boolean_list: [true, false]
                string_list: ["str1", "str2"],
                nested_dict: {
                    key_a: "a",
                    key_b: "b"
                },
                empty_key: undefined
            })
        }
        """
    )
    assert not result.errors
    assert result.data == {
        "generic": {
            "int": 1,
            "float": 1.1,
            "boolean": True,
            "string": "str",
            "int_list": [1, 2, 3],
            "float_list": [1.1, 2.2, 3.3],
            "boolean_list": [True, False],
            "string_list": ["str1", "str2"],
            "nested_dict": {"key_a": "a", "key_b": "b"},
            "empty_key": None,
        }
    }