Changeset View
Changeset View
Standalone View
Standalone View
swh/scheduler/tests/test_scheduler.py
Show First 20 Lines • Show All 821 Lines • ▼ Show 20 Lines | ) -> None: | ||||
# get all listed origins | # get all listed origins | ||||
ret = swh_scheduler.get_listed_origins( | ret = swh_scheduler.get_listed_origins( | ||||
enabled=None, limit=len(listed_origins_with_non_enabled) + 1 | enabled=None, limit=len(listed_origins_with_non_enabled) + 1 | ||||
) | ) | ||||
assert ret.next_page_token is None | assert ret.next_page_token is None | ||||
assert len(ret.results) == len(listed_origins_with_non_enabled) | assert len(ret.results) == len(listed_origins_with_non_enabled) | ||||
def _grab_next_visits_setup(self, swh_scheduler, listed_origins_by_type): | def _grab_next_visits_setup(self, swh_scheduler, listed_origins_by_type, limit=100): | ||||
"""Basic origins setup for scheduling policy tests""" | """Basic origins setup for scheduling policy tests""" | ||||
visit_type = next(iter(listed_origins_by_type)) | visit_type = next(iter(listed_origins_by_type)) | ||||
origins = listed_origins_by_type[visit_type][:100] | |||||
assert len(origins) > 0 | |||||
recorded_origins = swh_scheduler.record_listed_origins(origins) | all_origins = listed_origins_by_type[visit_type] | ||||
origins = all_origins[:limit] if limit else all_origins | |||||
assert len(origins) > 0 | |||||
return visit_type, recorded_origins | return visit_type, swh_scheduler.record_listed_origins(origins) | ||||
def _check_grab_next_visit_basic( | def _check_grab_next_visit_basic( | ||||
self, swh_scheduler, visit_type, policy, expected, **kwargs | self, swh_scheduler, visit_type, policy, expected, **kwargs | ||||
): | ): | ||||
"""Calls grab_next_visits with the passed policy, and check that: | """Calls grab_next_visits with the passed policy, and check that: | ||||
- all the origins returned are the expected ones (in the same order) | - all the origins returned are the expected ones (in the same order) | ||||
- no extra origins are returned | - no extra origins are returned | ||||
▲ Show 20 Lines • Show All 451 Lines • ▼ Show 20 Lines | def test_grab_next_visit_duplicates(self, swh_scheduler, listed_origins): | ||||
self._check_grab_next_visit( | self._check_grab_next_visit( | ||||
swh_scheduler, | swh_scheduler, | ||||
visit_type=origin1.visit_type, | visit_type=origin1.visit_type, | ||||
policy="never_visited_oldest_update_first", | policy="never_visited_oldest_update_first", | ||||
expected=expected_origins, | expected=expected_origins, | ||||
) | ) | ||||
def test_grab_next_visit_for_specific_lister( | |||||
self, swh_scheduler, listed_origins_by_type, stored_lister | |||||
): | |||||
"""Checks grab_next_visits filters on the given lister {name, instance name}""" | |||||
visit_type, origins = self._grab_next_visits_setup( | |||||
swh_scheduler, listed_origins_by_type, limit=None | |||||
) | |||||
expected_origins = [origin for origin in listed_origins_by_type[visit_type]] | |||||
ret = swh_scheduler.grab_next_visits( | |||||
visit_type=visit_type, | |||||
count=len(expected_origins), | |||||
policy="never_visited_oldest_update_first", | |||||
lister_name=stored_lister.name, | |||||
lister_instance_name=stored_lister.instance_name, | |||||
) | |||||
assert len(ret) == len(expected_origins) | |||||
for origin in ret: | |||||
assert origin.lister_id == stored_lister.id | |||||
def _create_task_types(self, scheduler): | def _create_task_types(self, scheduler): | ||||
for tt in TASK_TYPES.values(): | for tt in TASK_TYPES.values(): | ||||
scheduler.create_task_type(tt) | scheduler.create_task_type(tt) | ||||
def test_origin_visit_stats_get_empty(self, swh_scheduler) -> None: | def test_origin_visit_stats_get_empty(self, swh_scheduler) -> None: | ||||
assert swh_scheduler.origin_visit_stats_get([]) == [] | assert swh_scheduler.origin_visit_stats_get([]) == [] | ||||
def test_origin_visit_stats_get_pagination(self, swh_scheduler) -> None: | def test_origin_visit_stats_get_pagination(self, swh_scheduler) -> None: | ||||
▲ Show 20 Lines • Show All 278 Lines • Show Last 20 Lines |