Spaces:
Running on Zero
Running on Zero
| import ast | |
| import os | |
| import pathlib | |
| import types | |
| import unittest | |
| def _load_example_loader(): | |
| app_path = pathlib.Path(__file__).resolve().parents[1] / "app.py" | |
| source = app_path.read_text(encoding="utf-8") | |
| module = ast.parse(source, filename=str(app_path)) | |
| wanted = { | |
| "_to_rgba_image", | |
| "_scale_workspace_image", | |
| "_prepare_workspace_image", | |
| "load_example_into_workspace", | |
| } | |
| fn_nodes = [n for n in module.body if isinstance(n, ast.FunctionDef) and n.name in wanted] | |
| fn_nodes.sort(key=lambda n: n.lineno) | |
| test_mod = ast.Module(body=fn_nodes, type_ignores=[]) | |
| code = compile(test_mod, filename=str(app_path), mode="exec") | |
| class _FakeLoadedImage: | |
| def __init__(self, width=1068, height=3074): | |
| self.width = width | |
| self.height = height | |
| class _FakeImageModule: | |
| class Image: # pragma: no cover - marker type for isinstance checks | |
| pass | |
| def open(path): | |
| return _FakeLoadedImage() | |
| fake_np = types.SimpleNamespace( | |
| ndarray=type("ndarray", (), {}), | |
| uint8=int, | |
| stack=lambda *args, **kwargs: None, | |
| full_like=lambda *args, **kwargs: None, | |
| concatenate=lambda *args, **kwargs: None, | |
| ) | |
| scope = { | |
| "os": os, | |
| "np": fake_np, | |
| "Image": _FakeImageModule, | |
| "WORKSPACE_DEFAULT_SCALE": 89, | |
| "load_image": lambda file_path, page_num=1: _FakeLoadedImage(), | |
| } | |
| exec(code, scope) | |
| return scope["load_example_into_workspace"] | |
| class ExampleLoaderTests(unittest.TestCase): | |
| def test_accepts_common_gradio_payload_shapes(self): | |
| loader = _load_example_loader() | |
| sample = pathlib.Path("examples/2022-0922 Section 15 Notes.png") | |
| for payload in ( | |
| str(sample), | |
| sample, | |
| {"path": str(sample)}, | |
| {"name": str(sample)}, | |
| [str(sample)], | |
| (str(sample),), | |
| ): | |
| display, size, base = loader(payload) | |
| self.assertIsNotNone(display) | |
| self.assertIsNotNone(base) | |
| self.assertEqual((1068, 3074), size) | |
| if __name__ == "__main__": | |
| unittest.main() | |