def test_calls_the_search_api_index_method_correctly(self, search_api_client):
        for framework, doc_type_to_index_mapping in current_app.config['DM_FRAMEWORK_TO_ES_INDEX'].items():
            for doc_type, index_name in doc_type_to_index_mapping.items():

                index_object(framework, doc_type, 123, {'serialized': 'object'})

                search_api_client.index.assert_called_once_with(
                    index_name=index_name,
                    object_id=123,
                    serialized_object={'serialized': 'object'},
                    doc_type=doc_type,
                )
                search_api_client.reset_mock()
    def test_logs_an_error_message_if_no_mapping_found(self, current_app, search_api_client):
        current_app.config = {
            'DM_FRAMEWORK_TO_ES_INDEX': {
                'not-a-framework': {
                    'services': 'g-cloud-9'
                }
            }
        }

        index_object('g-cloud-9', 'services', 123, {'serialized': 'object'})

        current_app.logger.error.assert_called_once_with(
            "Failed to find index name for framework 'g-cloud-9' with object type 'services'"
        )
Esempio n. 3
0
    def test_logs_an_error_message_if_no_mapping_found(self, current_app,
                                                       search_api_client):
        current_app.config = {
            'DM_FRAMEWORK_TO_ES_INDEX': {
                'not-a-framework': {
                    'services': 'g-cloud-9'
                }
            }
        }

        index_object('g-cloud-9', 'services', 123, {'serialized': 'object'})

        current_app.logger.error.assert_called_once_with(
            "Failed to find index name for framework 'g-cloud-9' with object type 'services'"
        )
    def test_logs_a_warning_if_HTTPError_from_search_api(self, current_app, search_api_client):
        search_api_client.index.side_effect = HTTPError()
        current_app.config = {
            'DM_FRAMEWORK_TO_ES_INDEX': {
                'g-cloud-9': {
                    'services': 'g-cloud-9'
                }
            }
        }

        index_object('g-cloud-9', 'services', 123, {'serialized': 'object'})

        current_app.logger.warning.assert_called_once_with(
            'Failed to add services object with id 123 to g-cloud-9 index: Unknown request failure in dmapiclient'
        )
Esempio n. 5
0
    def test_calls_the_search_api_index_method_correctly(
            self, search_api_client):
        for framework, doc_type_to_index_mapping in current_app.config[
                'DM_FRAMEWORK_TO_ES_INDEX'].items():
            for doc_type, index_name in doc_type_to_index_mapping.items():

                index_object(framework, doc_type, 123,
                             {'serialized': 'object'})

                search_api_client.index.assert_called_once_with(
                    index_name=index_name,
                    object_id=123,
                    serialized_object={'serialized': 'object'},
                    doc_type=doc_type,
                )
                search_api_client.reset_mock()
Esempio n. 6
0
    def test_logs_a_warning_if_HTTPError_from_search_api(
            self, current_app, search_api_client):
        search_api_client.index.side_effect = HTTPError()
        current_app.config = {
            'DM_FRAMEWORK_TO_ES_INDEX': {
                'g-cloud-9': {
                    'services': 'g-cloud-9'
                }
            }
        }

        index_object('g-cloud-9', 'services', 123, {'serialized': 'object'})

        current_app.logger.warning.assert_called_once_with(
            'Failed to add services object with id 123 to g-cloud-9 index: Request failed'
        )
Esempio n. 7
0
    def test_calls_the_search_api_index_method_correctly(
            self, search_api_client, wait_for_response):
        for framework, doc_type_to_index_mapping in current_app.config[
                'DM_FRAMEWORK_TO_ES_INDEX'].items():
            for doc_type, index_name in doc_type_to_index_mapping.items():

                index_object(framework,
                             doc_type,
                             123, {'serialized': 'object'},
                             wait_for_response=wait_for_response)

                assert search_api_client.index.mock_calls == [
                    mock.call(
                        index_name=index_name,
                        object_id=123,
                        serialized_object={'serialized': 'object'},
                        doc_type=doc_type,
                        client_wait_for_response=wait_for_response,
                    )
                ]
                search_api_client.reset_mock()