mirror of
https://github.com/LearningCircuit/local-deep-research.git
synced 2026-06-15 19:46:56 +03:00
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:
@@ -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
|
||||
|
||||
|
||||
|
||||
42
scripts/dev/regenerate_golden_master.py
Executable file
42
scripts/dev/regenerate_golden_master.py
Executable 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())
|
||||
Reference in New Issue
Block a user