From aed627ec2ad1059f69403edf5c0baec29f1ceecc Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 3 Dec 2025 16:18:02 -0500 Subject: [PATCH 1/2] Discovered through much pain that echo mode 2 and capslock as fenrir key are incompatible. Documented in settings file. --- config/settings/settings.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/settings/settings.conf b/config/settings/settings.conf index d4376329..f149e4ea 100644 --- a/config/settings/settings.conf +++ b/config/settings/settings.conf @@ -110,7 +110,7 @@ keyboardLayout=desktop # echo chars while typing. # 0 = None # 1 = always -# 2 = only while capslock +# 2 = only while capslock (not compatible with capslock as fenrir key) charEchoMode=1 # echo deleted chars charDeleteEcho=True From f0bbcb8a38f4b61d474b8fef079a8ffa40cab35a Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 3 Dec 2025 16:25:22 -0500 Subject: [PATCH 2/2] Updated settings file to document that capslock as fenrir key and echo mode 2 are incompatible. --- pytest.ini | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 pytest.ini diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 00000000..cec3f90c --- /dev/null +++ b/pytest.ini @@ -0,0 +1,69 @@ +[pytest] +# Pytest configuration for Fenrir screen reader + +# Test discovery patterns +python_files = test_*.py *_test.py +python_classes = Test* +python_functions = test_* + +# Test paths +testpaths = tests + +# Minimum Python version +minversion = 3.7 + +# Output options +addopts = + # Verbose output with test names + -v + # Show extra test summary info + -ra + # Enable strict markers (only registered markers allowed) + --strict-markers + # Show local variables in tracebacks + --showlocals + # Warnings configuration + -W ignore::DeprecationWarning + # Optional plugins (uncomment if installed): + # --timeout=30 # Requires pytest-timeout + # --cov-report=term-missing # Requires pytest-cov + # -x # Stop on first failure + +# Register custom markers +markers = + unit: Unit tests (fast, no mocking) + integration: Integration tests (require mocking) + driver: Driver tests (require root access) + slow: Tests that take more than 1 second + remote: Tests for remote control functionality + settings: Tests for settings and configuration + commands: Tests for command system + vmenu: Tests for VMenu system + +# Coverage configuration +[coverage:run] +source = src/fenrirscreenreader +omit = + */tests/* + */vmenu-profiles/* + */__pycache__/* + */site-packages/* + +[coverage:report] +# Fail if coverage falls below this percentage +# fail_under = 70 +exclude_lines = + # Standard pragma + pragma: no cover + # Don't complain about missing debug code + def __repr__ + # Don't complain if tests don't hit defensive assertion code + raise AssertionError + raise NotImplementedError + # Don't complain about abstract methods + @abstractmethod + # Don't complain about initialization + if __name__ == .__main__.: + +[coverage:html] +directory = htmlcov