File size: 1,033 Bytes
04a98a0
9c9bb30
 
 
04a98a0
 
9c9bb30
04a98a0
2da7d1d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""Test fixtures for Headroom Memory."""

from __future__ import annotations

# CRITICAL: Must be set before ANY imports that could trigger sentence_transformers
import os

os.environ["TOKENIZERS_PARALLELISM"] = "false"

import pytest

# Import httpx for type checking (will be available since it's a dependency)
try:
    import httpx

    HTTPX_AVAILABLE = True
except ImportError:
    HTTPX_AVAILABLE = False


@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_call(item):
    """Wrap test execution to catch httpx.ReadTimeout and skip instead of fail.

    This handles flaky network timeouts that occur when:
    - HuggingFace Hub is slow during model downloads (sentence-transformers)
    - External embedding APIs timeout
    - Network connectivity issues in CI
    """
    outcome = yield

    if HTTPX_AVAILABLE and outcome.excinfo is not None:
        exc_type, exc_value, exc_tb = outcome.excinfo
        if isinstance(exc_value, httpx.ReadTimeout):
            pytest.skip("Skipped due to network timeout (flaky CI)")