summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com>2025-07-19 19:40:51 -0400
committerGitHub <noreply@github.com>2025-07-19 19:40:51 -0400
commita7fb5ee69c8d74534f2994263558ddcd9c8c0d41 (patch)
tree17286b337ff3b780cd4189739426e8e5010cb493 /tests
parent3ce6ba534900e68c815b4012a456842d3003c6da (diff)
parentb03c82142b7258d0d876ac926e6025965722f7b5 (diff)
downloaddecky-lsfg-vk-a7fb5ee69c8d74534f2994263558ddcd9c8c0d41.tar.gz
decky-lsfg-vk-a7fb5ee69c8d74534f2994263558ddcd9c8c0d41.zip
Merge pull request #47 from xXJSONDeruloXx/unmount-env-state-fixv0.6.8v0.6.7
restore script env var val on mount check and UI state set
Diffstat (limited to 'tests')
-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)