Iproved logging for startup flags.

This commit is contained in:
Storm Dragon
2026-05-29 20:22:06 -04:00
parent f1a8e6af21
commit 3897b63068
3 changed files with 42 additions and 1 deletions
@@ -6,6 +6,7 @@
import inspect import inspect
import os import os
from argparse import Namespace
from configparser import ConfigParser from configparser import ConfigParser
from fenrirscreenreader.core import applicationManager from fenrirscreenreader.core import applicationManager
@@ -67,6 +68,15 @@ class SettingsManager:
def shutdown(self): def shutdown(self):
pass pass
def format_cli_args(self, cliArgs):
if cliArgs is None:
return "{}"
if isinstance(cliArgs, Namespace):
args = vars(cliArgs)
else:
args = vars(cliArgs) if hasattr(cliArgs, "__dict__") else {}
return str({key: args[key] for key in sorted(args)})
def get_binding_backup(self): def get_binding_backup(self):
return self.bindingsBackup.copy() return self.bindingsBackup.copy()
@@ -644,6 +654,11 @@ class SettingsManager:
) )
) )
environment["runtime"]["DebugManager"].initialize(environment) environment["runtime"]["DebugManager"].initialize(environment)
environment["runtime"]["DebugManager"].write_debug_out(
"Fenrir startup CLI arguments: " + self.format_cli_args(cliArgs),
debug.DebugLevel.INFO,
on_any_level=True,
)
if cliArgs.force_all_screens: if cliArgs.force_all_screens:
environment["runtime"]["force_all_screens"] = True environment["runtime"]["force_all_screens"] = True
+1 -1
View File
@@ -5,4 +5,4 @@
# By Chrys, Storm Dragon, and contributors. # By Chrys, Storm Dragon, and contributors.
version = "2026.05.29" version = "2026.05.29"
code_name = "master" code_name = "testing"
+26
View File
@@ -5,6 +5,8 @@ Tests the _validate_setting_value method to ensure proper input validation
for all configurable settings that could cause crashes or accessibility issues. for all configurable settings that could cause crashes or accessibility issues.
""" """
from argparse import Namespace
import pytest import pytest
import sys import sys
from pathlib import Path from pathlib import Path
@@ -206,6 +208,30 @@ def test_focus_settings_define_tui_toggle():
assert settings_data["focus"]["tui"] is False assert settings_data["focus"]["tui"] is False
@pytest.mark.unit
@pytest.mark.settings
def test_format_cli_args_reports_startup_flags_in_stable_order():
manager = SettingsManager()
cli_args = Namespace(
debug=True,
foreground=False,
force_all_screens=False,
ignore_screen=["7"],
options="speech#rate=1.2",
print=False,
setting="/tmp/settings.conf",
x11=True,
x11_window_id="0x123",
)
assert manager.format_cli_args(cli_args) == (
"{'debug': True, 'force_all_screens': False, 'foreground': False, "
"'ignore_screen': ['7'], 'options': 'speech#rate=1.2', "
"'print': False, 'setting': '/tmp/settings.conf', 'x11': True, "
"'x11_window_id': '0x123'}"
)
@pytest.mark.unit @pytest.mark.unit
@pytest.mark.settings @pytest.mark.settings
class TestSettingsPathSelection: class TestSettingsPathSelection: