summaryrefslogtreecommitdiff
path: root/tests/test_configuration.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_configuration.py')
-rw-r--r--tests/test_configuration.py83
1 files changed, 53 insertions, 30 deletions
diff --git a/tests/test_configuration.py b/tests/test_configuration.py
index 9b306e5..3e0ad79 100644
--- a/tests/test_configuration.py
+++ b/tests/test_configuration.py
@@ -7,46 +7,69 @@ from pathlib import Path
from unittest.mock import Mock
from lsfg_vk.configuration import ConfigurationService
+from lsfg_vk.config_schema import ConfigurationManager
def test_parse_script_content():
- """Test parsing of script content"""
- mock_logger = Mock()
+ """Test parsing of script content with current environment variable format"""
- with tempfile.TemporaryDirectory() as temp_dir:
- temp_home = Path(temp_dir)
-
- # Create service with mocked home directory
- service = ConfigurationService(logger=mock_logger)
- service.user_home = temp_home
- service.lsfg_script_path = temp_home / "lsfg"
-
- # Test script content
- script_content = """#!/bin/bash
+ # Test script content matching current format
+ script_content = """#!/bin/bash
+# lsfg-vk launch script generated by decky-lossless-scaling-vk plugin
+# This script sets up the environment for lsfg-vk to work with the plugin configuration
+export PROTON_USE_WOW64=1
+export SteamDeck=0
+export DXVK_FRAME_RATE=18
+export LSFG_PROCESS=decky-lsfg-vk
+exec "$@"
+"""
+
+ script_values = ConfigurationManager.parse_script_content(script_content)
+
+ assert script_values["enable_wow64"] is True
+ assert script_values["disable_steamdeck_mode"] is True # SteamDeck=0 means disable
+ assert script_values["dxvk_frame_rate"] == 18
-export ENABLE_LSFG=1
-export LSFG_MULTIPLIER=3
-export LSFG_FLOW_SCALE=1.5
-export LSFG_HDR=1
-# export LSFG_PERF_MODE=1
-export MESA_VK_WSI_PRESENT_MODE=immediate # - disable vsync
+def test_parse_script_content_minimal():
+ """Test parsing when only required exports are present"""
+
+ script_content = """#!/bin/bash
+# lsfg-vk launch script generated by decky-lossless-scaling-vk plugin
+export LSFG_PROCESS=decky-lsfg-vk
exec "$@"
"""
-
- config = service._parse_script_content(script_content)
-
- assert config["enable_lsfg"] is True
- assert config["multiplier"] == 3
- assert config["flow_scale"] == 1.5
- assert config["hdr"] is True
- assert config["perf_mode"] is False # commented out
- assert config["immediate_mode"] is True
+
+ script_values = ConfigurationManager.parse_script_content(script_content)
+
+ # Should be empty dict since no tracked env vars are present
+ assert script_values == {}
-def test_parse_script_content_all_commented():
- """Test parsing when all optional features are commented out"""
- mock_logger = Mock()
+def test_merge_config_with_script():
+ """Test merging TOML config with script environment variables"""
+
+ # Get defaults
+ toml_config = ConfigurationManager.get_defaults()
+
+ # Script values from parsing
+ script_values = {
+ "enable_wow64": True,
+ "disable_steamdeck_mode": True,
+ "dxvk_frame_rate": 30
+ }
+
+ merged = ConfigurationManager.merge_config_with_script(toml_config, script_values)
+
+ # TOML fields should be preserved
+ assert merged["multiplier"] == 1 # default from TOML
+ assert merged["flow_scale"] == 0.8 # default from TOML
+ assert merged["performance_mode"] is True # default from TOML
+
+ # Script fields should be overlaid
+ assert merged["enable_wow64"] is True
+ assert merged["disable_steamdeck_mode"] is True
+ assert merged["dxvk_frame_rate"] == 30
with tempfile.TemporaryDirectory() as temp_dir:
temp_home = Path(temp_dir)