Files
mcp-maildir/tests/conftest.py
T
OpenCode Cabillot 679d72288f
PR Checks / hadolint (pull_request) Successful in 18s
PR Checks / pytest (pull_request) Successful in 1m59s
Docker Build and Push / test (pull_request) Successful in 2m7s
Docker Build and Push / integration-test (pull_request) Successful in 2m14s
PR Checks / build-test (pull_request) Successful in 2m28s
Docker Build and Push / build (pull_request) Successful in 1m50s
test: fix collection name mismatch — env wiring centralized in conftest
Root cause of the CI 404s: test modules mutated os.environ at import time
(test_server.py set COLLECTION_NAME='test', test_integration.py
'test_mcp_maildir'). With pytest's alphabetical import order,
server.COLLECTION_NAME froze at whichever value was set when server was
first imported, while the fixture read os.environ at runtime — often a
different name (log proof: fixture created 'test', server queried
'test_mcp_maildir' → 404 on all 6 tests).

conftest.py now sets QDRANT_URL/COLLECTION_NAME/EMBEDDING_MODEL_NAME once,
before any test module import; env mutation removed from test files.
Unit suite still green (43 passed, 6 deselected).
2026-10-09 12:42:21 +00:00

16 lines
724 B
Python

"""Shared test configuration — sets env vars ONCE before any test module runs.
The env must be consistent for the whole pytest session: server.py freezes
COLLECTION_NAME/QDRANT_URL at import time, while the integration fixture
reads os.environ at fixture time. If any test module mutates os.environ after
that (test_server.py used to set COLLECTION_NAME='test'), the fixture creates
a different collection than the one server functions query → 404.
Keep all env wiring here so import order no longer matters.
"""
import os
os.environ.setdefault("QDRANT_URL", "http://localhost:6333")
os.environ.setdefault("COLLECTION_NAME", "test_mcp_maildir")
os.environ.setdefault("EMBEDDING_MODEL_NAME", "BAAI/bge-small-en-v1.5")