Files
docker-seafile-client/tests/conftest.py
T

39 lines
1.0 KiB
Python
Raw Normal View History

"""Make ``dsc.client`` importable outside the container.
``seafile`` and ``pysearpc`` ship with the Seafile CLI AppImage and only exist
inside the image. The application tests must not need a live server or that
AppImage, so a stub module stands in for the RPC client.
"""
import sys
import types
from unittest import mock
import pytest
def _install_seafile_stub():
if "seafile" in sys.modules:
return
seafile = types.ModuleType("seafile")
seafile.RpcClient = mock.MagicMock(name="RpcClient")
sys.modules["seafile"] = seafile
_install_seafile_stub()
@pytest.fixture(autouse=True)
def no_network(monkeypatch):
"""
Fail loudly instead of reaching the network.
The client retries failed requests with backoff, so a test that
accidentally makes a real request appears to hang rather than fail.
"""
import requests
def blocked(self, method, url, *args, **kwargs):
raise AssertionError(f"Test attempted a real request: {method} {url}")
monkeypatch.setattr(requests.Session, "request", blocked)