[Search] Add 2026-04-01 GA test coverage and recordings#46684
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR modernizes and expands azure-search-documents test coverage for the 2026-04-01 GA surface by replacing older live-test patterns (schema/batch-file driven) with helper-based resource provisioning and adding new live/unit tests for key client/model behaviors.
Changes:
- Replaces legacy live tests with new scenario-focused live tests for SearchIndexClient/SearchIndexerClient/SearchClient (sync + async), plus knowledge base/source coverage.
- Adds/updates unit tests for helper models (e.g.,
SearchIndex,SearchField*, indexer model serialization) andIndexDocumentsBatch. - Updates async buffered sender retry behavior and fixes async indexing request splitting to pass batches correctly; updates
assets.jsontag and removes obsolete test assets.
Reviewed changes
Copilot reviewed 74 out of 74 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/search/azure-search-documents/tests/test_serialization.py | Removed legacy serialization tests (replaced by targeted unit tests). |
| sdk/search/azure-search-documents/tests/test_search_index_model.py | New unit tests for SearchIndex helper serialization/round-trips. |
| sdk/search/azure-search-documents/tests/test_search_indexer_models.py | New unit tests for indexer model helper serialization. |
| sdk/search/azure-search-documents/tests/test_search_field_helpers.py | New unit tests for SearchField* helper model behavior. |
| sdk/search/azure-search-documents/tests/test_index_documents_batch.py | Expanded unit coverage for IndexDocumentsBatch helpers and semantics. |
| sdk/search/azure-search-documents/tests/test_search_client_documents_live.py | New live tests for document lookup operations (sync). |
| sdk/search/azure-search-documents/tests/test_search_client_documents_live_async.py | New live tests for document lookup operations (async). |
| sdk/search/azure-search-documents/tests/test_search_client_index_documents_live.py | New live tests for document indexing CRUD operations (sync). |
| sdk/search/azure-search-documents/tests/test_search_client_index_documents_live_async.py | New live tests for document indexing CRUD operations (async). |
| sdk/search/azure-search-documents/tests/test_search_indexing_buffered_sender_live.py | New live tests for buffered sender queue/flush behavior (sync). |
| sdk/search/azure-search-documents/tests/test_search_indexing_buffered_sender_live_async.py | New live tests for buffered sender queue/flush behavior (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_aliases_live.py | New live tests for alias operations (sync). |
| sdk/search/azure-search-documents/tests/test_search_index_client_aliases_live_async.py | New live tests for alias operations (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_synonym_maps_live.py | New live tests for synonym map operations (sync). |
| sdk/search/azure-search-documents/tests/test_search_index_client_synonym_maps_live_async.py | New live tests for synonym map operations (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_indexes_live.py | New live tests for index operations (sync). |
| sdk/search/azure-search-documents/tests/test_search_index_client_knowledge_sources_live.py | New live tests for web knowledge source operations (sync). |
| sdk/search/azure-search-documents/tests/test_search_index_client_knowledge_sources_live_async.py | New live tests for web knowledge source operations (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_knowledge_bases_live.py | New live tests for knowledge base CRUD + source-status polling (sync). |
| sdk/search/azure-search-documents/tests/test_search_index_client_knowledge_bases_live_async.py | New live tests for knowledge base CRUD + source-status polling (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_knowledge_base_configurations_live.py | New live tests for KB configuration round-trips (sync). |
| sdk/search/azure-search-documents/tests/test_search_index_client_knowledge_base_configurations_live_async.py | New live tests for KB configuration round-trips (async). |
| sdk/search/azure-search-documents/tests/test_knowledge_base_retrieval_client_live.py | New live tests for KnowledgeBaseRetrievalClient.retrieve (sync). |
| sdk/search/azure-search-documents/tests/test_knowledge_base_retrieval_client_live_async.py | New live tests for KnowledgeBaseRetrievalClient.retrieve (async). |
| sdk/search/azure-search-documents/tests/test_search_indexer_client_skillsets_live.py | New live tests for skillset operations (sync). |
| sdk/search/azure-search-documents/tests/test_search_indexer_client_skillsets_live_async.py | New live tests for skillset operations (async). |
| sdk/search/azure-search-documents/tests/test_search_indexer_client_live.py | Removed legacy indexer client live tests. |
| sdk/search/azure-search-documents/tests/test_search_indexer_client_live_async.py | Removed legacy indexer client live tests (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_live.py | Removed legacy index client live tests. |
| sdk/search/azure-search-documents/tests/test_search_index_client_async.py | Removed old async test utilities (replaced by new structure). |
| sdk/search/azure-search-documents/tests/test_search_index_client_alias_live.py | Removed legacy alias live tests. |
| sdk/search/azure-search-documents/tests/test_search_index_client_alias_live_async.py | Removed legacy alias live tests (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_synonym_map_live.py | Removed legacy synonym-map live tests. |
| sdk/search/azure-search-documents/tests/test_search_index_client_synonym_map_live_async.py | Removed legacy synonym-map live tests (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_skillset_live_async.py | Removed legacy skillset live tests (async). |
| sdk/search/azure-search-documents/tests/test_search_index_client_data_source_live.py | Removed legacy data source live tests. |
| sdk/search/azure-search-documents/tests/test_search_index_client_data_source_live_async.py | Removed legacy data source live tests (async). |
| sdk/search/azure-search-documents/tests/test_search_client_basic_live.py | Removed legacy basic SearchClient live tests. |
| sdk/search/azure-search-documents/tests/test_search_client_basic_live_async.py | Removed legacy basic SearchClient live tests (async). |
| sdk/search/azure-search-documents/tests/test_search_client_index_document_live.py | Removed legacy doc indexing live tests (sync). |
| sdk/search/azure-search-documents/tests/test_search_client_index_document_live_async.py | Removed legacy doc indexing live tests (async). |
| sdk/search/azure-search-documents/tests/test_search_client_buffered_sender_live.py | Removed legacy buffered sender live tests (sync). |
| sdk/search/azure-search-documents/tests/test_search_client_buffered_sender_live_async.py | Removed legacy buffered sender live tests (async). |
| sdk/search/azure-search-documents/tests/test_knowledge_source_web_live.py | Removed legacy web knowledge source live tests (sync). |
| sdk/search/azure-search-documents/tests/test_knowledge_source_web_live_async.py | Removed legacy web knowledge source live tests (async). |
| sdk/search/azure-search-documents/tests/test_knowledge_base_live.py | Removed legacy knowledge base live tests (sync). |
| sdk/search/azure-search-documents/tests/test_knowledge_base_live_async.py | Removed legacy knowledge base live tests (async). |
| sdk/search/azure-search-documents/tests/test_knowledge_base_configuration_live.py | Removed legacy KB configuration live tests (sync). |
| sdk/search/azure-search-documents/tests/test_knowledge_base_configuration_live_async.py | Removed legacy KB configuration live tests (async). |
| sdk/search/azure-search-documents/tests/test_index_field_helpers.py | Removed legacy index field helper tests (superseded). |
| sdk/search/azure-search-documents/tests/test_buffered_sender.py | Removed legacy buffered sender unit tests (sync). |
| sdk/search/azure-search-documents/tests/test_buffered_sender_async.py | Removed legacy buffered sender unit tests (async). |
| sdk/search/azure-search-documents/tests/search_service_preparer.py | Simplified live-test preparer/cleanup flow for new test approach. |
| sdk/search/azure-search-documents/tests/hotel_schema.json | Removed schema file no longer used by the new live-test setup. |
| sdk/search/azure-search-documents/azure/search/documents/aio/_patch.py | Makes async buffered sender retry path await callback fail handling. |
| sdk/search/azure-search-documents/azure/search/documents/aio/_operations/_patch.py | Fixes recursive 413-splitting to pass a batch (not actions=). |
| sdk/search/azure-search-documents/assets.json | Updates recordings/tag reference for azure-search-documents. |
7fbd4de to
04cdf97
Compare
efrainretana
reviewed
May 4, 2026
04cdf97 to
6f4edbc
Compare
Add targeted unit coverage for SDK-owned Search behavior, including buffered sender defaults, processing checks, context managers, field helpers, and SearchClient metadata accessors. Restore meaningful live coverage for knowledge resource ETags and buffered sender upload replacement and delete behavior. Refresh buffered sender recordings and update the asset tag. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
6f4edbc to
fadc76f
Compare
efrainretana
approved these changes
May 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR updates the
azure-search-documentstest suite for the 2026-04-01 GA release and refreshes the playback recordings.The main goal is to reorganize and strengthen Search test coverage without losing coverage from the previous suite. Tests are now grouped by public client and resource area, with SDK owned behavior covered by unit tests and service contract behavior covered by live tests.
TypeSpec source:
Azure/azure-rest-api-specs@d62196d5e224f0cd58f6dd2dbd082ed72300af5aRelated issues: N/A
Coverage proof
This PR was audited against the previous main branch test suite.
Every previous main branch test is accounted for by an equivalent or stronger current test. Some coverage moved from live tests to unit tests where the behavior is SDK owned and does not require the Azure Search service. The new layout keeps service contract behavior in live tests and SDK behavior in faster, deterministic unit tests.
File mapping
Many files show as removed because the suite was reorganized by public client and resource area. The coverage is preserved in the new files below.
test_buffered_sender.py,test_buffered_sender_async.pytest_search_indexing_buffered_sender.py,test_search_indexing_buffered_sender_async.pytest_search_client_buffered_sender_live.py,test_search_client_buffered_sender_live_async.pytest_search_indexing_buffered_sender_live.py,test_search_indexing_buffered_sender_live_async.pytest_search_client_basic_live.py,test_search_client_basic_live_async.pytest_search_client_documents_live.py,test_search_client_documents_live_async.pytest_search_client_index_document_live.py,test_search_client_index_document_live_async.pytest_search_client_index_documents_live.py,test_search_client_index_documents_live_async.pytest_search_index_client_live.py,test_search_index_client_live_async.pytest_search_index_client_indexes_live.py,test_search_index_client_indexes_live_async.pytest_search_index_client_alias_live.py,test_search_index_client_alias_live_async.pytest_search_index_client_aliases_live.py,test_search_index_client_aliases_live_async.pytest_search_index_client_synonym_map_live.py,test_search_index_client_synonym_map_live_async.pytest_search_index_client_synonym_maps_live.py,test_search_index_client_synonym_maps_live_async.pytest_search_index_client_data_source_live.py,test_search_index_client_data_source_live_async.pytest_search_indexer_client_data_sources_live.py,test_search_indexer_client_data_sources_live_async.pytest_search_indexer_client_live.py,test_search_indexer_client_live_async.pytest_search_indexer_client_indexers_live.py,test_search_indexer_client_indexers_live_async.pytest_search_index_client_skillset_live.py,test_search_index_client_skillset_live_async.pytest_search_indexer_client_skillsets_live.py,test_search_indexer_client_skillsets_live_async.pytest_knowledge_base_configuration_live.py,test_knowledge_base_configuration_live_async.pytest_search_index_client_knowledge_base_configurations_live.py,test_search_index_client_knowledge_base_configurations_live_async.pytest_knowledge_base_live.py,test_knowledge_base_live_async.pytest_search_index_client_knowledge_bases_live.py,test_search_index_client_knowledge_bases_live_async.pytest_knowledge_source_web_live.py,test_knowledge_source_web_live_async.pytest_search_index_client_knowledge_sources_live.py,test_search_index_client_knowledge_sources_live_async.pytest_knowledge_base_retrieval_client_live.py,test_knowledge_base_retrieval_client_live_async.pytest_index_field_helpers.pytest_search_field_helpers.pytest_serialization.pytest_search_index_model.py,test_search_indexer_models.pytest_search_index_client_async.pyhotel_schema.json,hotel_small.json,hotel_large.json_search_helpers.py, used by sync and async live helpers (_search_helpers_async.py)Test design
The suite is intentionally unit first. Live tests are not meant to duplicate SDK owned assertions that unit tests can cover more deterministically. This keeps live tests focused on what only the service can prove, while preserving coverage through faster and more stable unit tests.
Notable changes
assets.jsontopython/search/azure-search-documents_575b3d2518Source fixes included
This PR includes two small async buffered sender fixes found while strengthening tests.
azure/search/documents/aio/_operations/_patch.pybatch=IndexDocumentsBatch(...), matching the method signature and the first halfazure/search/documents/aio/_patch.pyasyncio.create_task, restoring deterministic callback behaviorThe async callback behavior matches the old 11.7.0b2 AutoRest era buffered sender semantics, where retry terminal failures awaited
_callback_fail.All SDK Contribution checklist:
General Guidelines and Best Practices
Testing Guidelines