diff --git a/requirements-swh.txt b/requirements-swh.txt --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -3,5 +3,5 @@ swh.model >= 0.3.0 swh.scheduler >= 0.1.1 swh.search >= 0.0.4 -swh.storage >= 0.2.0 +swh.storage >= 0.3.0 swh.vault >= 0.0.33 diff --git a/swh/web/tests/api/views/test_origin.py b/swh/web/tests/api/views/test_origin.py --- a/swh/web/tests/api/views/test_origin.py +++ b/swh/web/tests/api/views/test_origin.py @@ -7,7 +7,7 @@ import pytest from requests.utils import parse_header_links -from swh.model.model import Origin, OriginVisitStatus +from swh.model.model import Origin, OriginVisit, OriginVisitStatus from swh.storage.exc import StorageDBError, StorageAPIError from swh.storage.utils import now @@ -102,8 +102,16 @@ archive_data.origin_add_one(new_origin) for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( - new_origin.url, visit_date, type="git" - ) + [ + OriginVisit( + origin=new_origin.url, + date=visit_date, + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] archive_data.snapshot_add([new_snapshots[i]]) visit_status = OriginVisitStatus( origin=new_origin.url, @@ -150,8 +158,16 @@ archive_data.origin_add_one(new_origin) for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( - new_origin.url, visit_date, type="git" - ) + [ + OriginVisit( + origin=new_origin.url, + date=visit_date, + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] archive_data.snapshot_add([new_snapshots[i]]) visit_status = OriginVisitStatus( origin=new_origin.url, @@ -198,8 +214,16 @@ archive_data.origin_add_one(new_origin) for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( - new_origin.url, visit_date, type="git" - ) + [ + OriginVisit( + origin=new_origin.url, + date=visit_date, + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] visit_id = origin_visit.visit archive_data.snapshot_add([new_snapshots[i]]) visit_status = OriginVisitStatus( @@ -254,8 +278,16 @@ visit_ids = [] for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( - new_origin.url, visit_date, type="git" - ) + [ + OriginVisit( + origin=new_origin.url, + date=visit_date, + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] visit_ids.append(origin_visit.visit) archive_data.snapshot_add([new_snapshots[0]]) @@ -297,8 +329,16 @@ visit_ids = [] for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( - new_origin.url, visit_date, type="git" - ) + [ + OriginVisit( + origin=new_origin.url, + date=visit_date, + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] visit_ids.append(origin_visit.visit) archive_data.snapshot_add([new_snapshots[0]]) diff --git a/swh/web/tests/browse/views/test_origin.py b/swh/web/tests/browse/views/test_origin.py --- a/swh/web/tests/browse/views/test_origin.py +++ b/swh/web/tests/browse/views/test_origin.py @@ -16,7 +16,13 @@ from swh.model.hashutil import hash_to_bytes from swh.model.identifiers import CONTENT, DIRECTORY, RELEASE, REVISION, SNAPSHOT -from swh.model.model import Snapshot, SnapshotBranch, TargetType, OriginVisitStatus +from swh.model.model import ( + Snapshot, + SnapshotBranch, + TargetType, + OriginVisit, + OriginVisitStatus, +) from swh.web.browse.snapshot_context import process_snapshot_branches from swh.web.common.exc import NotFoundExc from swh.web.common.identifiers import get_swh_persistent_id @@ -503,7 +509,17 @@ } archive_data.snapshot_add([Snapshot.from_dict(snp_dict)]) - visit = archive_data.origin_visit_add(new_origin["url"], visit_dates[0], type="git") + visit = archive_data.origin_visit_add( + [ + OriginVisit( + origin=new_origin["url"], + date=visit_dates[0], + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] visit_status = OriginVisitStatus( origin=new_origin["url"], visit=visit.visit, @@ -538,7 +554,17 @@ } archive_data.snapshot_add([Snapshot.from_dict(snp_dict)]) - visit = archive_data.origin_visit_add(new_origin["url"], visit_dates[0], type="git") + visit = archive_data.origin_visit_add( + [ + OriginVisit( + origin=new_origin["url"], + date=visit_dates[0], + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] visit_status = OriginVisitStatus( origin=new_origin["url"], visit=visit.visit, @@ -786,7 +812,17 @@ ) new_origin = archive_data.origin_add([new_origin])[0] archive_data.snapshot_add([snapshot]) - visit = archive_data.origin_visit_add(new_origin["url"], now(), type="git") + visit = archive_data.origin_visit_add( + [ + OriginVisit( + origin=new_origin["url"], + date=now(), + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] visit_status = OriginVisitStatus( origin=new_origin["url"], visit=visit.visit, @@ -1267,7 +1303,17 @@ } new_origin = archive_data.origin_add([new_origin])[0] archive_data.snapshot_add([Snapshot.from_dict(snp_dict)]) - visit = archive_data.origin_visit_add(new_origin["url"], visit_dates[0], type="git") + visit = archive_data.origin_visit_add( + [ + OriginVisit( + origin=new_origin["url"], + date=visit_dates[0], + type="git", + status="ongoing", + snapshot=None, + ) + ] + )[0] visit_status = OriginVisitStatus( origin=new_origin["url"], visit=visit.visit, diff --git a/swh/web/tests/common/test_service.py b/swh/web/tests/common/test_service.py --- a/swh/web/tests/common/test_service.py +++ b/swh/web/tests/common/test_service.py @@ -13,7 +13,7 @@ from swh.model.hashutil import hash_to_bytes, hash_to_hex from swh.model.from_disk import DentryPerms from swh.model.identifiers import CONTENT, DIRECTORY, RELEASE, REVISION, SNAPSHOT -from swh.model.model import Directory, DirectoryEntry, Origin, Revision +from swh.model.model import Directory, DirectoryEntry, Origin, OriginVisit, Revision from swh.web.common import service from swh.web.common.exc import BadInputExc, NotFoundExc @@ -202,8 +202,19 @@ @given(new_origin(), visit_dates()) def test_lookup_origin_visits(archive_data, new_origin, visit_dates): archive_data.origin_add_one(new_origin) - for ts in visit_dates: - archive_data.origin_visit_add(new_origin.url, ts, type="git") + + archive_data.origin_visit_add( + [ + OriginVisit( + origin=new_origin.url, + date=ts, + type="git", + status="ongoing", + snapshot=None, + ) + for ts in visit_dates + ] + ) actual_origin_visits = list( service.lookup_origin_visits(new_origin.url, per_page=100) @@ -219,9 +230,18 @@ @given(new_origin(), visit_dates()) def test_lookup_origin_visit(archive_data, new_origin, visit_dates): archive_data.origin_add_one(new_origin) - visits = [] - for ts in visit_dates: - visits.append(archive_data.origin_visit_add(new_origin.url, ts, type="git")) + visits = archive_data.origin_visit_add( + [ + OriginVisit( + origin=new_origin.url, + date=ts, + type="git", + status="ongoing", + snapshot=None, + ) + for ts in visit_dates + ] + ) visit = random.choice(visits).visit actual_origin_visit = service.lookup_origin_visit(new_origin.url, visit) diff --git a/swh/web/tests/data.py b/swh/web/tests/data.py --- a/swh/web/tests/data.py +++ b/swh/web/tests/data.py @@ -15,7 +15,7 @@ from swh.indexer.storage import get_indexer_storage from swh.model.model import Content, OriginVisitStatus from swh.model.hashutil import hash_to_hex, hash_to_bytes, DEFAULT_ALGORITHMS -from swh.model.model import Directory, Origin +from swh.model.model import Directory, Origin, OriginVisit from swh.loader.git.from_disk import GitLoaderFromArchive from swh.search import get_search from swh.storage.algos.dir_iterators import dir_iterator @@ -120,19 +120,26 @@ "highlightjs-line-numbers.js.zip", "highlightjs-line-numbers.js_visit2.zip", ], - "visit_date": ["Dec 1 2018, 01:00 UTC", "Jan 20 2019, 15:00 UTC"], + "visit_date": [ + datetime.datetime(2018, 12, 1, 1, 0, 0, tzinfo=datetime.timezone.utc), + datetime.datetime(2019, 1, 20, 15, 0, 0, tzinfo=datetime.timezone.utc), + ], }, { "type": "git", "url": "https://github.com/memononen/libtess2", "archives": ["libtess2.zip"], - "visit_date": ["May 25 2018, 01:00 UTC"], + "visit_date": [ + datetime.datetime(2018, 5, 25, 1, 0, 0, tzinfo=datetime.timezone.utc), + ], }, { "type": "git", "url": "repo_with_submodules", "archives": ["repo_with_submodules.tgz"], - "visit_date": ["Jan 1 2019, 01:00 UTC"], + "visit_date": [ + datetime.datetime(2019, 1, 1, 1, 0, 0, tzinfo=datetime.timezone.utc), + ], }, ] @@ -194,7 +201,10 @@ storage.origin_add([Origin(url=url)]) search.origin_update([{"url": url, "has_visits": True}]) date = datetime.datetime(2019, 12, 3, 13, 55, 5, tzinfo=datetime.timezone.utc) - visit = storage.origin_visit_add(url, date, "tar") + visit = OriginVisit( + origin=url, date=date, type="tar", status="ongoing", snapshot=None + ) + visit = storage.origin_visit_add([visit])[0] visit_status = OriginVisitStatus( origin=url, visit=visit.visit,