File: test_execution_result.py

package info (click to toggle)
graphql-core 3.2.6-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,384 kB
  • sloc: python: 45,812; makefile: 26; sh: 13
file content (116 lines) | stat: -rw-r--r-- 4,559 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
from pytest import raises

from graphql.error import GraphQLError
from graphql.execution import ExecutionResult


def describe_execution_result():

    data = {"foo": "Some data"}
    error = GraphQLError("Some error")
    errors = [error]
    extensions = {"bar": "Some extension"}

    def initializes_properly():
        res = ExecutionResult(data, errors)
        assert res.data is data
        assert res.errors is errors
        assert res.extensions is None
        res = ExecutionResult(data, errors, extensions)
        assert res.data is data
        assert res.errors is errors
        assert res.extensions is extensions

    def prints_a_representation():
        assert repr(ExecutionResult(data, errors)) == (
            "ExecutionResult(data={'foo': 'Some data'},"
            " errors=[GraphQLError('Some error')])"
        )
        assert repr(ExecutionResult(data, errors, extensions)) == (
            "ExecutionResult(data={'foo': 'Some data'},"
            " errors=[GraphQLError('Some error')],"
            " extensions={'bar': 'Some extension'})"
        )

    def formats_properly():
        res = ExecutionResult(data, None)
        assert res.formatted == {"data": data}
        res = ExecutionResult(data, errors)
        assert res.formatted == {
            "data": data,
            "errors": [{"message": "Some error"}],
        }
        res = ExecutionResult(data, None, extensions)
        assert res.formatted == {
            "data": data,
            "extensions": extensions,
        }
        res = ExecutionResult(data, errors, extensions)
        assert res.formatted == {
            "data": data,
            "errors": [{"message": "Some error"}],
            "extensions": extensions,
        }

    def compares_to_dict():
        res = ExecutionResult(data, errors)
        assert res == {"data": data, "errors": errors}
        assert res == {"data": data, "errors": errors, "extensions": None}
        assert res != {"data": data, "errors": None}
        assert res != {"data": None, "errors": errors}
        assert res != {"data": data, "errors": errors, "extensions": extensions}
        res = ExecutionResult(data, errors, extensions)
        assert res == {"data": data, "errors": errors}
        assert res == {"data": data, "errors": errors, "extensions": extensions}
        assert res != {"data": data, "errors": None}
        assert res != {"data": None, "errors": errors}
        assert res != {"data": data, "errors": errors, "extensions": None}

    def compares_to_tuple():
        res = ExecutionResult(data, errors)
        assert res == (data, errors)
        assert res == (data, errors, None)
        assert res != (data, None)
        assert res != (None, errors)
        assert res != (data, errors, extensions)
        res = ExecutionResult(data, errors, extensions)
        assert res == (data, errors)
        assert res == (data, errors, extensions)
        assert res != (data, None)
        assert res != (None, errors)
        assert res != (data, errors, None)

    def does_not_compare_to_list():
        res = ExecutionResult(data, errors)
        assert res != [data, errors]
        res = ExecutionResult(data, errors, extensions)
        assert res != [data, errors, extensions]

    def compares_to_another_execution_result():
        res1 = ExecutionResult(data, errors)
        res2 = ExecutionResult(data, errors)
        assert res1 == res2
        res2 = ExecutionResult({"foo": "other data"}, errors)
        assert res1 != res2
        res2 = ExecutionResult(data, [GraphQLError("Another error")])
        assert res1 != res2
        res2 = ExecutionResult(data, errors, extensions)
        assert res1 != res2
        res1 = ExecutionResult(data, errors, extensions)
        res2 = ExecutionResult(data, errors, extensions)
        assert res1 == res2
        res2 = ExecutionResult({"foo": "other data"}, errors, extensions)
        assert res1 != res2
        res2 = ExecutionResult(data, [GraphQLError("Another error")], extensions)
        assert res1 != res2
        res2 = ExecutionResult(data, errors, {"bar": "Another extension"})
        assert res1 != res2

    def unpacks_as_two_tuple():
        res = ExecutionResult(data, errors)
        res_data, res_errors = res  # type: ignore
        assert res_data == data  # type: ignore
        assert res_errors == errors  # type: ignore
        with raises(ValueError):
            res = ExecutionResult(data, errors, extensions)
            _res_data, _res_errors, _res_extensions = res  # type: ignore