fix(store): default store_path when config omits it (issue #53)
Release / release (push) Successful in 59s
Release / release (push) Successful in 59s
Fresh installs shipped a config template with no store_path key while collector.py demanded one via get_store_path() — every first collect crashed with KeyError 'store_path'. Resolve to the packaged default (/var/lib/fenris/observations.db) when absent, document the key in the template, and cover the fresh-install path with regression tests. Bump to 0.3.2.
This commit is contained in:
+12
-2
@@ -15,9 +15,19 @@ from typing import Optional
|
||||
SCHEMA_VERSION = 1
|
||||
|
||||
|
||||
# Packaged default placement (spec §8.3). The config may override it, but a
|
||||
# fresh install that sets only the device selector must collect cleanly.
|
||||
DEFAULT_STORE_PATH = Path("/var/lib/fenris/observations.db")
|
||||
|
||||
|
||||
def get_store_path(config: dict) -> Path:
|
||||
"""Get the store path from config."""
|
||||
return Path(config["store_path"])
|
||||
"""Get the store path from config.
|
||||
|
||||
Falls back to the packaged default when the config does not pin one,
|
||||
so a fresh install whose config holds only the device selector works
|
||||
instead of crashing with KeyError 'store_path' (issue #53).
|
||||
"""
|
||||
return Path(config.get("store_path", DEFAULT_STORE_PATH))
|
||||
|
||||
|
||||
def init_store(store_path: Path) -> sqlite3.Connection:
|
||||
|
||||
Reference in New Issue
Block a user