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.py190
1 files changed, 0 insertions, 190 deletions
diff --git a/tests/test_configuration.py b/tests/test_configuration.py
deleted file mode 100644
index 3e0ad79..0000000
--- a/tests/test_configuration.py
+++ /dev/null
@@ -1,190 +0,0 @@
-"""
-Tests for the configuration service.
-"""
-
-import tempfile
-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 with current environment variable format"""
-
- # 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
-
-
-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 "$@"
-"""
-
- script_values = ConfigurationManager.parse_script_content(script_content)
-
- # Should be empty dict since no tracked env vars are present
- assert script_values == {}
-
-
-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)
-
- service = ConfigurationService(logger=mock_logger)
- service.user_home = temp_home
- service.lsfg_script_path = temp_home / "lsfg"
-
- script_content = """#!/bin/bash
-
-# export ENABLE_LSFG=1
-export LSFG_MULTIPLIER=2
-export LSFG_FLOW_SCALE=1.0
-# export LSFG_HDR=1
-# export LSFG_PERF_MODE=1
-# export MESA_VK_WSI_PRESENT_MODE=immediate # - disable vsync
-
-exec "$@"
-"""
-
- config = service._parse_script_content(script_content)
-
- assert config["enable_lsfg"] is False
- assert config["multiplier"] == 2
- assert config["flow_scale"] == 1.0
- assert config["hdr"] is False
- assert config["perf_mode"] is False
- assert config["immediate_mode"] is False
-
-
-def test_generate_script_content():
- """Test script content generation"""
- mock_logger = Mock()
-
- with tempfile.TemporaryDirectory() as temp_dir:
- temp_home = Path(temp_dir)
-
- service = ConfigurationService(logger=mock_logger)
- service.user_home = temp_home
- service.lsfg_script_path = temp_home / "lsfg"
-
- # Test with no toggles enabled
- config = {
- "enable_wow64": False,
- "disable_steamdeck_mode": False
- }
- content = service._generate_script_content(config)
-
- assert "#!/bin/bash" in content
- assert "export LSFG_PROCESS=decky-lsfg-vk" in content
- assert "export PROTON_USE_WOW64=1" not in content
- assert "export SteamDeck=0" not in content
- assert 'exec "$@"' in content
-
- # Test with both toggles enabled
- config = {
- "enable_wow64": True,
- "disable_steamdeck_mode": True
- }
- content = service._generate_script_content(config)
-
- assert "#!/bin/bash" in content
- assert "export PROTON_USE_WOW64=1" in content
- assert "export SteamDeck=0" in content
- assert "export LSFG_PROCESS=decky-lsfg-vk" in content
- assert 'exec "$@"' in content
-
-
-def test_config_roundtrip():
- """Test that we can write config and read it back correctly"""
- mock_logger = Mock()
-
- with tempfile.TemporaryDirectory() as temp_dir:
- temp_home = Path(temp_dir)
-
- service = ConfigurationService(logger=mock_logger)
- service.user_home = temp_home
- service.lsfg_script_path = temp_home / "lsfg"
-
- # Update config
- result = service.update_config(
- dll="/path/to/dll",
- multiplier=3,
- flow_scale=1.5,
- performance_mode=False,
- hdr_mode=True,
- experimental_present_mode="immediate",
- dxvk_frame_rate=30,
- enable_wow64=True,
- disable_steamdeck_mode=False
- )
-
- assert result["success"] is True
-
- # Read it back
- read_result = service.get_config()
-
- assert read_result["success"] is True
- config = read_result["config"]
- assert config["dll"] == "/path/to/dll"
- assert config["multiplier"] == 3
- assert config["flow_scale"] == 1.5
- assert config["performance_mode"] is False
- assert config["hdr_mode"] is True
- assert config["experimental_present_mode"] == "immediate"
- assert config["dxvk_frame_rate"] == 30
- assert config["enable_wow64"] is True
- assert config["disable_steamdeck_mode"] is False
-
- assert read_result["success"] is True
- config = read_result["config"]
-
- 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
- assert config["immediate_mode"] is True