swh:1:snp:eb70f1f85391e4b077c211bec36af0061c4bf937
Raw File
Tip revision: d35e739e9b5f46aa0aeafbc05f1065e4708a3b8c authored by Nicolas Dandrimont on 12 October 2017, 17:51:00 UTC
Make swh.storage.schemata work on SQLalchemy 1.0
Tip revision: d35e739
test_api_client.py
# Copyright (C) 2015-2016  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 unittest
import tempfile

from swh.storage.tests.test_storage import CommonTestStorage
from swh.storage.tests.server_testing import ServerTestFixture
from swh.storage.api.client import RemoteStorage
from swh.storage.api.server import app


class TestRemoteStorage(CommonTestStorage, ServerTestFixture,
                        unittest.TestCase):
    """Test the remote storage API.

    This class doesn't define any tests as we want identical
    functionality between local and remote storage. All the tests are
    therefore defined in AbstractTestStorage.
    """

    def setUp(self):
        # ServerTestFixture needs to have self.objroot for
        # setUp() method, but this field is defined in
        # AbstractTestStorage's setUp()
        # To avoid confusion, override the self.objroot to a
        # one choosen in this class.
        storage_base = tempfile.mkdtemp()
        self.config = {
            'storage': {
                'cls': 'local',
                'args': {
                    'db': 'dbname=%s' % self.TEST_STORAGE_DB_NAME,
                    'objstorage': {
                        'cls': 'pathslicing',
                        'args': {
                            'root': storage_base,
                            'slicing': '0:2/2:4/4:6',
                        },
                    },
                }
            }
        }
        self.app = app
        super().setUp()
        self.storage = RemoteStorage(self.url())
        self.objroot = storage_base
back to top