Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/storage_tests.py
Show First 20 Lines • Show All 2,143 Lines • ▼ Show 20 Lines | def test_origin_visit_add(self, swh_storage, sample_data): | ||||
# add once | # add once | ||||
ov1, ov2 = swh_storage.origin_visit_add([visit1, visit2]) | ov1, ov2 = swh_storage.origin_visit_add([visit1, visit2]) | ||||
# then again (will be ignored as they already exist) | # then again (will be ignored as they already exist) | ||||
origin_visit1, origin_visit2 = swh_storage.origin_visit_add([ov1, ov2]) | origin_visit1, origin_visit2 = swh_storage.origin_visit_add([ov1, ov2]) | ||||
assert ov1 == origin_visit1 | assert ov1 == origin_visit1 | ||||
assert ov2 == origin_visit2 | assert ov2 == origin_visit2 | ||||
assert ov1.visit == 1 | |||||
assert ov2.visit == 2 | |||||
ovs1 = OriginVisitStatus( | ovs1 = OriginVisitStatus( | ||||
origin=ov1.origin, | origin=ov1.origin, | ||||
visit=ov1.visit, | visit=ov1.visit, | ||||
date=date_visit, | date=date_visit, | ||||
type=ov1.type, | type=ov1.type, | ||||
status="created", | status="created", | ||||
snapshot=None, | snapshot=None, | ||||
) | ) | ||||
Show All 17 Lines | def test_origin_visit_add(self, swh_storage, sample_data): | ||||
[("origin", origin1)] | [("origin", origin1)] | ||||
+ [("origin_visit", visit) for visit in expected_visits] * 2 | + [("origin_visit", visit) for visit in expected_visits] * 2 | ||||
+ [("origin_visit_status", ovs) for ovs in [ovs1, ovs2]] | + [("origin_visit_status", ovs) for ovs in [ovs1, ovs2]] | ||||
) | ) | ||||
for obj in expected_objects: | for obj in expected_objects: | ||||
assert obj in actual_objects | assert obj in actual_objects | ||||
def test_origin_visit_add_replayed(self, swh_storage, sample_data): | |||||
"""Tests adding a visit with an id makes sure the next id is higher""" | |||||
origin1 = sample_data.origins[1] | |||||
swh_storage.origin_add([origin1]) | |||||
date_visit = now() | |||||
date_visit2 = date_visit + datetime.timedelta(minutes=1) | |||||
date_visit = round_to_milliseconds(date_visit) | |||||
date_visit2 = round_to_milliseconds(date_visit2) | |||||
visit1 = OriginVisit( | |||||
origin=origin1.url, date=date_visit, type=sample_data.type_visit1, visit=42 | |||||
) | |||||
visit2 = OriginVisit( | |||||
origin=origin1.url, date=date_visit2, type=sample_data.type_visit2, | |||||
) | |||||
# add once | |||||
ov1, ov2 = swh_storage.origin_visit_add([visit1, visit2]) | |||||
# then again (will be ignored as they already exist) | |||||
origin_visit1, origin_visit2 = swh_storage.origin_visit_add([ov1, ov2]) | |||||
assert ov1 == origin_visit1 | |||||
assert ov2 == origin_visit2 | |||||
assert ov1.visit == 42 | |||||
assert ov2.visit == 43 | |||||
visit3 = OriginVisit( | |||||
origin=origin1.url, date=date_visit, type=sample_data.type_visit1, visit=12 | |||||
) | |||||
visit4 = OriginVisit( | |||||
origin=origin1.url, date=date_visit2, type=sample_data.type_visit2, | |||||
) | |||||
# add once | |||||
ov3, ov4 = swh_storage.origin_visit_add([visit3, visit4]) | |||||
# then again (will be ignored as they already exist) | |||||
origin_visit3, origin_visit4 = swh_storage.origin_visit_add([ov3, ov4]) | |||||
assert ov3 == origin_visit3 | |||||
assert ov4 == origin_visit4 | |||||
assert ov3.visit == 12 | |||||
assert ov4.visit == 44 | |||||
def test_origin_visit_add_validation(self, swh_storage, sample_data): | def test_origin_visit_add_validation(self, swh_storage, sample_data): | ||||
"""Unknown origin when adding visits should raise""" | """Unknown origin when adding visits should raise""" | ||||
visit = attr.evolve(sample_data.origin_visit, origin="something-unknonw") | visit = attr.evolve(sample_data.origin_visit, origin="something-unknonw") | ||||
with pytest.raises(StorageArgumentException, match="Unknown origin"): | with pytest.raises(StorageArgumentException, match="Unknown origin"): | ||||
swh_storage.origin_visit_add([visit]) | swh_storage.origin_visit_add([visit]) | ||||
objects = list(swh_storage.journal_writer.journal.objects) | objects = list(swh_storage.journal_writer.journal.objects) | ||||
assert not objects | assert not objects | ||||
▲ Show 20 Lines • Show All 2,355 Lines • Show Last 20 Lines |