Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9697778
D3647.id12838.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Subscribers
None
D3647.id12838.diff
View Options
diff --git a/swh/web/common/service.py b/swh/web/common/service.py
--- a/swh/web/common/service.py
+++ b/swh/web/common/service.py
@@ -12,6 +12,7 @@
from swh.model import hashutil
from swh.model.identifiers import CONTENT, DIRECTORY, RELEASE, REVISION, SNAPSHOT
+from swh.model.model import OriginVisit
from swh.storage.algos import diff, revisions_walker
from swh.storage.algos.origin import origin_get_latest_visit_status
from swh.storage.algos.snapshot import snapshot_get_latest
@@ -859,7 +860,7 @@
def _lookup_origin_visits(
origin_url: str, last_visit: Optional[int] = None, limit: int = 10
-) -> Iterator[Dict[str, Any]]:
+) -> Iterator[OriginVisit]:
"""Yields the origin origins' visits.
Args:
@@ -868,15 +869,19 @@
limit (int): Number of elements max to display
Yields:
- Dictionaries of origin_visit for that origin
+ OriginVisit for that origin
"""
limit = min(limit, MAX_LIMIT)
- for visit in storage.origin_visit_get(
- origin_url, last_visit=last_visit, limit=limit
- ):
- visit["origin"] = origin_url
- yield visit
+ page_token: Optional[str]
+ if last_visit is not None:
+ page_token = str(last_visit)
+ else:
+ page_token = None
+ visit_page = storage.origin_visit_get(
+ origin_url, page_token=page_token, limit=limit
+ )
+ yield from visit_page.results
def lookup_origin_visits(
@@ -891,10 +896,11 @@
Dictionaries of origin_visit for that origin
"""
- visits = _lookup_origin_visits(origin, last_visit=last_visit, limit=per_page)
- for visit in visits:
- visit_status = storage.origin_visit_status_get_latest(origin, visit["visit"])
- yield converters.from_origin_visit({**visit, **visit_status.to_dict()})
+ for visit in _lookup_origin_visits(origin, last_visit=last_visit, limit=per_page):
+ visit_status = storage.origin_visit_status_get_latest(origin, visit.visit)
+ yield converters.from_origin_visit(
+ {**visit_status.to_dict(), "type": visit.type}
+ )
def lookup_origin_visit_latest(
diff --git a/swh/web/tests/conftest.py b/swh/web/tests/conftest.py
--- a/swh/web/tests/conftest.py
+++ b/swh/web/tests/conftest.py
@@ -228,14 +228,25 @@
return [converters.from_origin(o.to_dict()) for o in origins]
def origin_visit_get(self, origin_url):
- visits = list(self.storage.origin_visit_get(origin_url))
- for i in range(len(visits)):
- visit_status = self.storage.origin_visit_status_get_latest(
- origin_url, visits[i]["visit"]
- )
- visits[i] = converters.from_origin_visit(
- {**visits[i], **visit_status.to_dict()}
+ next_page_token = None
+ visits = []
+ while True:
+ visit_page = self.storage.origin_visit_get(
+ origin_url, page_token=next_page_token
)
+ next_page_token = visit_page.next_page_token
+
+ for visit in visit_page.results:
+ visit_status = self.storage.origin_visit_status_get_latest(
+ origin_url, visit.visit
+ )
+ visits.append(
+ converters.from_origin_visit(
+ {**visit_status.to_dict(), "type": visit.type}
+ )
+ )
+ if not next_page_token:
+ break
return visits
def origin_visit_get_by(self, origin_url: str, visit_id: int) -> OriginVisitInfo:
diff --git a/swh/web/tests/strategies.py b/swh/web/tests/strategies.py
--- a/swh/web/tests/strategies.py
+++ b/swh/web/tests/strategies.py
@@ -264,9 +264,10 @@
"""
ret = []
tests_data = get_tests_data()
+ storage = tests_data["storage"]
for origin in tests_data["origins"]:
- visits = list(tests_data["storage"].origin_visit_get(origin["url"]))
- if len(visits) > 1:
+ visit_page = storage.origin_visit_get(origin["url"])
+ if len(visit_page.results) > 1:
ret.append(origin)
return sampled_from(ret)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Aug 18, 12:55 AM (3 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3216107
Attached To
D3647: service: Migrate to latest origin_visit_get api change
Event Timeline
Log In to Comment