Spaces:
Running on Zero
Running on Zero
| from __future__ import annotations | |
| import os | |
| import sys | |
| import types | |
| import unittest | |
| from unittest import mock | |
| os.environ.setdefault("GRADIO_ANALYTICS_ENABLED", "False") | |
| os.environ.setdefault("HF_HUB_OFFLINE", "1") | |
| try: | |
| import gradio | |
| except ImportError: | |
| gradio = None | |
| class UnifiedUiSmokeTests(unittest.TestCase): | |
| def setUpClass(cls): | |
| torch_stub = types.ModuleType("torch") | |
| torch_stub.Tensor = object | |
| torch_stub.cuda = types.SimpleNamespace( | |
| empty_cache=lambda: None, is_available=lambda: False | |
| ) | |
| sys.modules.setdefault("torch", torch_stub) | |
| nodes_stub = types.ModuleType("comfy_integration.nodes") | |
| nodes_stub.SAMPLER_CHOICES = ["euler", "dpmpp_2m_sde_gpu"] | |
| nodes_stub.SCHEDULER_CHOICES = ["simple", "normal", "karras"] | |
| sys.modules["comfy_integration.nodes"] = nodes_stub | |
| generation_stub = types.ModuleType("core.generation_logic") | |
| generation_stub.generate_image_wrapper = lambda inputs, progress=None: [] | |
| sys.modules["core.generation_logic"] = generation_stub | |
| def test_builds_one_workspace_and_only_high_level_public_apis(self): | |
| from ui.events import attach_event_handlers | |
| from ui.layout import build_ui | |
| app = build_ui(attach_event_handlers) | |
| config = app.get_config_file() | |
| self.assertLess(len(config.get("components", [])), 1000) | |
| self.assertLess(len(config.get("dependencies", [])), 150) | |
| public_names = { | |
| dependency.get("api_name") | |
| for dependency in config.get("dependencies", []) | |
| if dependency.get("show_api") and dependency.get("api_name") | |
| } | |
| self.assertEqual( | |
| public_names, | |
| { | |
| "get_task_list", | |
| "get_model_architecture_list", | |
| "get_model_list", | |
| "get_feature_list", | |
| "get_model_features", | |
| "run", | |
| "get_task_status", | |
| "run_imagegen", | |
| "get_chain_schema", | |
| }, | |
| ) | |
| def test_reference_budget_rejects_oversized_advanced_image(self): | |
| from PIL import Image | |
| from core.pipelines.pipeline_input_processor import ( | |
| _validate_reference_image_budget, | |
| ) | |
| with self.assertRaises(gradio.Error): | |
| _validate_reference_image_budget( | |
| {"reference_latent_data": [Image.new("1", (3000, 2000))]} | |
| ) | |
| def test_model_download_preflight_preserves_disk_reserve(self): | |
| from imagegen_utils.app_utils import _assert_download_space | |
| usage = types.SimpleNamespace(total=10, used=9, free=1) | |
| with ( | |
| mock.patch("shutil.disk_usage", return_value=usage), | |
| self.assertRaises(gradio.Error), | |
| ): | |
| _assert_download_space(100, "model.safetensors", "/tmp") | |
| if __name__ == "__main__": | |
| unittest.main() | |