示例#1
0
    def test_do_index_creates_service_indexer_class_and_indexes_items(
            self, request_items, index_item, indexer_init):
        indexer_init.return_value = None
        request_items.return_value = ['service1', 'service2']
        do_index(
            'services',
            "http://search-api-url",
            "mySearchAPIToken",
            "http://data-api-url",
            "myDataAPIToken",
            mapping=False,
            serial=True,  # don't run in parallel for testing
            index="myIndex",
            frameworks="framework1,framework2")

        assert indexer_init.call_args_list == [
            mock.call(mock.ANY, 'services', self.data_api_client.return_value,
                      self.search_api_client.return_value, 'myIndex')
        ]
        # Both API clients initialised when the BriefIndexer instance is created
        assert self.data_api_client.call_args_list == [
            mock.call('http://data-api-url', 'myDataAPIToken')
        ]
        assert self.search_api_client.call_args_list == [
            mock.call('http://search-api-url', 'mySearchAPIToken')
        ]

        assert request_items.call_args_list == [
            mock.call(mock.ANY, "framework1,framework2")
        ]
        assert index_item.call_args_list == [
            mock.call(mock.ANY, 'service1'),
            mock.call(mock.ANY, 'service2'),
        ]
示例#2
0
    def test_do_index_creates_new_index_from_services_mapping(
            self, create_index):
        do_index(
            'services',
            "http://search-api-url",
            "mySearchAPIToken",
            "http://data-api-url",
            "myDataAPIToken",
            mapping='services-g-cloud-10',
            serial=True,  # don't run in parallel for testing
            index="my-new-g-cloud-10-index",
            frameworks="g-cloud-10")

        assert create_index.call_args_list == [
            mock.call(mock.ANY, mapping='services-g-cloud-10')
        ]
示例#3
0
    def test_do_index_creates_new_index_from_briefs_mapping_for_dos_frameworks(
            self, create_index, framework_list):
        do_index(
            'briefs',
            "http://search-api-url",
            "mySearchAPIToken",
            "http://data-api-url",
            "myDataAPIToken",
            mapping='briefs-digital-outcomes-and-specialists-2',
            serial=True,  # don't run in parallel for testing
            index="my-new-dos-index",
            frameworks=framework_list)

        assert create_index.call_args_list == [
            mock.call(mock.ANY,
                      mapping='briefs-digital-outcomes-and-specialists-2')
        ]
示例#4
0
    def test_incorrect_mapping_for_framework_raises_error(self, create_index):
        with pytest.raises(ValueError) as e:
            do_index(
                'services',
                "http://search-api-url",
                "mySearchAPIToken",
                "http://data-api-url",
                "myDataAPIToken",
                mapping='services',
                serial=True,  # don't run in parallel for testing
                index="my-new-g-cloud-10-index",
                frameworks="g-cloud-10")

        assert str(
            e.value
        ) == "Incorrect mapping 'services' for the supplied framework(s): g-cloud-10"

        assert create_index.call_args_list == []
"""

import sys
from docopt import docopt

sys.path.insert(0, '.')
from dmscripts.index_to_search_service import do_index
from dmscripts.helpers.auth_helpers import get_auth_token
from dmutils.env_helpers import get_api_endpoint_from_stage

if __name__ == "__main__":
    arguments = docopt(__doc__)
    ok = do_index(
        doc_type=arguments['<doc-type>'],
        data_api_url=arguments['--api-url']
        or get_api_endpoint_from_stage(arguments['<stage>'], 'api'),
        data_api_access_token=arguments['--api-token']
        or get_auth_token('api', arguments['<stage>']),
        search_api_url=arguments['--search-api-url']
        or get_api_endpoint_from_stage(arguments['<stage>'], 'search-api'),
        search_api_access_token=arguments['--search-api-token']
        or get_auth_token('search_api', arguments['<stage>']),
        mapping=arguments.get('--create-with-mapping'),
        serial=arguments['--serial'],
        index=arguments['--index'],
        frameworks=arguments['--frameworks'],
    )

    if not ok:
        sys.exit(1)