Skip to content
Snippets Groups Projects
Commit 84a1f8b8 authored by Antoine Lambert's avatar Antoine Lambert
Browse files

backend: Remove no longer needed TemporarySchedulerBackend class

A memory backend was recently introduced so that temporary backend
relying on a postgresql server is no longer needed.
parent 76cccbc8
No related branches found
Tags v2.7.0
1 merge request!399backend: Remove no longer needed TemporarySchedulerBackend class
Pipeline #12369 passed
......@@ -38,7 +38,6 @@ testing = {file = [
[project.entry-points."swh.scheduler.classes"]
"postgresql" = "swh.scheduler.backend:SchedulerBackend"
"remote" = "swh.scheduler.api.client:RemoteScheduler"
"temporary" = "swh.scheduler.backend:TemporarySchedulerBackend"
"memory" = "swh.scheduler.in_memory:InMemoryScheduler"
[project.urls]
......
......@@ -14,11 +14,9 @@ from psycopg2.errors import CardinalityViolation
from psycopg2.extensions import AsIs
import psycopg2.extras
import psycopg2.pool
from testing.postgresql import Postgresql
from swh.core.db import BaseDb
from swh.core.db.common import db_transaction
from swh.core.db.db_utils import init_admin_extensions, populate_database_for_package
from swh.scheduler.model import (
Task,
TaskArguments,
......@@ -1311,20 +1309,3 @@ class SchedulerBackend:
cur.execute(query, tuple(where_args))
return [SchedulerMetrics(**row) for row in cur.fetchall()]
class TemporarySchedulerBackend(SchedulerBackend):
"""Temporary postgresql backend for the Software Heritage scheduling database.
A temporary scheduler database is spawned then removed when the backend
gets destroyed.
It can be used for testing SWH components that require a scheduler instance
(listers for instance).
"""
def __init__(self):
self.postgresql = Postgresql()
init_admin_extensions("swh.scheduler", self.postgresql.url())
populate_database_for_package("swh.scheduler", self.postgresql.url())
super().__init__(self.postgresql.url())
# Copyright (C) 2023 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
import pytest
from testing.postgresql import find_program
from .test_scheduler import TestScheduler as TestTemporaryScheduler # noqa: F401
def _has_initdb():
try:
find_program("initdb", ["bin"])
except RuntimeError:
return False
else:
return True
@pytest.fixture
def swh_scheduler_class():
return "temporary"
@pytest.fixture
def swh_scheduler_config():
return {}
pytestmark = pytest.mark.skipif(
not _has_initdb(), reason="initdb executable is missing"
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment