mempalace/tests
mvalentsev c4fdc1ed8c fix(init): normalize path comparison for sys.path strip (#1423)
Previous commit compared sys.path entries to PYTHONPATH tokens by
byte-exact string equality, which let leaks slip through on Windows
(case-insensitive paths) and across trailing-separator or whitespace
quirks (a leading or trailing space in PYTHONPATH would not match the
trimmed sys.path entry the interpreter actually populated).

Both sides of the comparison now run through os.path.normcase +
os.path.normpath so case differences and trailing separators no longer
defeat the filter, and PYTHONPATH tokens are trimmed before the
match.

Test extended to 6 parametrized cases (single, multi-path, trailing
separator, leading pathsep, empty, unset) with explicit ids and
stderr included in assertion diagnostics. Synthetic leak placeholder
replaces /tmp so the test is portable across CI runners.
2026-05-13 22:53:36 +05:00
..
benchmarks test(mcp): migrate _kg monkeypatches to _get_kg (#1136) 2026-05-03 17:43:00 +05:00
conftest.py Update conftest.py as part of fix(tests): isolate palace lock subprocess state 2026-05-09 11:20:33 +02:00
test_backends.py chore(tests): wrap sqlite3 connections in contextlib.closing 2026-05-09 20:25:47 -03:00
test_chroma_collection_lock.py fix(tests): use spawn instead of fork for lock-test subprocesses 2026-05-09 20:11:08 -03:00
test_claude_plugin_hook_wrappers.py test: normalize wrapper script path for bash on Windows 2026-04-19 10:34:11 +02:00
test_cli.py fix(mine): identify lock holder + exit non-zero on contention 2026-05-08 01:00:00 -03:00
test_closet_llm.py test(closet_llm): use _ for unused return values per copilot review 2026-05-07 12:49:27 -03:00
test_closets.py test(diary): write fixture with explicit utf-8 to fix Windows hash assert 2026-05-07 17:41:19 -03:00
test_collection_metric_invariant.py fix(test): use tmp_path for full-stack invariant test (Windows CI) 2026-04-25 00:39:37 -03:00
test_config.py fix(kg): tighten temporal handling and cleanup 2026-05-08 15:27:54 +00:00
test_config_extra.py test(config): make palace_path tests portable across POSIX and Windows 2026-04-24 11:13:51 +02:00
test_convo_miner.py feat(normalize): auto-rebuild stale drawers via NORMALIZE_VERSION schema gate 2026-04-13 16:20:55 -03:00
test_convo_miner_size_cap.py Raise convo_miner MAX_FILE_SIZE cap 10 MB → 500 MB 2026-04-18 12:52:01 -03:00
test_convo_miner_unit.py test: tidy embedding follow-up imports 2026-04-24 23:10:20 +00:00
test_convo_scanner.py fix(llm): tighter refinement — word boundaries, JSON extraction, authoritative sources 2026-04-24 01:30:40 -03:00
test_corpus_origin.py feat(init): context-aware corpus detection 2026-04-26 12:37:26 -07:00
test_corpus_origin_integration.py feat(privacy): blocking consent gate for env-fallback LLM API keys 2026-04-27 00:44:57 -07:00
test_dedup.py refactor: route all chromadb access through ChromaBackend 2026-04-14 00:31:16 -03:00
test_dialect.py fix: align cmd_compress dict keys with compression_stats() return values (#569) 2026-04-11 16:16:31 -07:00
test_embedding.py test: isolate embedding module state with monkeypatch 2026-04-24 23:11:29 +00:00
test_empty_chromadb_results.py fix(searcher): guard against empty ChromaDB query results (#195) (#865) 2026-04-15 00:26:38 -07:00
test_entity_detector.py feat(graph): cross-wing tunnels by shared topics (#1180) 2026-04-24 23:06:26 -03:00
test_entity_registry.py fix(entity_registry): atomic write to prevent partial corruption on crash 2026-05-04 11:08:14 +02:00
test_exporter.py fix(exporter): refuse symlinks at file targets and skip tests on Windows 2026-05-07 12:51:47 -03:00
test_fact_checker.py fix(cli, fact-checker): per-stream stdio errors policy on Windows 2026-05-03 21:37:12 +05:00
test_general_extractor.py style: format test files with ruff 2026-04-08 21:08:49 +03:00
test_hall_detection.py fix: README audit — 42 TDD tests + hall detection + 7 claim fixes (#835) 2026-04-13 17:11:11 -07:00
test_hnsw_capacity.py fix: use configured collection in recovery paths 2026-05-07 09:10:00 -03:00
test_hnsw_payload_health.py fix(storage): quarantine bloated HNSW link payloads 2026-05-04 06:45:29 +00:00
test_hooks_cli.py fix(hooks): per-target PID guard with atomic claim (#1212, #1206) 2026-05-08 02:09:00 -03:00
test_hooks_shell.py fix(hooks): MEMPAL_PYTHON override for .sh hooks' internal python3 calls 2026-04-21 01:43:08 -03:00
test_hybrid_candidate_union.py fix(searcher): address Copilot review on #1306 2026-05-03 06:09:10 -03:00
test_hybrid_search.py merge: pr/closet-llm-generic + harden LLM regen path for production 2026-04-13 18:40:36 -03:00
test_i18n.py Merge pull request #1051 from itfarrier/feat/i18n-belarusian 2026-04-21 01:09:54 -03:00
test_i18n_lang_case.py fix(i18n): resolve language codes case-insensitively (#927) 2026-04-15 23:33:42 +02:00
test_init.py fix(init): normalize path comparison for sys.path strip (#1423) 2026-05-13 22:53:36 +05:00
test_init_gitignore_protection.py fix(init): auto-add per-project files to .gitignore in git repos (#185) (#866) 2026-04-15 00:26:41 -07:00
test_instructions_cli.py fix: add explicit UTF-8 encoding to read_text() calls (#776) 2026-04-16 16:00:29 +05:00
test_kg_thread_safety.py fix: add missing self._lock to KnowledgeGraph.close() 2026-04-14 13:09:10 -07:00
test_knowledge_graph.py fix(kg): close sqlite connections during cleanup 2026-05-08 14:44:04 +00:00
test_knowledge_graph_extra.py test: bring coverage to 85%, set threshold to 85, reset version to 3.0.11 2026-04-08 21:38:12 +03:00
test_known_entities_registry.py feat(graph): cross-wing tunnels by shared topics (#1180) 2026-04-24 23:06:26 -03:00
test_layers.py fix: guard None metadata/doc in tool_check_duplicate and Layer1/Layer2 2026-04-19 11:13:50 +03:00
test_llm_client.py feat(privacy): blocking consent gate for env-fallback LLM API keys 2026-04-27 00:44:57 -07:00
test_llm_refine.py feat(graph): cross-wing tunnels by shared topics (#1180) 2026-04-24 23:06:26 -03:00
test_mcp_server.py Merge develop into main for v3.3.5 release 2026-05-10 01:05:36 -03:00
test_mcp_stdio_protection.py fix(mcp): redirect stdout to stderr during import to protect JSON-RPC channel (#225) (#864) 2026-04-15 00:26:51 -07:00
test_migrate.py fix(migrate): verify write roundtrip before bailout 2026-05-05 09:01:05 +00:00
test_miner.py Merge pull request #1004 from coogie/coogie/fix/miner-routing 2026-05-09 01:36:51 -03:00
test_miner_jsonl_visibility.py Harden sweeper for production: verbatim tool blocks, full session_id, logged failures 2026-04-18 13:14:32 -03:00
test_normalize.py fix(normalize): discard user/gemini turns before session_metadata sentinel 2026-04-27 21:41:48 +00:00
test_onboarding.py fix: add explicit UTF-8 encoding to read_text() calls (#776) 2026-04-16 16:00:29 +05:00
test_palace_graph.py fix(palace_graph): skip None metadata in build_graph 2026-04-25 11:06:32 -07:00
test_palace_graph_tunnels.py style: ruff format three test files 2026-04-28 22:18:22 -03:00
test_palace_locks.py Merge remote-tracking branch 'origin/develop' into pr-1417-fix-kg-datetimes 2026-05-09 21:12:40 -03:00
test_project_scanner.py feat(graph): cross-wing tunnels by shared topics (#1180) 2026-04-24 23:06:26 -03:00
test_query_sanitizer.py fix: make quote trimming explicit 2026-04-12 22:19:58 -03:00
test_readme_claims.py docs+tests: fix CI after README slim (#875) 2026-04-14 21:59:55 -03:00
test_repair.py test(repair): unit coverage for empty-metadata sanitization in _extract_drawers 2026-05-11 14:17:07 -07:00
test_room_detector_local.py fix: skip unreachable reparse points in detect_rooms_from_folders (#558) 2026-04-11 16:16:06 -07:00
test_save_hook_mines.py test(hooks): skip bash subprocess validator test on Windows 2026-04-27 02:45:04 -03:00
test_save_hook_verbose.py feat: add MEMPAL_VERBOSE toggle — developers see diaries in chat (#871) 2026-04-14 10:55:56 -07:00
test_searcher.py Merge develop into main for v3.3.5 release 2026-05-10 01:05:36 -03:00
test_sources.py chore(tests): wrap sqlite3 connections in contextlib.closing 2026-05-09 20:25:47 -03:00
test_spellcheck.py style: format test files with ruff 2026-04-08 21:08:49 +03:00
test_spellcheck_extra.py test: bring coverage to 85%, set threshold to 85, reset version to 3.0.11 2026-04-08 21:38:12 +03:00
test_split_mega_files.py test: expand coverage to 70%, fix mcp_server CI crash (threshold 60%) 2026-04-08 21:07:03 +03:00
test_sweeper.py Address Copilot review: cursor tie-break, honest metrics, accurate comments 2026-04-18 13:22:18 -03:00
test_sync.py fix(test_sync): use tmp_dir for elsewhere path so it stays absolute on Windows 2026-05-09 04:12:18 +05:00
test_version_consistency.py fix: unify package and MCP version reporting 2026-04-07 08:53:25 +01:00