Skip to content

Commit eb79621

Browse files
committed
fix: missing sort for list storage boxes
1 parent 3fe4968 commit eb79621

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

hcloud/storage_boxes/client.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,7 @@ def get_list(
698698
self,
699699
name: str | None = None,
700700
label_selector: str | None = None,
701+
sort: list[str] | None = None,
701702
page: int | None = None,
702703
per_page: int | None = None,
703704
) -> StorageBoxesPageResult:
@@ -708,6 +709,7 @@ def get_list(
708709
709710
:param name: Name of the Storage Box.
710711
:param label_selector: Filter resources by labels. The response will only contain resources matching the label selector.
712+
:param sort: Sort resources by field and direction.
711713
:param page: Page number to return.
712714
:param per_page: Maximum number of entries returned per page.
713715
"""
@@ -720,6 +722,8 @@ def get_list(
720722
params["page"] = page
721723
if per_page is not None:
722724
params["per_page"] = per_page
725+
if sort is not None:
726+
params["sort"] = sort
723727

724728
response = self._client.request(
725729
method="GET",
@@ -735,6 +739,7 @@ def get_all(
735739
self,
736740
name: str | None = None,
737741
label_selector: str | None = None,
742+
sort: list[str] | None = None,
738743
) -> list[BoundStorageBox]:
739744
"""
740745
Returns all Storage Boxes.
@@ -743,11 +748,13 @@ def get_all(
743748
744749
:param name: Name of the Storage Box.
745750
:param label_selector: Filter resources by labels. The response will only contain resources matching the label selector.
751+
:param sort: Sort resources by field and direction.
746752
"""
747753
return self._iter_pages(
748754
self.get_list,
749755
name=name,
750756
label_selector=label_selector,
757+
sort=sort,
751758
)
752759

753760
def create(

tests/unit/storage_boxes/test_client.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,10 @@ def test_get_by_id(
266266
@pytest.mark.parametrize(
267267
"params",
268268
[
269-
{"name": "storage-box1", "page": 1, "per_page": 10},
269+
{"name": "storage-box1"},
270+
{"label_selector": "key=value"},
271+
{"page": 1, "per_page": 10},
272+
{"sort": ["id:asc"]},
270273
{},
271274
],
272275
)
@@ -305,7 +308,9 @@ def test_get_list(
305308
@pytest.mark.parametrize(
306309
"params",
307310
[
308-
{"name": "bx11"},
311+
{"name": "storage-box1"},
312+
{"label_selector": "key=value"},
313+
{"sort": ["id:asc"]},
309314
{},
310315
],
311316
)
@@ -662,6 +667,10 @@ def test_get_snapshot_by_id(
662667
"params",
663668
[
664669
{"name": "storage-box-snapshot1"},
670+
{"is_automatic": True},
671+
{"label_selector": "key=value"},
672+
# {"page": 1, "per_page": 10} # No pagination
673+
{"sort": ["id:asc"]},
665674
{},
666675
],
667676
)
@@ -707,6 +716,9 @@ def test_get_snapshot_list(
707716
"params",
708717
[
709718
{"name": "storage-box-snapshot1"},
719+
{"is_automatic": True},
720+
{"label_selector": "key=value"},
721+
{"sort": ["id:asc"]},
710722
{},
711723
],
712724
)
@@ -876,6 +888,9 @@ def test_get_subaccount_by_id(
876888
"params",
877889
[
878890
{"username": "u42-sub1"},
891+
{"label_selector": "key=value"},
892+
# {"page": 1, "per_page": 10} # No pagination
893+
{"sort": ["id:asc"]},
879894
{},
880895
],
881896
)
@@ -921,6 +936,8 @@ def test_get_subaccount_list(
921936
"params",
922937
[
923938
{"username": "u42-sub1"},
939+
{"label_selector": "key=value"},
940+
{"sort": ["id:asc"]},
924941
{},
925942
],
926943
)

0 commit comments

Comments
 (0)