108 lines
3.7 KiB
Python
108 lines
3.7 KiB
Python
import os
|
|
import tempfile
|
|
import unittest
|
|
from unittest import mock
|
|
|
|
import setup_tool_dynamic
|
|
import setup_tool_responsive
|
|
|
|
|
|
class _Var:
|
|
def __init__(self, value):
|
|
self.value = value
|
|
|
|
def get(self):
|
|
return self.value
|
|
|
|
|
|
class FarclipConfigSyncTests(unittest.TestCase):
|
|
def _tool(self, farclip=777):
|
|
tool = object.__new__(setup_tool_responsive.ResponsiveModernWowSetupTool)
|
|
tool.vt_farclip = _Var(farclip)
|
|
return tool
|
|
|
|
def test_executable_farclip_ceiling_has_3000_floor(self):
|
|
tool = self._tool()
|
|
with mock.patch.object(
|
|
setup_tool_dynamic.ModernWowSetupTool,
|
|
"_desired_normalized_values",
|
|
return_value={"farclip": 777.0},
|
|
):
|
|
desired = tool._desired_normalized_values()
|
|
self.assertEqual(desired["farclip"], 3000.0)
|
|
|
|
def test_executable_farclip_ceiling_keeps_explicit_value_above_3000(self):
|
|
tool = self._tool(5000)
|
|
with mock.patch.object(
|
|
setup_tool_dynamic.ModernWowSetupTool,
|
|
"_desired_normalized_values",
|
|
return_value={"farclip": 5000.0},
|
|
):
|
|
desired = tool._desired_normalized_values()
|
|
self.assertEqual(desired["farclip"], 5000.0)
|
|
|
|
def test_existing_farclip_cvar_is_replaced_without_touching_other_settings(self):
|
|
tool = self._tool(777)
|
|
with tempfile.TemporaryDirectory() as root:
|
|
wtf_dir = os.path.join(root, "WTF")
|
|
os.makedirs(wtf_dir)
|
|
config_path = os.path.join(wtf_dir, "Config.wtf")
|
|
with open(config_path, "w", encoding="utf-8") as handle:
|
|
handle.write('SET locale "enUS"\nSET farclip "2100"\nSET gxWindow "1"\n')
|
|
|
|
tool._configure_farclip_cvar(root)
|
|
|
|
with open(config_path, "r", encoding="utf-8") as handle:
|
|
result = handle.read()
|
|
|
|
self.assertIn('SET locale "enUS"', result)
|
|
self.assertIn('SET gxWindow "1"', result)
|
|
self.assertIn('SET farclip "777"', result)
|
|
self.assertNotIn('SET farclip "2100"', result)
|
|
|
|
def test_missing_farclip_cvar_is_appended(self):
|
|
tool = self._tool(1500)
|
|
with tempfile.TemporaryDirectory() as root:
|
|
wtf_dir = os.path.join(root, "WTF")
|
|
os.makedirs(wtf_dir)
|
|
config_path = os.path.join(wtf_dir, "Config.wtf")
|
|
with open(config_path, "w", encoding="utf-8") as handle:
|
|
handle.write('SET locale "enUS"')
|
|
|
|
tool._configure_farclip_cvar(root)
|
|
|
|
with open(config_path, "r", encoding="utf-8") as handle:
|
|
result = handle.read()
|
|
|
|
self.assertEqual(
|
|
result,
|
|
'SET locale "enUS"\nSET farclip "1500"\n',
|
|
)
|
|
|
|
def test_missing_config_wtf_is_created(self):
|
|
tool = self._tool(1000)
|
|
with tempfile.TemporaryDirectory() as root:
|
|
tool._configure_farclip_cvar(root)
|
|
config_path = os.path.join(root, "WTF", "Config.wtf")
|
|
with open(config_path, "r", encoding="utf-8") as handle:
|
|
result = handle.read()
|
|
self.assertEqual(result, 'SET farclip "1000"\n')
|
|
|
|
def test_configure_script_memory_also_synchronizes_farclip(self):
|
|
tool = self._tool(777)
|
|
with mock.patch.object(
|
|
setup_tool_dynamic.ModernWowSetupTool,
|
|
"configure_script_memory",
|
|
) as parent_configure, mock.patch.object(
|
|
tool,
|
|
"_configure_farclip_cvar",
|
|
) as sync_farclip:
|
|
tool.configure_script_memory("C:/WoW")
|
|
|
|
parent_configure.assert_called_once_with("C:/WoW")
|
|
sync_farclip.assert_called_once_with("C:/WoW")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|