Initial release: iai-mcp v0.1.0
Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: XNLLLLH <XNLLLLH@users.noreply.github.com>
This commit is contained in:
commit
f6b876fbe7
332 changed files with 97258 additions and 0 deletions
41
tests/conftest.py
Normal file
41
tests/conftest.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
"""Project-wide pytest fixtures for the IAI-MCP test suite.
|
||||
|
||||
Phase 07.10 (file-based crypto key migration) removed the keyring backend
|
||||
from `iai_mcp.crypto.CryptoKey.get_or_create()`. Pre-existing tests that
|
||||
exercised the daemon, store, events, recall, and CLI paths relied on the
|
||||
keyring auto-fallback to source the encryption key in test environments.
|
||||
After Phase 07.10, the runtime path is **file → passphrase env → error**
|
||||
with no keyring fallback, so those tests now hit `CryptoKeyError` unless
|
||||
either the file or the passphrase is set.
|
||||
|
||||
This module's autouse fixture sets `IAI_MCP_CRYPTO_PASSPHRASE` to a fixed
|
||||
test passphrase for every test session, restoring the deterministic
|
||||
`derive_key_from_passphrase(...)` path that the test suite expects.
|
||||
Production behavior is unaffected — the production daemon never sets
|
||||
this env var and instead reads the 32-byte file at `{IAI_MCP_STORE}/.crypto.key`
|
||||
written by `iai-mcp crypto migrate-to-file` or `iai-mcp crypto init`.
|
||||
|
||||
The dedicated file-backend tests in `tests/test_crypto_file_backend.py`
|
||||
override this fixture per-test by clearing the env var or by writing an
|
||||
explicit `.crypto.key` file in their `tmp_path` fixtures.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
_TEST_PASSPHRASE = "iai-mcp-test-passphrase-2026-04-30-phase-07.10"
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _crypto_passphrase_env(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
"""Set IAI_MCP_CRYPTO_PASSPHRASE for every test unless already set.
|
||||
|
||||
Tests that need to assert the absent-passphrase / missing-key error
|
||||
path can still call `monkeypatch.delenv("IAI_MCP_CRYPTO_PASSPHRASE",
|
||||
raising=False)` inside the test body to override this default.
|
||||
"""
|
||||
if "IAI_MCP_CRYPTO_PASSPHRASE" not in os.environ:
|
||||
monkeypatch.setenv("IAI_MCP_CRYPTO_PASSPHRASE", _TEST_PASSPHRASE)
|
||||
Loading…
Add table
Add a link
Reference in a new issue