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
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
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
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
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]
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])
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
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