diff --git a/swh/scheduler/backend.py b/swh/scheduler/backend.py --- a/swh/scheduler/backend.py +++ b/swh/scheduler/backend.py @@ -61,6 +61,10 @@ return self._db return BaseDb.from_pool(self._pool) + def put_db(self, db): + if db is not self._db: + db.put_conn() + task_type_keys = [ 'type', 'description', 'backend_name', 'default_interval', 'min_interval', 'max_interval', 'backoff_factor', 'max_queue_length', diff --git a/swh/scheduler/tests/test_scheduler.py b/swh/scheduler/tests/test_scheduler.py --- a/swh/scheduler/tests/test_scheduler.py +++ b/swh/scheduler/tests/test_scheduler.py @@ -371,11 +371,16 @@ self.assertCountEqual(ret, cur_tasks) def test_search_tasks(self): + def make_real_dicts(l): + """RealDictRow is not a real dict.""" + return [dict(d.items()) for d in l] self._create_task_types() t = utcnow() tasks = self._tasks_from_template(TEMPLATES['git'], t, 100) tasks = self.backend.create_tasks(tasks) - self.assertCountEqual(self.backend.search_tasks(), tasks) + self.assertCountEqual( + make_real_dicts(self.backend.search_tasks()), + make_real_dicts(tasks)) def test_filter_task_to_archive(self): """Filtering only list disabled recurring or completed oneshot tasks diff --git a/swh/scheduler/updater/backend.py b/swh/scheduler/updater/backend.py --- a/swh/scheduler/updater/backend.py +++ b/swh/scheduler/updater/backend.py @@ -40,6 +40,10 @@ return self._db return BaseDb.from_pool(self._pool) + def put_db(self, db): + if db is not self._db: + db.put_conn() + cache_put_keys = ['url', 'cnt', 'last_seen', 'origin_type'] @db_transaction()