Initial commit: add AutoDeploy project
This commit is contained in:
48
tests/test_path_manager.py
Normal file
48
tests/test_path_manager.py
Normal 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()
|
||||
Reference in New Issue
Block a user