Beispiel #1
0
def bragi_make_params_with_shape_scope_test():
    """
    test of generate params with instance which includes a poi dataset
    """
    instance = mock.MagicMock()
    instance.name = 'bob'
    instance.poi_dataset = 'priv.bob'
    bragi = GeocodeJson(host='http://bob.com/autocomplete')

    request = {"q": "aa", "count": 20, "request_id": "1234", "shape_scope[]": ["poi", "street"]}

    params = bragi.make_params(request=request, instances=[instance], timeout=1)
    rsp = [
        ('q', 'aa'),
        ('limit', 20),
        ('pt_dataset[]', 'bob'),
        ('poi_dataset[]', 'priv.bob'),
        ('timeout', 1000),
        ("request_id", "1234"),
        ('shape_scope[]', 'poi'),
        ('shape_scope[]', 'street'),
    ]
    params.sort()
    rsp.sort()
    assert rsp == params
Beispiel #2
0
def bragi_make_params_with_multiple_instances_test():
    """
    test of generate params with instance
    """
    instance1 = mock.MagicMock()
    instance1.name = 'bib'
    instance1.poi_dataset = None
    instance2 = mock.MagicMock()
    instance2.name = 'bob'
    instance2.poi_dataset = None
    bragi = GeocodeJson(host='http://bob.com/autocomplete')

    request = {"q": "aa", "count": 20, "request_id": "1234"}

    params = bragi.make_params(request=request, instances=[instance1, instance2], timeout=1)
    rsp = [
        ('q', 'aa'),
        ('limit', 20),
        ('pt_dataset[]', 'bib'),
        ('pt_dataset[]', 'bob'),
        ('timeout', 1000),
        ("request_id", "1234"),
        ('shape_scope[]', 'addr'),
        ('shape_scope[]', 'admin'),
        ('shape_scope[]', 'poi'),
        ('shape_scope[]', 'street'),
    ]

    params.sort()
    rsp.sort()
    assert params == rsp
Beispiel #3
0
def bragi_make_params_with_places_proximity_radius_test():
    """
    test of generate params with instance & places_proximity_radius
    """
    instance = mock.MagicMock()
    instance.name = 'bib'
    instance.poi_dataset = None
    bragi = GeocodeJson(host='http://bob.com/autocomplete', timeout=1)

    request = {
        "q": "aa",
        "count": 20,
        "request_id": "1234",
        "places_proximity_radius": 5000
    }

    params = bragi.make_params(request=request, instances=[instance])
    rsp = [
        ('q', 'aa'),
        ('limit', 20),
        ('pt_dataset[]', 'bib'),
        ('timeout', 1000),
        ("request_id", "1234"),
        ('shape_scope[]', 'addr'),
        ('shape_scope[]', 'admin'),
        ('shape_scope[]', 'poi'),
        ('shape_scope[]', 'street'),
        ('proximity_scale', 32.5),
        ('proximity_offset', 5.0),
        ('proximity_decay', 0.4),
    ]
    params.sort()
    rsp.sort()
    assert rsp == params
Beispiel #4
0
def bragi_call_test():
    """
    test the whole autocomplete with a geocodejson service
    """
    bragi = GeocodeJson(host='http://bob.com')

    bragi_response = {
        "features": [
            bragi_house_jaures_feature(),
            bragi_house_lefebvre_feature(),
            bragi_street_feature(),
            bragi_admin_feature(),
        ]
    }

    with app.test_request_context():
        # we mock the http call to return the hard coded mock_response
        with requests_mock.Mocker() as m:
            m.get(
                'http://bob.com/autocomplete?limit=10&q=rue+bobette&timeout=2000&request_id=123',
                json=bragi_response,
            )
            raw_response = bragi.get(
                {
                    'q': 'rue bobette',
                    'count': 10,
                    'request_id': '123'
                },
                instances=[])
            places = raw_response.get('places')
            assert len(places) == 4
            context_response_check(raw_response)
            bragi_house_jaures_response_check(places[0])
            bragi_house_lefebvre_response_check(places[1])
            bragi_street_response_check(places[2])
            bragi_admin_response_check(places[3])
            assert m.called

        with requests_mock.Mocker() as m:
            m.post(
                'http://bob.com/autocomplete?limit=10&q=rue+bobette&timeout=2000&request_id=123',
                json=bragi_response,
            )
            raw_response = bragi.get(
                {
                    'q': 'rue bobette',
                    'count': 10,
                    "request_id": "123",
                    'shape': geojson()
                },
                instances=[])
            context_response_check(raw_response)
            places = raw_response.get('places')
            assert len(places) == 4
            bragi_house_jaures_response_check(places[0])
            bragi_house_lefebvre_response_check(places[1])
            bragi_street_response_check(places[2])
            bragi_admin_response_check(places[3])
            assert m.called
def bragi_make_params_without_instance_test():
    """
    test of generate params without instance
    """
    bragi = GeocodeJson(host='http://bob.com/autocomplete')

    request = {"q": "aa", "count": 20}

    params = bragi.make_params(request=request, instances=[], timeout=0.1)
    rsp = [('q', 'aa'), ('limit', 20), ('timeout', 100)]
    params.sort()
    rsp.sort()
    assert rsp == params
Beispiel #6
0
def bragi_make_params_without_instance_test():
    """
    test of generate params without instance
    """
    bragi = GeocodeJson(host='http://bob.com/autocomplete')

    request = {"q": "aa", "count": 20}

    params = bragi.make_params(request=request, instances=[], timeout=0.1)
    rsp = {'q': 'aa', 'limit': 20, 'timeout': 100}
    assert len(list(rsp.keys())) == len(list(params.keys()))
    for key, value in rsp.items():
        assert key in params
        assert value == params[key]
Beispiel #7
0
def bragi_call_test():
    """
    test the whole autocomplete with a geocodejson service
    """
    bragi = GeocodeJson(host='http://bob.com')

    bragi_response = {
        "features": [
            bragi_house_jaures_feature(),
            bragi_house_lefebvre_feature(),
            bragi_street_feature(),
            bragi_admin_feature(),
        ]
    }
    mock_requests = MockRequests({
        'http://bob.com/autocomplete?q=rue+bobette&limit=10&timeout=2000':
        (bragi_response, 200)
    })
    from jormungandr import app

    with app.app_context():
        # we mock the http call to return the hard coded mock_response
        with mock.patch('requests.get', mock_requests.get):
            raw_response = bragi.get({
                'q': 'rue bobette',
                'count': 10
            },
                                     instances=[])
            places = raw_response.get('places')
            assert len(places) == 4
            bragi_house_jaures_response_check(places[0])
            bragi_house_lefebvre_response_check(places[1])
            bragi_street_response_check(places[2])
            bragi_admin_response_check(places[3])

        with mock.patch('requests.post', mock_requests.get):
            raw_response = bragi.get(
                {
                    'q': 'rue bobette',
                    'count': 10,
                    'shape': geojson()
                },
                instances=[])
            places = raw_response.get('places')
            assert len(places) == 4
            bragi_house_jaures_response_check(places[0])
            bragi_house_lefebvre_response_check(places[1])
            bragi_street_response_check(places[2])
            bragi_admin_response_check(places[3])
Beispiel #8
0
def bragi_make_params_with_instance_test():
    """
    test of generate params with instance
    """
    instance = mock.MagicMock()
    instance.name = 'bib'
    bragi = GeocodeJson(host='http://bob.com/autocomplete')

    request = {"q": "aa", "count": 20}

    params = bragi.make_params(request=request, instances=[instance])
    rsp = {'q': 'aa', 'limit': 20, 'pt_dataset': ['bib']}
    len(list(rsp.keys())) == len(list(params.keys()))
    for key, value in rsp.items():
        assert key in params
        assert value == params[key]
def bragi_make_params_with_instance_test():
    """
    test of generate params with instance
    """
    instance = mock.MagicMock()
    instance.name = 'bib'
    bragi = GeocodeJson(host='http://bob.com/autocomplete')

    request = {"q": "aa", "count": 20}

    params = bragi.make_params(request=request,
                               instances=[instance],
                               timeout=1)
    rsp = [('q', 'aa'), ('limit', 20), ('pt_dataset[]', 'bib'),
           ('timeout', 1000)]
    params.sort()
    rsp.sort()
    assert rsp == params
Beispiel #10
0
def bragi_make_params_without_instance_test():
    """
    test of generate params without instance
    """
    bragi = GeocodeJson(host='http://bob.com/autocomplete')

    request = {"q": "aa", "count": 20, "request_id": "1234"}

    params = bragi.make_params(request=request, instances=[], timeout=0.1)
    rsp = [
        ('q', 'aa'),
        ('limit', 20),
        ('timeout', 100),
        ("request_id", "1234"),
        ('shape_scope[]', 'addr'),
        ('shape_scope[]', 'admin'),
        ('shape_scope[]', 'poi'),
        ('shape_scope[]', 'street'),
    ]
    params.sort()
    rsp.sort()
    assert rsp == params