diff --git a/debian/control b/debian/control --- a/debian/control +++ b/debian/control @@ -17,7 +17,7 @@ python3-swh.model (>= 0.0.18~), python3-swh.objstorage (>= 0.0.17~), python3-swh.scheduler (>= 0.0.11~), - python3-swh.storage (>= 0.0.92~), + python3-swh.storage (>= 0.0.100~), python3-vcversioner Standards-Version: 3.9.6 Homepage: https://forge.softwareheritage.org/diffusion/DVAU/ @@ -28,7 +28,7 @@ python3-swh.model (>= 0.0.18~), python3-swh.objstorage (>= 0.0.17~), python3-swh.scheduler (>= 0.0.11~), - python3-swh.storage (>= 0.0.92~), + python3-swh.storage (>= 0.0.100~), ${misc:Depends}, ${python3:Depends} Description: Software Heritage Vault diff --git a/requirements-swh.txt b/requirements-swh.txt --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -2,4 +2,4 @@ swh.model >= 0.0.18 swh.objstorage >= 0.0.17 swh.scheduler >= 0.0.11 -swh.storage >= 0.0.92 +swh.storage >= 0.0.100 diff --git a/swh/vault/tests/test_cookers.py b/swh/vault/tests/test_cookers.py --- a/swh/vault/tests/test_cookers.py +++ b/swh/vault/tests/test_cookers.py @@ -109,6 +109,10 @@ self.loader = GitLoader() self.loader.storage = self.storage + def tearDown(self): + self.loader = None + super().tearDown() + def load(self, repo_path): """Load a repository in the test storage""" self.loader.load('fake_origin', repo_path, datetime.datetime.now()) @@ -127,6 +131,7 @@ with tarfile.open(fileobj=cooker.fileobj, mode='r') as tar: tar.extractall(td) yield pathlib.Path(td) / hashutil.hash_to_hex(obj_id) + cooker.storage = None @contextlib.contextmanager def cook_stream_revision_gitfast(self, obj_id): @@ -140,6 +145,7 @@ cooker.fileobj.seek(0) fastexport_stream = gzip.GzipFile(fileobj=cooker.fileobj) yield fastexport_stream + cooker.storage = None @contextlib.contextmanager def cook_extract_revision_gitfast(self, obj_id): @@ -206,14 +212,13 @@ # FIXME: storage.content_update() should be changed to allow things # like that - cur = self.storage.db._cursor(None) - cur.execute("""update content set status = 'visible' - where sha1 = %s""", (id_1,)) - cur.execute("""update content set status = 'hidden' - where sha1 = %s""", (id_2,)) - cur.execute("""update content set status = 'absent' - where sha1 = %s""", (id_3,)) - cur.close() + with self.storage.get_db().transaction() as cur: + cur.execute("""update content set status = 'visible' + where sha1 = %s""", (id_1,)) + cur.execute("""update content set status = 'hidden' + where sha1 = %s""", (id_2,)) + cur.execute("""update content set status = 'absent' + where sha1 = %s""", (id_3,)) with self.cook_extract_directory(obj_id) as p: self.assertEqual((p / 'file').read_bytes(), b'test1') @@ -405,14 +410,13 @@ # FIXME: storage.content_update() should be changed to allow things # like that - cur = self.storage.db._cursor(None) - cur.execute("""update content set status = 'visible' - where sha1 = %s""", (id_1,)) - cur.execute("""update content set status = 'hidden' - where sha1 = %s""", (id_2,)) - cur.execute("""update content set status = 'absent' - where sha1 = %s""", (id_3,)) - cur.close() + with self.storage.get_db().transaction() as cur: + cur.execute("""update content set status = 'visible' + where sha1 = %s""", (id_1,)) + cur.execute("""update content set status = 'hidden' + where sha1 = %s""", (id_2,)) + cur.execute("""update content set status = 'absent' + where sha1 = %s""", (id_3,)) with self.cook_extract_revision_gitfast(obj_id) as (ert, p): ert.checkout(b'HEAD')