def get_used_coverages_test(): with app.test_request_context('/v1/coverage/fr-idf'): assert get_used_coverages() == ['fr-idf'] with app.test_request_context('/v1/journeys'): register_used_coverages(['fr-bre']) assert get_used_coverages() == ['fr-bre'] with app.test_request_context('/v1/journeys'): register_used_coverages('fr-bre') assert get_used_coverages() == ['fr-bre']
def get_instances_by_coord_test(manager, mocker): mock = mocker.patch.object(manager, '_all_keys_of_coord', return_value=['paris']) with app.test_request_context('/'): instances = manager.get_instances(lon=4, lat=3) assert len(instances) == 1 assert 'paris' == instances[0].name assert mock.called
def bragi_poi_reading_test(): bragi_response = {"features": [bragi_poi_feature()]} with app.test_request_context(): response = get_response(bragi_response) context_response_check(response) navitia_response = response.get('places', {})[0] assert navitia_response.get('embedded_type') == "poi" assert navitia_response.get('id') == 'poi:osm:3224270910' assert navitia_response.get('name') == 'Mairie de Pigna (Pigna)' assert navitia_response.get('quality') == 0 poi = navitia_response.get('poi', {}) assert poi.get('label') == 'Mairie de Pigna (Pigna)' assert poi.get('name') == 'Mairie de Pigna' assert poi.get('id') == 'poi:osm:3224270910' assert poi.get('poi_type').get('id') == 'poi_type:amenity:townhall' assert poi.get('poi_type').get('name') == 'Mairie' assert poi.get('coord').get('lat') == str(42.599235500000009) assert poi.get('coord').get('lon') == "8.9028068" assert len(poi.get('administrative_regions')) == 1 administrative_region = poi.get('administrative_regions')[0] assert administrative_region.get('insee') == '2B231' assert administrative_region.get('name') == 'Pigna' assert administrative_region.get('label') == 'Pigna (20220)' assert administrative_region.get('level') == 8 assert administrative_region.get('id') == 'admin:fr:2B231' assert administrative_region.get('coord').get('lat') == "42.5996043" assert administrative_region.get('coord').get('lon') == "8.9027334" assert administrative_region.get('zip_code') == "20220-20222"
def bragi_street_reading_without_autocomplete_attribute_test(): bragi_response = {"features": [bragi_street_feature()]} with app.test_request_context(): response = get_response(bragi_response) context_response_check(response) navitia_response = response.get('places', {}) bragi_street_response_check(navitia_response[0])
def bragi_admin_reading_test(): bragi_response = {"features": [bragi_admin_feature()]} with app.test_request_context(): response = get_response(bragi_response) context_response_check(response) navitia_response = response.get('places', {}) bragi_admin_response_check(navitia_response[0])
def get_instances_by_object_id_test(manager, mocker): mock = mocker.patch.object(manager, '_all_keys_of_id', return_value=['pdl']) with app.test_request_context('/'): instances = manager.get_instances(object_id='sa:pdl') assert len(instances) == 1 assert 'pdl' == instances[0].name assert mock.called
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_house_reading_test(): bragi_response = {"features": [bragi_house_jaures_feature()]} with app.test_request_context(): response = get_response(bragi_response) context_response_check(response) assert len(response['warnings']) == 1 assert response['warnings'][0]['id'] == 'beta_endpoint' navitia_response = response.get('places', {}) bragi_house_jaures_response_check(navitia_response[0])
def get_token_basic_auth_unicode_test(): """ base64 doesn't seems to like unicode, it doesn't matter since our token are always in ascii (uuid). But we want a clean error, not a 500 """ key = base64.b64encode(u'maclé:'.encode('utf-8')).strip() with app.test_request_context('/', headers={'Authorization': 'BASIC {}'.format(key)}): with pytest.raises(Unauthorized): get_token()
def get_instances_test(manager): with app.test_request_context('/'): instances = manager.get_instances() assert len(instances) == 2 assert {'paris', 'pdl'} == {i.name for i in instances} instances = manager.get_instances('paris') assert len(instances) == 1 assert 'paris' == instances[0].name assert manager.get_instances('foo') is None
def bragi_good_geocodejson_response_without_autocomplete_attribute_test(): bragi_response = { "features": [ bragi_house_jaures_feature(), bragi_house_lefebvre_feature(), bragi_street_feature(), bragi_admin_feature(), ] } with app.test_request_context(): response = get_response(bragi_response) context_response_check(response) navitia_response = response.get('places', {}) assert len(navitia_response) == 4 bragi_house_jaures_response_check(navitia_response[0]) bragi_house_lefebvre_response_check(navitia_response[1]) bragi_street_response_check(navitia_response[2]) bragi_admin_response_check(navitia_response[3])
def bragi_stop_area_reading_test(): bragi_response = {"features": [bragi_stop_area_feature()]} with app.test_request_context(): response = get_response(bragi_response) context_response_check(response) navitia_response = response.get('places', {})[0] assert navitia_response.get('embedded_type') == "stop_area" assert navitia_response.get('id') == 'stop_area:OIF:SA:59332' assert navitia_response.get('name') == 'BOTZARIS (Paris)' assert navitia_response.get('quality') == 0 sa = navitia_response.get('stop_area', {}) assert sa.get('label') == 'BOTZARIS (Paris)' assert sa.get('name') == 'BOTZARIS' assert sa.get('id') == 'stop_area:OIF:SA:59332' assert sa.get('timezone') == 'Europe/Paris' assert sa.get('coord').get('lat') == "48.87958" assert sa.get('coord').get('lon') == "2.389462" assert 'administrative_regions' not in sa
def bragi_geocodejson_compatibility_test(): bragi_response = {"features": [bragi_geocodejson_spec_feature()]} with app.test_request_context(): response = get_response(bragi_response) context_response_check(response) navitia_response = response.get('places', {})[0] assert navitia_response.get('embedded_type') == "address" assert navitia_response.get('id') == '3.282103;49.847586' assert navitia_response.get( 'name') == '20 Rue Jean Jaures (Saint-Quentin)' address = navitia_response.get('address', {}) assert len(address.get('administrative_regions')) == 5 region_list = { region['level']: region['name'] for region in address.get('administrative_regions') } assert region_list.get(2) == 'France' assert region_list.get(4) == 'Nord-Pas-de-Calais-Picardie' assert region_list.get(7) == 'Saint-Quentin'
def get_token_url_test(): with app.test_request_context('/', query_string='key=mykey'): assert get_token() == 'mykey'
def get_token_no_token_test(): with app.test_request_context('/'): assert get_token() == None
def get_token_basic_auth_test(): key = base64.encodestring('mykey:').strip() with app.test_request_context( '/', headers={'Authorization': 'BASIC {}'.format(key)}): assert get_token() == 'mykey'
def get_token_direct_test(): with app.test_request_context('/', headers={'Authorization': 'mykey'}): assert get_token() == 'mykey'
def test_pagination(self, mock): response = ({"places_nearby": [], "pagination": None}, 200) # should not raise any exception with app.test_request_context('/v1/places'): stat_manager._manage_stat(time.time(), response) assert mock.called