swh_scheduler = <swh.scheduler.backend.SchedulerBackend object at 0x7f95eddc5be0>
def test_journal_client_origin_visit_status_from_journal_last_uneventful(swh_scheduler):
visit_status = {
"origin": "foo",
"visit": 1,
"status": "full",
"date": DATE3 + ONE_DAY,
"type": "git",
"snapshot": hash_to_bytes("d81cc0710eb6cf9efd5b920a8453e1e07157b6cd"),
}
# Let's insert some visit stats with some previous visit information
swh_scheduler.origin_visit_stats_upsert(
[
OriginVisitStats(
url=visit_status["origin"],
visit_type=visit_status["type"],
last_eventful=DATE1,
last_uneventful=DATE3,
last_failed=DATE2,
last_notfound=DATE1,
last_snapshot=visit_status["snapshot"],
next_visit_queue_position=None,
next_position_offset=4,
successive_visits=1,
)
]
)
process_journal_objects(
{"origin_visit_status": [visit_status]}, scheduler=swh_scheduler
)
actual_origin_visit_stats = swh_scheduler.origin_visit_stats_get(
[(visit_status["origin"], visit_status["type"])]
)
assert_visit_stats_ok(
actual_origin_visit_stats,
[
OriginVisitStats(
url=visit_status["origin"],
visit_type=visit_status["type"],
last_eventful=DATE1,
last_uneventful=visit_status["date"], # most recent date but uneventful
last_failed=DATE2,
last_notfound=DATE1,
last_snapshot=visit_status["snapshot"],
next_position_offset=5, # uneventful so visit less often
> successive_visits=2,
)
],
)
.tox/py3/lib/python3.7/site-packages/swh/scheduler/tests/test_journal_client.py:437:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
actual_visit_stats = [OriginVisitStats(url='foo', visit_type='git', last_eventful=datetime.datetime(2021, 7, 6, 8, 31, 34, 245474, tzinfo=d...f\x9e\xfd[\x92\n\x84S\xe1\xe0qW\xb6\xcd', next_visit_queue_position=None, next_position_offset=4, successive_visits=1)]
expected_visit_stats = [OriginVisitStats(url='foo', visit_type='git', last_eventful=datetime.datetime(2021, 7, 6, 8, 31, 34, 245474, tzinfo=d...f\x9e\xfd[\x92\n\x84S\xe1\xe0qW\xb6\xcd', next_visit_queue_position=None, next_position_offset=5, successive_visits=2)]
compare_successive_visits = True
def assert_visit_stats_ok(
actual_visit_stats, expected_visit_stats, compare_successive_visits=True
):
"""Utility test function to ensure visits stats read from the backend are in the right
shape. The comparison on the next_visit_queue_position will be dealt with in
dedicated tests so it's not tested in tests that are calling this function.
"""
assert len(actual_visit_stats) == len(expected_visit_stats)
for visit_stats in actual_visit_stats:
visit_stats = attr.evolve(visit_stats, next_visit_queue_position=None)
if not compare_successive_visits:
visit_stats = attr.evolve(visit_stats, successive_visits=0)
> assert visit_stats in expected_visit_stats
E AssertionError: assert OriginVisitStats(url='foo', visit_type='git', last_eventful=datetime.datetime(2021, 7, 6, 8, 31, 34, 245474, tzinfo=da...cf\x9e\xfd[\x92\n\x84S\xe1\xe0qW\xb6\xcd', next_visit_queue_position=None, next_position_offset=4, successive_visits=1) in [OriginVisitStats(url='foo', visit_type='git', last_eventful=datetime.datetime(2021, 7, 6, 8, 31, 34, 245474, tzinfo=d...f\x9e\xfd[\x92\n\x84S\xe1\xe0qW\xb6\xcd', next_visit_queue_position=None, next_position_offset=5, successive_visits=2)]
.tox/py3/lib/python3.7/site-packages/swh/scheduler/tests/test_journal_client.py:151: AssertionError
TEST RESULT
TEST RESULT
- Run At
- Jul 8 2021, 10:32 AM