Skip to content

Commit 0a1b4fb

Browse files
ajtmccartyfatih-acar
authored andcommitted
add more ordering
1 parent d237eb3 commit 0a1b4fb

File tree

6 files changed

+29
-18
lines changed

6 files changed

+29
-18
lines changed

backend/infrahub/core/diff/query/artifact.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,4 +201,5 @@ async def query_init(self, db: InfrahubDatabase, **kwargs: Any) -> None: # noqa
201201
"target_checksum",
202202
"target_storage_id",
203203
]
204+
self.order_by = ["source_artifact.uuid", "target_node.uuid", "definition_node.uuid"]
204205
self.add_to_query(query=query)

backend/infrahub/core/diff/query/field_summary.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ async def query_init(self, db: InfrahubDatabase, **kwargs: Any) -> None: # noqa
6262
}
6363
"""
6464
self.add_to_query(query=query)
65+
self.order_by = ["kind"]
6566
self.return_labels = ["kind", "attr_names", "rel_names"]
6667

6768
async def get_field_summaries(self) -> list[NodeDiffFieldSummary]:

backend/infrahub/core/query/ipam.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,7 @@ async def query_init(self, db: InfrahubDatabase, **kwargs) -> None: # noqa: ARG
688688
"ip_address_attribute_kind": ADDRESS_ATTRIBUTE_LABEL,
689689
}
690690
self.add_to_query(get_new_children_query)
691+
self.order_by = ["ip_node.uuid"]
691692
self.return_labels = ["ip_node", "current_parent", "current_children", "new_parent", "new_children"]
692693

693694
def _get_uuid_from_query(self, node_name: str) -> str | None:

backend/infrahub/core/query/relationship.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,6 +1036,7 @@ async def query_init(self, db: InfrahubDatabase, **kwargs) -> None: # noqa: ARG
10361036
""" % {"branch_filter": branch_filter, "path": path}
10371037

10381038
self.add_to_query(query)
1039+
self.order_by = ["peer_node.uuid"]
10391040
self.return_labels = ["peer_node.uuid", "COUNT(peer_node.uuid) as nbr_peers"]
10401041

10411042
async def get_count_per_peer(self) -> dict[str, int]:

backend/tests/conftest.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
from infrahub import config
2424
from infrahub.config import load_and_exit
25+
from infrahub.constants.database import Neo4jRuntime
2526
from infrahub.core import registry
2627
from infrahub.core.branch import Branch
2728
from infrahub.core.constants import BranchSupportType, InfrahubKind, RelationshipCardinality, RelationshipDirection
@@ -169,6 +170,22 @@ async def do_default_branch(db: InfrahubDatabase) -> Branch:
169170
return branch
170171

171172

173+
@pytest.fixture
174+
def query_limit_of_one() -> Generator[None, None, None]:
175+
original_query_size_limit = config.SETTINGS.database.query_size_limit
176+
config.SETTINGS.database.query_size_limit = 1
177+
yield
178+
config.SETTINGS.database.query_size_limit = original_query_size_limit
179+
180+
181+
@pytest.fixture
182+
def neo4j_runtime_parallel(db: InfrahubDatabase) -> Generator[None, None, None]:
183+
original_neo4j_runtime = db.default_neo4j_runtime
184+
db.default_neo4j_runtime = Neo4jRuntime.PARALLEL
185+
yield
186+
db.default_neo4j_runtime = original_neo4j_runtime
187+
188+
172189
@pytest.fixture
173190
async def default_ipnamespace(db: InfrahubDatabase, register_core_models_schema) -> Node | None:
174191
if not registry._default_ipnamespace:

backend/tests/unit/core/test_manager_node.py

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

6-
from infrahub import config
7-
from infrahub.constants.database import Neo4jRuntime
86
from infrahub.core.branch import Branch
97
from infrahub.core.initialization import create_branch
108
from infrahub.core.manager import NodeManager, identify_node_class
@@ -286,6 +284,8 @@ async def test_get_many_with_pagination(
286284
criticality_low: Node,
287285
criticality_medium: Node,
288286
criticality_high: Node,
287+
query_limit_of_one: None,
288+
neo4j_runtime_parallel: None,
289289
):
290290
new_node_ids: list[str] = []
291291
for index in range(10):
@@ -294,22 +294,12 @@ async def test_get_many_with_pagination(
294294
await bulk_node.save(db=db)
295295
new_node_ids.append(bulk_node.id)
296296

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)
297+
target_ids = [criticality_low.id, criticality_medium.id, criticality_high.id, *new_node_ids]
298+
nodes = await NodeManager.get_many(db=db, ids=target_ids)
299+
300+
assert set(nodes) == set(target_ids)
301+
assert len(nodes) == len(target_ids)
302+
assert all(isinstance(nodes[node_id], Node) for node_id in target_ids)
313303

314304

315305
async def test_get_many_prefetch(

0 commit comments

Comments
 (0)