diff --git a/swh/storage/tests/storage_testing.py b/swh/storage/tests/storage_testing.py index 95671a64..30ad6d5d 100644 --- a/swh/storage/tests/storage_testing.py +++ b/swh/storage/tests/storage_testing.py @@ -1,61 +1,61 @@ # Copyright (C) 2015-2017 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 os import tempfile from swh.storage import get_storage -from swh.core.tests.db_testing import SingleDbTestFixture +from swh.core.db.tests.db_testing import SingleDbTestFixture from swh.storage.tests import SQL_DIR class StorageTestFixture(SingleDbTestFixture): """Mix this in a test subject class to get Storage testing support. This fixture requires to come before SingleDbTestFixture in the inheritance list as it uses its methods to setup its own internal database. Usage example: class MyTestStorage(StorageTestFixture, unittest.TestCase): ... """ TEST_DB_NAME = 'softwareheritage-test-storage' TEST_DB_DUMP = os.path.join(SQL_DIR, '*.sql') def setUp(self): super().setUp() self.objtmp = tempfile.TemporaryDirectory() self.storage_config = { 'cls': 'local', 'args': { 'db': 'dbname=%s' % self.TEST_DB_NAME, 'objstorage': { 'cls': 'pathslicing', 'args': { 'root': self.objtmp.name, 'slicing': '0:1/1:5', }, }, 'journal_writer': { 'cls': 'inmemory', }, }, } self.storage = get_storage(**self.storage_config) self.journal_writer = self.storage.journal_writer def tearDown(self): self.objtmp.cleanup() self.storage = None super().tearDown() def reset_storage_tables(self): excluded = {'dbversion', 'tool'} self.reset_db_tables(self.TEST_DB_NAME, excluded=excluded) diff --git a/swh/storage/tests/test_db.py b/swh/storage/tests/test_db.py index 717890e0..cb0de06f 100644 --- a/swh/storage/tests/test_db.py +++ b/swh/storage/tests/test_db.py @@ -1,50 +1,50 @@ # Copyright (C) 2015-2017 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 os import unittest import pytest -from swh.core.tests.db_testing import SingleDbTestFixture +from swh.core.db.tests.db_testing import SingleDbTestFixture from swh.model.hashutil import hash_to_bytes from swh.storage.db import Db from . import SQL_DIR @pytest.mark.db class TestDb(SingleDbTestFixture, unittest.TestCase): TEST_DB_NAME = 'softwareheritage-test-storage' TEST_DB_DUMP = os.path.join(SQL_DIR, '*.sql') def setUp(self): super().setUp() self.db = Db(self.conn) def tearDown(self): self.db.conn.close() super().tearDown() def test_add_content(self): cur = self.cursor sha1 = hash_to_bytes('34973274ccef6ab4dfaaf86599792fa9c3fe4689') self.db.mktemp('content', cur) self.db.copy_to([{ 'sha1': sha1, 'sha1_git': hash_to_bytes( 'd81cc0710eb6cf9efd5b920a8453e1e07157b6cd'), 'sha256': hash_to_bytes( '673650f936cb3b0a2f93ce09d81be107' '48b1b203c19e8176b4eefc1964a0cf3a'), 'blake2s256': hash_to_bytes('69217a3079908094e11121d042354a7c' '1f55b6482ca1a51e1b250dfd1ed0eef9'), 'length': 3}], 'tmp_content', ['sha1', 'sha1_git', 'sha256', 'blake2s256', 'length'], cur) self.db.content_add_from_temp(cur) self.cursor.execute('SELECT sha1 FROM content WHERE sha1 = %s', (sha1,)) self.assertEqual(self.cursor.fetchone()[0], sha1)