def test_upload_documents_existing(self, api_key, endpoint, index_name,
                                       **kwargs):
        client = SearchClient(endpoint, index_name,
                              AzureKeyCredential(api_key))
        batch_client = SearchIndexDocumentBatchingClient(
            endpoint, index_name, AzureKeyCredential(api_key))
        batch_client._batch_size = 2
        DOCUMENTS = [
            {
                "hotelId": "1000",
                "rating": 5,
                "rooms": [],
                "hotelName": "Azure Inn"
            },
            {
                "hotelId": "3",
                "rating": 4,
                "rooms": [],
                "hotelName": "Redmond Hotel"
            },
        ]
        batch_client.add_upload_actions(DOCUMENTS)

        # There can be some lag before a document is searchable
        if self.is_live:
            time.sleep(TIME_TO_SLEEP)

        assert client.get_document_count() == 11
        batch_client.close()
예제 #2
0
    def test_flush_if_needed(self, mock_flush):
        client = SearchIndexDocumentBatchingClient("endpoint",
                                                   "index name",
                                                   CREDENTIAL,
                                                   window=1000,
                                                   batch_size=2)

        client.add_upload_actions(["upload1"])
        client.add_delete_actions(["delete1", "delete2"])
        assert mock_flush.called
        client.close()
예제 #3
0
    def test_failed_queue(self):
        client = SearchIndexDocumentBatchingClient("endpoint", "index name",
                                                   CREDENTIAL)

        assert client._index_documents_batch
        client.add_upload_actions(["upload1"])
        client.add_delete_actions(["delete1", "delete2"])
        client.add_merge_actions(["merge1", "merge2", "merge3"])
        client.add_merge_or_upload_actions(["merge_or_upload1"])
        actions = client._index_documents_batch.dequeue_actions()
        client._index_documents_batch.enqueue_failed_actions(actions)
        assert len(client.failed_actions) == 7
    def test_batch_queue(self):
        client = SearchIndexDocumentBatchingClient("endpoint", "index name", CREDENTIAL, auto_flush=False)

        assert client._index_documents_batch
        client.add_upload_actions(["upload1"])
        client.add_delete_actions(["delete1", "delete2"])
        client.add_merge_actions(["merge1", "merge2", "merge3"])
        client.add_merge_or_upload_actions(["merge_or_upload1"])
        assert len(client.actions) == 7
        actions = client._index_documents_batch.dequeue_actions()
        assert len(client.actions) == 0
        client._index_documents_batch.enqueue_actions(actions)
        assert len(client.actions) == 7
        actions = client._index_documents_batch.dequeue_actions()
        assert len(client.actions) == 0
        for action in actions:
            client._index_documents_batch.enqueue_action(action)
        assert len(client.actions) == 7
    def test_process_if_needed(self, mock_process_if_needed):
        client = SearchIndexDocumentBatchingClient("endpoint", "index name", CREDENTIAL, window=1000, auto_flush=False)

        client.add_upload_actions(["upload1"])
        client.add_delete_actions(["delete1", "delete2"])
        assert mock_process_if_needed.called