|
1 | | -from types import SimpleNamespace |
2 | | - |
3 | 1 | import pytest |
4 | 2 |
|
5 | 3 | from ayon_api.graphql import GraphQlQuery |
6 | 4 | from ayon_api.graphql_queries import ( |
7 | 5 | project_graphql_query, |
8 | 6 | folders_graphql_query, |
9 | | - versions_graphql_query, |
10 | 7 | ) |
11 | 8 |
|
12 | 9 | from .conftest import project_name_fixture |
@@ -99,120 +96,6 @@ def test_get_variables_values(keys, values, types): |
99 | 96 | assert query.get_variables_values() == expected |
100 | 97 |
|
101 | 98 |
|
102 | | -class DummyConnection: |
103 | | - def __init__(self, responses): |
104 | | - self._responses = list(responses) |
105 | | - self.calls = [] |
106 | | - |
107 | | - def query_graphql(self, query_str, variables): |
108 | | - self.calls.append((query_str, dict(variables))) |
109 | | - response = self._responses.pop(0) |
110 | | - return SimpleNamespace(errors=None, data={"data": response}) |
111 | | - |
112 | | - |
113 | | -def _version_link_edges(count, prefix): |
114 | | - return [ |
115 | | - {"id": f"{prefix}-{idx}"} |
116 | | - for idx in range(count) |
117 | | - ] |
118 | | - |
119 | | - |
120 | | -def test_nested_edge_pagination_queries_one_parent_at_a_time(): |
121 | | - query = versions_graphql_query({"id", "links.id"}) |
122 | | - query.set_variable_value("projectName", "test_project") |
123 | | - |
124 | | - con = DummyConnection([ |
125 | | - { |
126 | | - "project": { |
127 | | - "versions": { |
128 | | - "edges": [{ |
129 | | - "cursor": "version-1", |
130 | | - "node": { |
131 | | - "id": "version-1", |
132 | | - "links": { |
133 | | - "edges": _version_link_edges(300, "link-a"), |
134 | | - "pageInfo": { |
135 | | - "endCursor": "link-page-1", |
136 | | - "hasNextPage": True, |
137 | | - } |
138 | | - } |
139 | | - } |
140 | | - }], |
141 | | - "pageInfo": { |
142 | | - "endCursor": "versions-page-1", |
143 | | - "hasNextPage": True, |
144 | | - } |
145 | | - } |
146 | | - } |
147 | | - }, |
148 | | - { |
149 | | - "project": { |
150 | | - "versions": { |
151 | | - "edges": [{ |
152 | | - "cursor": "version-1", |
153 | | - "node": { |
154 | | - "id": "version-1", |
155 | | - "links": { |
156 | | - "edges": _version_link_edges(1, "link-b"), |
157 | | - "pageInfo": { |
158 | | - "endCursor": "link-page-2", |
159 | | - "hasNextPage": False, |
160 | | - } |
161 | | - } |
162 | | - } |
163 | | - }], |
164 | | - "pageInfo": { |
165 | | - "endCursor": "versions-page-1", |
166 | | - "hasNextPage": True, |
167 | | - } |
168 | | - } |
169 | | - } |
170 | | - }, |
171 | | - { |
172 | | - "project": { |
173 | | - "versions": { |
174 | | - "edges": [{ |
175 | | - "cursor": "version-2", |
176 | | - "node": { |
177 | | - "id": "version-2", |
178 | | - "links": { |
179 | | - "edges": _version_link_edges(1, "link-c"), |
180 | | - "pageInfo": { |
181 | | - "endCursor": "link-page-3", |
182 | | - "hasNextPage": False, |
183 | | - } |
184 | | - } |
185 | | - } |
186 | | - }], |
187 | | - "pageInfo": { |
188 | | - "endCursor": "versions-page-2", |
189 | | - "hasNextPage": False, |
190 | | - } |
191 | | - } |
192 | | - } |
193 | | - } |
194 | | - ]) |
195 | | - |
196 | | - output = query.query(con) |
197 | | - |
198 | | - versions = output["project"]["versions"] |
199 | | - assert len(versions) == 2 |
200 | | - assert versions[0]["id"] == "version-1" |
201 | | - assert len(versions[0]["links"]) == 301 |
202 | | - assert versions[0]["links"][0]["id"] == "link-a-0" |
203 | | - assert versions[0]["links"][-1]["id"] == "link-b-0" |
204 | | - assert versions[1]["id"] == "version-2" |
205 | | - assert versions[1]["links"] == [{"id": "link-c-0"}] |
206 | | - |
207 | | - first_query, second_query, third_query = [ |
208 | | - query_str for query_str, _variables in con.calls |
209 | | - ] |
210 | | - assert "versions(first: 1)" in first_query |
211 | | - assert 'links(first: 300)' in first_query |
212 | | - assert 'links(first: 300, after: "link-page-1")' in second_query |
213 | | - assert 'versions(first: 1, after: "versions-page-1")' in third_query |
214 | | - |
215 | | - |
216 | 99 | """ |
217 | 100 | def test_filtering(empty_query): |
218 | 101 | assert empty_query._children == [] |
|
0 commit comments