From 03991fdea542f063314841515ed5e53d8d229a65 Mon Sep 17 00:00:00 2001 From: claudi Date: Fri, 20 Feb 2026 12:36:24 +0100 Subject: [PATCH] Update window title handling and ensure consistent version retrieval in configuration --- src/webdrop_bridge/config.py | 27 ++++++++++++++++++++------- tests/unit/test_config.py | 5 ++++- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/webdrop_bridge/config.py b/src/webdrop_bridge/config.py index fa2cb64..d744945 100644 --- a/src/webdrop_bridge/config.py +++ b/src/webdrop_bridge/config.py @@ -137,7 +137,22 @@ class Config: log_file = Config.get_default_log_path() app_name = data.get("app_name", "WebDrop Bridge") - window_title = data.get("window_title", f"{app_name} v{__version__}") + stored_window_title = data.get("window_title", "") + + # Regenerate default window titles on version upgrade + # If the stored title matches the pattern "{app_name} v{version}", regenerate it + # with the current version. This ensures the title updates automatically on upgrades. + import re + version_pattern = re.compile(rf"^{re.escape(app_name)}\s+v[\d.]+$") + if stored_window_title and version_pattern.match(stored_window_title): + # Detected a default-pattern title with old version, regenerate + window_title = f"{app_name} v{__version__}" + elif stored_window_title: + # Custom window title, keep it as-is + window_title = stored_window_title + else: + # No window title specified, use default + window_title = f"{app_name} v{__version__}" return cls( app_name=app_name, @@ -178,12 +193,10 @@ class Config: # Extract and validate configuration values app_name = os.getenv("APP_NAME", "WebDrop Bridge") - # Version comes from __init__.py (lazy import to avoid circular imports) - if not os.getenv("APP_VERSION"): - from webdrop_bridge import __version__ - app_version = __version__ - else: - app_version = os.getenv("APP_VERSION") + # Version always comes from __init__.py for consistency + from webdrop_bridge import __version__ + app_version = __version__ + log_level = os.getenv("LOG_LEVEL", "INFO").upper() log_file_str = os.getenv("LOG_FILE", None) allowed_roots_str = os.getenv("ALLOWED_ROOTS", "Z:/,C:/Users/Public") diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py index d20de67..fdeda3d 100644 --- a/tests/unit/test_config.py +++ b/tests/unit/test_config.py @@ -52,8 +52,11 @@ class TestConfigFromEnv: # Load config (env vars from file, not system) config = Config.from_env(str(env_file)) + # Version always comes from package __init__.py, not from APP_VERSION env var + from webdrop_bridge import __version__ + assert config.app_name == "TestApp" - assert config.app_version == "2.0.0" + assert config.app_version == __version__ # Uses package version, not env var assert config.log_level == "DEBUG" assert config.allowed_roots == [root1.resolve(), root2.resolve()] assert config.allowed_urls == ["example.com", "*.test.org"]