Source code for swh.objstorage.pytest_plugin
# Copyright (C) 2024 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 pytest
from swh.core.pytest_plugin import FakeSocket
from swh.objstorage.factory import get_objstorage
[docs]
@pytest.fixture
def swh_objstorage_config():
"""Fixture that returns a dictionary containing the configuration
required to instantiate an object storage.
Unless the fixture gets overridden, the configuration for creating an
object storage in memory is returned.
See :func:`swh.objstorage.factory.get_objstorage` for more details.
"""
return {"cls": "memory"}
[docs]
@pytest.fixture
def swh_objstorage(swh_objstorage_config):
"""Fixture that instantiates an object storage based on the configuration
returned by the ``swh_objstorage_config`` fixture.
"""
return get_objstorage(**swh_objstorage_config)
[docs]
@pytest.fixture
def statsd():
"""Simple fixture giving a Statsd instance suitable for tests
It will replace the `swh.core.statsd.statsd` instance with this one.
The Statsd instance uses a FakeSocket as `.socket` attribute in which one
can get the accumulated statsd messages in a deque in `.socket.payloads`.
"""
import swh.core.statsd
statsd = swh.core.statsd.Statsd()
statsd._socket = FakeSocket()
swh.core.statsd.statsd = statsd
yield statsd