Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/test_retry.py
Show First 20 Lines • Show All 350 Lines • ▼ Show 20 Lines | def test_retrying_proxy_swh_storage_origin_visit_add(swh_storage, sample_data): | ||||
""" | """ | ||||
sample_origin = sample_data["origin"][0] | sample_origin = sample_data["origin"][0] | ||||
origin_url = swh_storage.origin_add_one(sample_origin) | origin_url = swh_storage.origin_add_one(sample_origin) | ||||
origin = list(swh_storage.origin_visit_get(origin_url)) | origin = list(swh_storage.origin_visit_get(origin_url)) | ||||
assert not origin | assert not origin | ||||
visit = OriginVisit( | visit = OriginVisit(origin=origin_url, date=date_visit1, type="hg") | ||||
origin=origin_url, date=date_visit1, type="hg", status="ongoing", snapshot=None | |||||
) | |||||
origin_visit = swh_storage.origin_visit_add([visit])[0] | origin_visit = swh_storage.origin_visit_add([visit])[0] | ||||
assert origin_visit.origin == origin_url | assert origin_visit.origin == origin_url | ||||
assert isinstance(origin_visit.visit, int) | assert isinstance(origin_visit.visit, int) | ||||
origin_visit = next(swh_storage.origin_visit_get(origin_url)) | origin_visit = next(swh_storage.origin_visit_get(origin_url)) | ||||
assert origin_visit["origin"] == origin_url | assert origin_visit["origin"] == origin_url | ||||
assert isinstance(origin_visit["visit"], int) | assert isinstance(origin_visit["visit"], int) | ||||
def test_retrying_proxy_swh_storage_origin_visit_add_retry( | def test_retrying_proxy_swh_storage_origin_visit_add_retry( | ||||
monkeypatch_sleep, swh_storage, sample_data, mocker, fake_hash_collision | monkeypatch_sleep, swh_storage, sample_data, mocker, fake_hash_collision | ||||
): | ): | ||||
"""Multiple retries for hash collision and psycopg2 error but finally ok | """Multiple retries for hash collision and psycopg2 error but finally ok | ||||
""" | """ | ||||
sample_origin = sample_data["origin"][1] | sample_origin = sample_data["origin"][1] | ||||
origin_url = swh_storage.origin_add_one(sample_origin) | origin_url = swh_storage.origin_add_one(sample_origin) | ||||
mock_memory = mocker.patch("swh.storage.in_memory.InMemoryStorage.origin_visit_add") | mock_memory = mocker.patch("swh.storage.in_memory.InMemoryStorage.origin_visit_add") | ||||
visit = OriginVisit( | visit = OriginVisit(origin=origin_url, date=date_visit1, type="git") | ||||
origin=origin_url, date=date_visit1, type="git", status="ongoing", snapshot=None | |||||
) | |||||
mock_memory.side_effect = [ | mock_memory.side_effect = [ | ||||
# first try goes ko | # first try goes ko | ||||
fake_hash_collision, | fake_hash_collision, | ||||
# second try goes ko | # second try goes ko | ||||
psycopg2.IntegrityError("origin already inserted"), | psycopg2.IntegrityError("origin already inserted"), | ||||
# ok then! | # ok then! | ||||
[visit], | [visit], | ||||
] | ] | ||||
Show All 19 Lines | ): | ||||
mock_memory.side_effect = StorageArgumentException("Refuse to add origin always!") | mock_memory.side_effect = StorageArgumentException("Refuse to add origin always!") | ||||
origin_url = sample_data["origin"][0]["url"] | origin_url = sample_data["origin"][0]["url"] | ||||
origin = list(swh_storage.origin_visit_get(origin_url)) | origin = list(swh_storage.origin_visit_get(origin_url)) | ||||
assert not origin | assert not origin | ||||
with pytest.raises(StorageArgumentException, match="Refuse to add"): | with pytest.raises(StorageArgumentException, match="Refuse to add"): | ||||
visit = OriginVisit( | visit = OriginVisit(origin=origin_url, date=date_visit1, type="svn",) | ||||
origin=origin_url, | |||||
date=date_visit1, | |||||
type="svn", | |||||
status="ongoing", | |||||
snapshot=None, | |||||
) | |||||
swh_storage.origin_visit_add([visit]) | swh_storage.origin_visit_add([visit]) | ||||
mock_memory.assert_has_calls( | mock_memory.assert_has_calls( | ||||
[call([visit]),] | [call([visit]),] | ||||
) | ) | ||||
def test_retrying_proxy_storage_metadata_fetcher_add(swh_storage, sample_data): | def test_retrying_proxy_storage_metadata_fetcher_add(swh_storage, sample_data): | ||||
▲ Show 20 Lines • Show All 540 Lines • Show Last 20 Lines |