feat(cloud): harden multi-tenant runtime resources

This commit is contained in:
Junyan Qin
2026-07-29 11:32:26 +08:00
parent 32abbb636f
commit ae85ac2b16
211 changed files with 14963 additions and 1968 deletions
+21 -1
View File
@@ -6,7 +6,9 @@ based on configuration, without actually creating real VDB instances.
from __future__ import annotations
from unittest.mock import MagicMock
from unittest.mock import AsyncMock, MagicMock
import pytest
from tests.utils.import_isolation import isolated_sys_modules
@@ -383,3 +385,21 @@ class TestVectorDBManagerProxies:
result = mgr.get_supported_search_types()
assert result == ['vector', 'full_text']
@pytest.mark.asyncio
async def test_shutdown_closes_backend_and_releases_reference(self):
mock_app = MagicMock()
mocks = {'langbot.pkg.core.app': MagicMock()}
with isolated_sys_modules(mocks):
from langbot.pkg.vector.mgr import VectorDBManager
mgr = VectorDBManager(mock_app)
backend = MagicMock()
backend.close = AsyncMock()
mgr.vector_db = backend
await mgr.shutdown()
backend.close.assert_awaited_once_with()
assert mgr.vector_db is None
@@ -31,6 +31,7 @@ def make_backend():
# _ensure_client serializes creation through this lock; set it here since
# __init__ (which normally creates it) is bypassed.
backend._client_lock = asyncio.Lock()
backend._runtime_cache_limit = 1024
return backend
+18 -1
View File
@@ -5,7 +5,12 @@ from __future__ import annotations
from unittest.mock import AsyncMock
import pytest
from langbot.pkg.vector.vdb import SearchType, VectorDatabase
from langbot.pkg.vector.vdb import (
SearchType,
VectorDatabase,
remember_bounded_mapping,
remember_bounded_set,
)
class TestSearchType:
@@ -29,6 +34,18 @@ class TestSearchType:
assert SearchType('hybrid') == SearchType.HYBRID
def test_runtime_cache_helpers_bound_mapping_and_set():
mapping = {}
values = set()
for index in range(100):
remember_bounded_mapping(mapping, str(index), object(), 8)
remember_bounded_set(values, str(index), 8)
assert len(mapping) == 8
assert len(values) == 8
class TestVectorDatabaseAbstractMethods:
"""Tests for VectorDatabase abstract methods."""