Skip to content

Commit 1255a73

Browse files
committed
Fix truncation to 300 for get_versions_links due to shared cursor iterations
1 parent bdacb71 commit 1255a73

1 file changed

Lines changed: 0 additions & 117 deletions

File tree

tests/test_graphql_queries.py

Lines changed: 0 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
from types import SimpleNamespace
2-
31
import pytest
42

53
from ayon_api.graphql import GraphQlQuery
64
from ayon_api.graphql_queries import (
75
project_graphql_query,
86
folders_graphql_query,
9-
versions_graphql_query,
107
)
118

129
from .conftest import project_name_fixture
@@ -99,120 +96,6 @@ def test_get_variables_values(keys, values, types):
9996
assert query.get_variables_values() == expected
10097

10198

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-
21699
"""
217100
def test_filtering(empty_query):
218101
assert empty_query._children == []

0 commit comments

Comments
 (0)