Initial commit: add AutoDeploy project

This commit is contained in:
wangpeng
2026-07-14 16:30:36 +08:00
commit 2d7b6216ba
23 changed files with 3615 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
import unittest
from pathlib import Path
from deploy_tool.path_manager import EnvironmentUpdate, build_environment_update, merge_path_entries, apply_user_environment
class FakeRegistry:
def __init__(self):
self.values = {}
self.broadcasted = False
def get_value(self, name):
return self.values.get(name, "")
def set_value(self, name, value):
self.values[name] = value
def broadcast_change(self):
self.broadcasted = True
class PathManagerTests(unittest.TestCase):
def test_merge_path_entries_appends_without_duplicates(self):
current = r"C:\Windows;C:\Java\bin"
merged = merge_path_entries(current, [Path(r"C:\Java\bin"), Path(r"C:\mysql\bin")])
self.assertEqual(merged, r"C:\Windows;C:\Java\bin;C:\mysql\bin")
def test_build_environment_update_sets_java_home_from_bin(self):
update = build_environment_update("JDK", Path(r"C:\Program Files\Eclipse Adoptium\jdk-8\bin\java.exe"))
self.assertEqual(update.path_entries, [Path(r"C:\Program Files\Eclipse Adoptium\jdk-8\bin")])
self.assertEqual(update.env_vars["JAVA_HOME"], r"C:\Program Files\Eclipse Adoptium\jdk-8")
def test_apply_user_environment_writes_path_and_env_vars(self):
registry = FakeRegistry()
registry.values["Path"] = r"C:\Windows"
update = EnvironmentUpdate(path_entries=[Path(r"C:\Tools\bin")], env_vars={"JAVA_HOME": r"C:\Java"})
apply_user_environment(update, registry)
self.assertEqual(registry.values["Path"], r"C:\Windows;C:\Tools\bin")
self.assertEqual(registry.values["JAVA_HOME"], r"C:\Java")
self.assertTrue(registry.broadcasted)
if __name__ == "__main__":
unittest.main()