test_github_backup_settings.py 1.2 KB

1234567891011121314151617181920212223242526272829
  1. """Git backups retain detection configuration without exporting credentials."""
  2. from backend.app.models.settings import Settings
  3. from backend.app.services.github_backup import GitHubBackupService
  4. from backend.app.services.secret_fields import SECRET_PLACEHOLDER
  5. async def test_settings_backup_excludes_credentials(db_session):
  6. public_settings = {
  7. "octoeverywhere_enabled": "true",
  8. "octoeverywhere_confidence": "high",
  9. "octoeverywhere_poll_interval": "20",
  10. }
  11. private_settings = {
  12. "octoeverywhere_api_key": "private-gadget-key",
  13. "bambu_cloud_token": "private-cloud-token",
  14. "auth_secret_key": "private-auth-key",
  15. "manyfold_client_secret": "private-manyfold-secret",
  16. }
  17. db_session.add_all([Settings(key=key, value=value) for key, value in (public_settings | private_settings).items()])
  18. await db_session.commit()
  19. files = {}
  20. await GitHubBackupService()._collect_settings(db_session, files)
  21. assert files["settings/app_settings.json"]["settings"] == public_settings | dict.fromkeys(
  22. private_settings, SECRET_PLACEHOLDER
  23. )
  24. assert all(value not in str(files) for value in private_settings.values())