Skip to content

Commit 32a8514

Browse files
committed
Return the total count in project_versions_page as well
1 parent 8d373fd commit 32a8514

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

mergin/client.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -732,12 +732,12 @@ def project_versions_page(self, project_path, page, per_page=100, descending=Fal
732732
:param descending: order of sorting
733733
:type descending: Bool
734734
735-
:rtype: List[Dict]
735+
:rtype: List[Dict], Int
736736
"""
737737
params = {"page": page, "per_page": per_page, "descending": descending}
738738
resp = self.get("/v1/project/versions/paginated/{}".format(project_path), params)
739739
resp_json = json.load(resp)
740-
return resp_json["versions"]
740+
return resp_json["versions"], resp_json["count"]
741741

742742
def project_versions_count(self, project_path):
743743
"""
@@ -786,15 +786,16 @@ def project_versions(self, project_path, since=1, to=None):
786786
start_page = math.ceil(num_since / per_page)
787787
if not num_to:
788788
# let's get first page and count
789-
versions = self.project_versions_page(project_path, start_page, per_page)
790-
num_to = self.project_versions_count(project_path)
789+
versions, num_to = self.project_versions_page(project_path, start_page, per_page)
790+
791791
latest_version = int_version(versions[-1]["name"])
792792
if latest_version < num_to:
793793
versions += self.project_versions(project_path, f"v{latest_version+1}", f"v{num_to}")
794794
else:
795795
end_page = math.ceil(num_to / per_page)
796796
for page in range(start_page, end_page + 1):
797-
versions += self.project_versions_page(project_path, page, per_page)
797+
page_versions, _ = self.project_versions_page(project_path, page, per_page)
798+
versions += page_versions
798799

799800
# filter out versions not within range
800801
filtered_versions = list(filter(lambda v: (num_since <= int_version(v["name"]) <= num_to), versions))

mergin/test/test_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2016,7 +2016,7 @@ def test_project_versions_list(mc):
20162016
versions_count = mc.project_versions_count(project)
20172017
assert versions_count == 5
20182018

2019-
versions = mc.project_versions_page(project, page=1, descending=True)
2019+
versions, _ = mc.project_versions_page(project, page=1, descending=True)
20202020
assert len(versions) == 5
20212021
assert versions[0]["name"] == "v5"
20222022
assert versions[-1]["name"] == "v1"

0 commit comments

Comments
 (0)