feat: support pagination in sqlstore

# What does this PR do?


## Test Plan
This commit is contained in:
Eric Huang 2025-06-16 11:33:31 -07:00
parent 40e2c97915
commit f993bdaa1c
10 changed files with 1130 additions and 117 deletions

View file

@ -328,7 +328,24 @@ class TestOpenAIFilesAPI:
assert uploaded_file.filename == "uploaded_file" # Default filename
@pytest.mark.asyncio
async def test_after_pagination_not_implemented(self, files_provider):
"""Test that 'after' pagination raises NotImplementedError."""
with pytest.raises(NotImplementedError, match="After pagination not yet implemented"):
await files_provider.openai_list_files(after="file-some-id")
async def test_after_pagination_works(self, files_provider, sample_text_file):
"""Test that 'after' pagination works correctly."""
# Upload multiple files to test pagination
uploaded_files = []
for _ in range(5):
file = await files_provider.openai_upload_file(file=sample_text_file, purpose=OpenAIFilePurpose.ASSISTANTS)
uploaded_files.append(file)
# Get first page without 'after' parameter
first_page = await files_provider.openai_list_files(limit=2, order=Order.desc)
assert len(first_page.data) == 2
assert first_page.has_more is True
# Get second page using 'after' parameter
second_page = await files_provider.openai_list_files(after=first_page.data[-1].id, limit=2, order=Order.desc)
assert len(second_page.data) <= 2
# Verify no overlap between pages
first_page_ids = {f.id for f in first_page.data}
second_page_ids = {f.id for f in second_page.data}
assert first_page_ids.isdisjoint(second_page_ids)