Skip to content

Commit d237eb3

Browse files
committed
fix(backend): add test for get_many with pagination
Signed-off-by: Fatih Acar <[email protected]>
1 parent 3a5a543 commit d237eb3

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

backend/tests/unit/core/test_manager_node.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import pytest
44
from infrahub_sdk.uuidt import UUIDT
55

6+
from infrahub import config
7+
from infrahub.constants.database import Neo4jRuntime
68
from infrahub.core.branch import Branch
79
from infrahub.core.initialization import create_branch
810
from infrahub.core.manager import NodeManager, identify_node_class
@@ -277,6 +279,39 @@ async def test_get_many(db: InfrahubDatabase, default_branch: Branch, criticalit
277279
assert len(nodes) == 2
278280

279281

282+
async def test_get_many_with_pagination(
283+
db: InfrahubDatabase,
284+
default_branch: Branch,
285+
criticality_schema: NodeSchema,
286+
criticality_low: Node,
287+
criticality_medium: Node,
288+
criticality_high: Node,
289+
):
290+
new_node_ids: list[str] = []
291+
for index in range(10):
292+
bulk_node = await Node.init(db=db, schema=criticality_schema, branch=default_branch)
293+
await bulk_node.new(db=db, name=f"bulk-{index}", level=index)
294+
await bulk_node.save(db=db)
295+
new_node_ids.append(bulk_node.id)
296+
297+
original_query_size_limit = config.SETTINGS.database.query_size_limit
298+
config.SETTINGS.database.query_size_limit = 1
299+
original_neo4j_runtime = db.default_neo4j_runtime
300+
db.default_neo4j_runtime = Neo4jRuntime.PARALLEL
301+
302+
try:
303+
target_ids = [criticality_low.id, criticality_medium.id, criticality_high.id, *new_node_ids]
304+
nodes = await NodeManager.get_many(db=db, ids=target_ids)
305+
finally:
306+
config.SETTINGS.database.query_size_limit = original_query_size_limit
307+
db.default_neo4j_runtime = original_neo4j_runtime
308+
309+
expected_ids = set(target_ids)
310+
assert set(nodes) == expected_ids
311+
assert len(nodes) == len(expected_ids)
312+
assert all(isinstance(nodes[node_id], Node) for node_id in expected_ids)
313+
314+
280315
async def test_get_many_prefetch(
281316
db: InfrahubDatabase, person_jack_tags_main, tag_blue_main, tag_red_main, branch: Branch
282317
):

0 commit comments

Comments
 (0)