mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-16 23:43:03 +00:00
Respect maintainer preference against new PR test files
A collaborator explicitly asked that test files not be included on the PR. This follow-up keeps the file reindex safety fix intact while dropping the newly added repository test file, and relies on focused local verification outside the tracked diff instead. Constraint: Keep the data-loss fix intact while removing the only PR artifact a reviewer objected to Rejected: Leave the new test file in place and wait | direct reviewer feedback is already available and easy to satisfy Confidence: medium Scope-risk: narrow Reversibility: clean Directive: For this PR, preserve the reindex ordering fix but avoid re-adding a dedicated repository test file unless a maintainer explicitly asks for one Tested: python3 -m py_compile backend/open_webui/routers/files.py backend/open_webui/utils/knowledge_collections.py; focused local harness for reindex_file_in_collection success/failure ordering Not-tested: Repository pytest suite after dropping the tracked test file
This commit is contained in:
parent
b2fce411c8
commit
5c3b95838d
1 changed files with 0 additions and 86 deletions
|
|
@ -1,86 +0,0 @@
|
|||
import asyncio
|
||||
from types import SimpleNamespace
|
||||
|
||||
from open_webui.utils.knowledge_collections import reindex_file_in_collection
|
||||
|
||||
|
||||
def test_reindex_file_in_collection_deletes_old_ids_only_after_success():
|
||||
calls = []
|
||||
|
||||
class DummyVectorDB:
|
||||
async def query(self, collection_name, filter, limit=None):
|
||||
calls.append(('query', collection_name, filter))
|
||||
return SimpleNamespace(ids=[['old-1', 'old-2']])
|
||||
|
||||
async def delete(self, collection_name, ids=None, filter=None):
|
||||
calls.append(('delete', collection_name, ids, filter))
|
||||
|
||||
async def fake_process_file(request, form, user, db):
|
||||
calls.append(('process_file', form.file_id, form.collection_name))
|
||||
|
||||
class DummyProcessFileForm:
|
||||
def __init__(self, file_id, collection_name=None):
|
||||
self.file_id = file_id
|
||||
self.collection_name = collection_name
|
||||
|
||||
asyncio.run(
|
||||
reindex_file_in_collection(
|
||||
request=object(),
|
||||
file_id='file-1',
|
||||
collection_name='kb-1',
|
||||
user=object(),
|
||||
db=None,
|
||||
process_file_form_factory=DummyProcessFileForm,
|
||||
process_file_func=fake_process_file,
|
||||
vector_db_client=DummyVectorDB(),
|
||||
)
|
||||
)
|
||||
|
||||
assert calls == [
|
||||
('query', 'kb-1', {'file_id': 'file-1'}),
|
||||
('process_file', 'file-1', 'kb-1'),
|
||||
('delete', 'kb-1', ['old-1', 'old-2'], None),
|
||||
]
|
||||
|
||||
|
||||
def test_reindex_file_in_collection_preserves_old_ids_when_rebuild_fails():
|
||||
calls = []
|
||||
|
||||
class DummyVectorDB:
|
||||
async def query(self, collection_name, filter, limit=None):
|
||||
calls.append(('query', collection_name, filter))
|
||||
return SimpleNamespace(ids=[['old-1']])
|
||||
|
||||
async def delete(self, collection_name, ids=None, filter=None):
|
||||
calls.append(('delete', collection_name, ids, filter))
|
||||
|
||||
async def fake_process_file(request, form, user, db):
|
||||
calls.append(('process_file', form.file_id, form.collection_name))
|
||||
raise RuntimeError('reindex failed')
|
||||
|
||||
class DummyProcessFileForm:
|
||||
def __init__(self, file_id, collection_name=None):
|
||||
self.file_id = file_id
|
||||
self.collection_name = collection_name
|
||||
|
||||
try:
|
||||
asyncio.run(
|
||||
reindex_file_in_collection(
|
||||
request=object(),
|
||||
file_id='file-1',
|
||||
collection_name='kb-1',
|
||||
user=object(),
|
||||
db=None,
|
||||
process_file_form_factory=DummyProcessFileForm,
|
||||
process_file_func=fake_process_file,
|
||||
vector_db_client=DummyVectorDB(),
|
||||
)
|
||||
)
|
||||
raise AssertionError('Expected reindex_file_in_collection to raise RuntimeError')
|
||||
except RuntimeError as exc:
|
||||
assert str(exc) == 'reindex failed'
|
||||
|
||||
assert calls == [
|
||||
('query', 'kb-1', {'file_id': 'file-1'}),
|
||||
('process_file', 'file-1', 'kb-1'),
|
||||
]
|
||||
Loading…
Add table
Reference in a new issue