launchpad, npm: Port code to updated swh-scheduler API

The oldest part of the scheduler API was updated to use model classes
(based on attr package) instead of dictionaries in order to improve
typing.
This commit is contained in:
Antoine Lambert 2024-05-03 13:52:02 +02:00
parent e51b808d72
commit aaae1a6b0b
4 changed files with 18 additions and 13 deletions

View file

@ -1,2 +1,4 @@
swh.core[db] >= 2.22.0
swh.scheduler >= 1.12.0
swh.scheduler >= 2.3.0

View file

@ -2,7 +2,7 @@ pandas
pytest >= 8.1
pytest-mock
requests_mock
swh-scheduler[testing]
swh-scheduler[testing] >= 2.3.0
types-beautifulsoup4
types-click
types-pyyaml

View file

@ -1,9 +1,9 @@
# Copyright (C) 2020 The Software Heritage developers
# Copyright (C) 2020-2024 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information
from datetime import datetime
from datetime import datetime, timedelta
import json
import os
from unittest.mock import patch
@ -11,6 +11,7 @@ from unittest.mock import patch
import pytest
from swh.lister import get_lister
from swh.scheduler.model import TaskType
@pytest.fixture
@ -45,12 +46,12 @@ def lister_launchpad(datadir, lister_db_url, engine, swh_scheduler):
lister = get_lister("launchpad", db_url=lister_db_url)
lister.scheduler.create_task_type(
{
"type": "load-git",
"description": "Load git repository",
"backend_name": "swh.loader.git.tasks.UpdateGitRepository",
"default_interval": "1 day",
}
TaskType(
type="load-git",
description="Load git repository",
backend_name="swh.loader.git.tasks.UpdateGitRepository",
default_interval=timedelta(days=1),
)
)
return lister

View file

@ -4,6 +4,8 @@
def register():
from datetime import timedelta
from .lister import NpmLister
return {
@ -11,9 +13,9 @@ def register():
"task_modules": ["%s.tasks" % __name__],
"task_types": {
"list-npm-full": {
"default_interval": "7 days",
"min_interval": "7 days",
"max_interval": "7 days",
"default_interval": timedelta(days=7),
"min_interval": timedelta(days=7),
"max_interval": timedelta(days=7),
},
},
}