trustgraph/tests/conftest.py

57 lines
1.6 KiB
Python
Raw Normal View History

"""
Global pytest configuration for all tests.
This conftest.py applies to all test directories.
"""
import pytest
# import asyncio
# import tracemalloc
# import warnings
import logging
from unittest.mock import MagicMock
# Uncomment the lines below to enable asyncio debug mode and tracemalloc
# for tracing unawaited coroutines and their creation points
# tracemalloc.start()
# asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy())
# warnings.simplefilter("always", ResourceWarning)
# warnings.simplefilter("always", RuntimeWarning)
@pytest.fixture(scope="session", autouse=True)
def mock_loki_handler(session_mocker=None):
"""
Mock LokiHandler to prevent connection attempts during tests.
This fixture runs once per test session and prevents the logging
module from trying to connect to a Loki server that doesn't exist
in the test environment.
"""
# Try to import logging_loki and mock it if available
try:
import logging_loki
# Create a mock LokiHandler that does nothing
original_loki_handler = logging_loki.LokiHandler
class MockLokiHandler(logging.Handler):
"""Mock LokiHandler that doesn't make network calls."""
def __init__(self, *args, **kwargs):
super().__init__()
def emit(self, record):
return
# Replace the real LokiHandler with our mock
logging_loki.LokiHandler = MockLokiHandler
yield
# Restore original after tests
logging_loki.LokiHandler = original_loki_handler
except ImportError:
# If logging_loki isn't installed, no need to mock
yield