35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
"""Skip live glue checks when the VictoriaMetrics endpoint is unavailable."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import socket
|
|
from urllib.parse import urlparse
|
|
|
|
import pytest
|
|
|
|
|
|
def _endpoint_available() -> bool:
|
|
"""Return whether the configured VictoriaMetrics host resolves locally."""
|
|
vm_url = os.environ.get("VM_URL", "http://victoria-metrics-single-server:8428").rstrip("/")
|
|
parsed = urlparse(vm_url)
|
|
host = parsed.hostname
|
|
port = parsed.port or (443 if parsed.scheme == "https" else 80)
|
|
if not host:
|
|
return False
|
|
try:
|
|
socket.getaddrinfo(host, port)
|
|
except socket.gaierror:
|
|
return False
|
|
return True
|
|
|
|
|
|
def pytest_collection_modifyitems(config: pytest.Config, items: list[pytest.Item]) -> None:
|
|
"""Mark glue tests skipped when the VictoriaMetrics host cannot resolve."""
|
|
del config
|
|
if _endpoint_available():
|
|
return
|
|
skip_marker = pytest.mark.skip(reason="VictoriaMetrics endpoint is not reachable in this workspace")
|
|
for item in items:
|
|
item.add_marker(skip_marker)
|