Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue.

pull/3339/head
google-labs-jules[bot] 2025-07-13 11:30:54 +00:00
parent 4161d1d80a
commit a30f9b9551
3 changed files with 67 additions and 0 deletions

View File

@ -102,6 +102,7 @@ def UI(**kwargs):
"share": False if kwargs.get("do_not_share", False) else kwargs.get("share", False),
"root_path": kwargs.get("root_path", None),
"debug": kwargs.get("debug", False),
"allowed_paths": config.allowed_paths,
}
# This line filters out any key-value pairs from `launch_params` where the value is `None`, ensuring only valid parameters are passed to the `launch` function.

View File

@ -16,6 +16,7 @@ class KohyaSSGUIConfig:
Initialize the KohyaSSGUIConfig class.
"""
self.config = self.load_config(config_file_path=config_file_path)
self.allowed_paths = self.get_allowed_paths()
def load_config(self, config_file_path: str = "./config.toml") -> dict:
"""
@ -81,6 +82,12 @@ class KohyaSSGUIConfig:
log.debug(f"Returned {data}")
return data
def get_allowed_paths(self) -> list:
"""
Retrieves the list of allowed paths from the [server] section of the config file.
"""
return self.get("server.allowed_paths", [])
def is_config_loaded(self) -> bool:
"""
Checks if the configuration was loaded from a file.

View File

@ -0,0 +1,59 @@
import os
import tempfile
import unittest
import subprocess
from pathlib import Path
class TestAllowedPaths(unittest.TestCase):
def setUp(self):
print("Setting up test...")
self.temp_dir = tempfile.TemporaryDirectory()
self.temp_dir_path = Path(self.temp_dir.name)
self.dummy_file = self.temp_dir_path / "dummy.txt"
with open(self.dummy_file, "w") as f:
f.write("dummy content")
self.config_file = self.temp_dir_path / "config.toml"
with open(self.config_file, "w") as f:
f.write(f'''
[server]
allowed_paths = ["{self.temp_dir.name}"]
''')
print("Setup complete.")
def tearDown(self):
print("Tearing down test...")
self.temp_dir.cleanup()
print("Teardown complete.")
def test_allowed_paths(self):
print("Running test_allowed_paths...")
# Run the gui with the new config and check if it can access the dummy file
process = subprocess.Popen(
[
"python",
"kohya_gui.py",
"--config",
str(self.config_file),
"--headless",
],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
print("Process started.")
# Give the server some time to start
try:
stdout, stderr = process.communicate(timeout=10)
except subprocess.TimeoutExpired:
process.kill()
stdout, stderr = process.communicate()
print(f"Stdout: {stdout.decode()}")
print(f"Stderr: {stderr.decode()}")
# Check if there are any errors in the stderr
self.assertNotIn("InvalidPathError", stderr.decode())
print("Test complete.")
if __name__ == "__main__":
unittest.main()