feat: add one-command golden master regeneration script (#2475)

Adds scripts/dev/regenerate_golden_master.py that regenerates the
golden master settings snapshot in a single command, replacing the
previous 3-step process (delete → pytest → stage).

Updates the pre-commit hook message to reference the new script.
This commit is contained in:
LearningCircuit
2026-02-28 15:45:04 +01:00
committed by GitHub
parent a2614b3dff
commit d93adba1cd
2 changed files with 44 additions and 7 deletions

View File

@@ -39,13 +39,8 @@ def main():
print(f" - {f}")
print()
print(" To regenerate the golden master:")
print(f" 1. Delete {golden_master}")
print(
" 2. Run: python -m pytest tests/settings/"
"test_settings_defaults_integrity.py::TestDefaultsIntegrity"
"::test_golden_master -xvs"
)
print(f" 3. Stage the updated {golden_master}")
print(" 1. Run: python scripts/dev/regenerate_golden_master.py")
print(f" 2. Stage the updated {golden_master}")
return 1

View File

@@ -0,0 +1,42 @@
#!/usr/bin/env python3
"""Regenerate the golden master settings snapshot.
Usage:
python scripts/dev/regenerate_golden_master.py
"""
import json
import sys
from pathlib import Path
# ---------------------------------------------------------------------------
# Resolve paths
# ---------------------------------------------------------------------------
PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent
SRC_DIR = PROJECT_ROOT / "src"
GOLDEN_MASTER_PATH = (
PROJECT_ROOT / "tests" / "settings" / "golden_master_settings.json"
)
# Ensure the package is importable
if str(SRC_DIR) not in sys.path:
sys.path.insert(0, str(SRC_DIR))
def main() -> int:
from local_deep_research.settings.manager import SettingsManager
manager = SettingsManager(db_session=None)
defaults = manager.default_settings
current = {key: dict(defaults[key]) for key in sorted(defaults.keys())}
output = json.dumps(current, indent=2, sort_keys=True, default=str) + "\n"
GOLDEN_MASTER_PATH.write_text(output, encoding="utf-8")
print(f"Wrote {len(current)} settings to {GOLDEN_MASTER_PATH}")
return 0
if __name__ == "__main__":
sys.exit(main())