Skip to content

Commit

Permalink
test: implement basic unit tests for OrderByFieldBindingsMap
Browse files Browse the repository at this point in the history
  • Loading branch information
lu-pl committed Mar 5, 2025
1 parent 9251de9 commit 4bc0606
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions tests/unit/tests_utils/test_orderby_field_bindings_map.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
"""Basic unit tests for OrderableFieldsBindingsMap"""

from typing import Annotated

from pydantic import BaseModel
import pytest
from rdfproxy.utils._types import SPARQLBinding
from rdfproxy.utils.utils import OrderableFieldsBindingsMap


class ReallyDeeplyNestedModel(BaseModel):
c: Annotated[str, SPARQLBinding("C_ALIAS")]


class DeeplyNestedModel(BaseModel):
really_deeply_nested: ReallyDeeplyNestedModel
really_deeply_nested_list: list[ReallyDeeplyNestedModel]


class NestedModel(BaseModel):
b: Annotated[str, SPARQLBinding("B_ALIAS")]
deeply_nested: DeeplyNestedModel


class TopModel(BaseModel):
a: str
nested: NestedModel
nested_list: list[NestedModel]
nested_alias_list: Annotated[list[NestedModel], SPARQLBinding("NOT_ORDERABLE")]
some_list: list[int]


def test_basic_ordery_by_field_bindings_map():
mapping = OrderableFieldsBindingsMap(model=TopModel)

expected = {
"a": "a",
"NestedModel.b": "B_ALIAS",
"ReallyDeeplyNestedModel.c": "C_ALIAS",
}
assert mapping == expected


def test_sad_ordery_by_field_bindings_map():
mapping = OrderableFieldsBindingsMap(model=TopModel)

with pytest.raises(ValueError):
mapping["dne"]

0 comments on commit 4bc0606

Please sign in to comment.