diff --git a/flamenco_worker/upstream_update_queue.py b/flamenco_worker/upstream_update_queue.py index c266da3fb265307d3ce13f4cd1fe5a98f6924013..26b35ef58a5bad012683c10dd63c02a504c13258 100644 --- a/flamenco_worker/upstream_update_queue.py +++ b/flamenco_worker/upstream_update_queue.py @@ -46,6 +46,8 @@ class TaskUpdateQueue: self._db.isolation_level = '' def _disconnect_db(self): + if self._db is None: + return self._log.info('Disconnecting from database %s', self.db_fname) self._db.close() self._db = None @@ -91,6 +93,8 @@ class TaskUpdateQueue: self._log.debug('Inspecting queued task updates.') await self.flush_and_catch(loop=loop) + + self._disconnect_db() self._log.warning('Stopping work loop') def _queue(self) -> typing.Iterable[typing.Tuple[int, str, object]]: diff --git a/tests/test_upstream_update_queue.py b/tests/test_upstream_update_queue.py index 6a7c894ebe65cd82c6c688081bb16729ed4b7d7c..8bea08a5d761cbe991971486aa0cb0428ee0125b 100644 --- a/tests/test_upstream_update_queue.py +++ b/tests/test_upstream_update_queue.py @@ -1,6 +1,7 @@ import asyncio import copy import datetime +import logging import tempfile from unittest.mock import Mock @@ -16,6 +17,8 @@ class TaskUpdateQueueTest(AbstractWorkerTest): from flamenco_worker.cli import construct_asyncio_loop from tests.mock_responses import CoroMock + logging.getLogger('flamenco_worker.upstream_update_queue').setLevel(logging.DEBUG) + self.asyncio_loop = construct_asyncio_loop() self.shutdown_future = self.asyncio_loop.create_future() @@ -31,6 +34,8 @@ class TaskUpdateQueueTest(AbstractWorkerTest): ) def tearDown(self): + self.tuqueue._disconnect_db() + super().tearDown() self.tmpdir.cleanup() def test_queue_push(self):