Spaces:
Sleeping
Sleeping
Jackie Makhija
Fix deployment: correct Dockerfile, add missing dependencies, include all required files
a6a16a2
| """Shared pytest fixtures for offline testing.""" | |
| import os | |
| from types import SimpleNamespace | |
| from unittest.mock import MagicMock | |
| import pytest | |
| import app as app_module | |
| import unity_catalog_service as uc_module | |
| def dummy_env(monkeypatch): | |
| """Set safe defaults to satisfy config validation without real secrets.""" | |
| env_defaults = { | |
| "DATABRICKS_HOST": "https://dummy", | |
| "DATABRICKS_TOKEN": "dummytoken123", | |
| "ANTHROPIC_API_KEY": "sk-ant-dummy", | |
| } | |
| for key, value in env_defaults.items(): | |
| monkeypatch.setenv(key, value) | |
| yield | |
| def workspace_client(): | |
| """Provide a mocked Databricks WorkspaceClient surface.""" | |
| catalogs = MagicMock() | |
| catalogs.create = MagicMock() | |
| catalogs.list = MagicMock(return_value=[]) | |
| catalogs.get = MagicMock() | |
| catalogs.delete = MagicMock() | |
| schemas = MagicMock() | |
| schemas.create = MagicMock() | |
| schemas.list = MagicMock(return_value=[]) | |
| schemas.delete = MagicMock() | |
| tables = MagicMock() | |
| tables.create = MagicMock() | |
| tables.list = MagicMock(return_value=[]) | |
| tables.get = MagicMock() | |
| grants = MagicMock() | |
| grants.update = MagicMock() | |
| grants.get = MagicMock() | |
| sql = MagicMock() | |
| sql.execute = MagicMock(return_value=[]) | |
| return SimpleNamespace( | |
| catalogs=catalogs, | |
| schemas=schemas, | |
| tables=tables, | |
| grants=grants, | |
| sql=sql, | |
| ) | |
| def patch_workspace_client(monkeypatch, workspace_client): | |
| """Force UnityCatalogService to use the shared workspace client mock.""" | |
| monkeypatch.setattr(uc_module, "WorkspaceClient", MagicMock(return_value=workspace_client)) | |
| yield | |
| def uc_service(workspace_client): | |
| """Real UnityCatalogService instance bound to the mocked workspace client.""" | |
| service = uc_module.UnityCatalogService( | |
| workspace_url="https://dummy", | |
| token="dummytoken123", | |
| ) | |
| service.client = workspace_client | |
| return service | |
| def claude_client_mock(): | |
| """Mock Anthropics client matching the methods used in app.py.""" | |
| messages = MagicMock() | |
| messages.create = MagicMock() | |
| return SimpleNamespace(messages=messages) | |
| def patch_app_init(monkeypatch, uc_service, claude_client_mock): | |
| """Override app._init_services to return mocked services for tests.""" | |
| def mock_init_services(): | |
| return uc_service, claude_client_mock | |
| monkeypatch.setattr(app_module, "_init_services", mock_init_services) | |
| yield | |