def test_geocoding_request():
    foo = _query(request='foo')
    bar = _query(request='bar',
                 scope=MapRegion.with_name('baz'),
                 ambiguity_resolver=AmbiguityResolver(
                     ignoring_strategy=IgnoringStrategyKind.skip_all))

    request: GeocodingRequest = RequestBuilder() \
        .set_request_kind(RequestKind.geocoding) \
        .set_requested_payload([PayloadKind.boundaries, PayloadKind.centroids]) \
        .set_resolution(123) \
        .set_level(LevelKind.city) \
        .set_namesake_limit(10) \
        .set_queries([foo, bar]) \
        .build()

    json = RequestFormatter().format(request).to_dict()

    parsed_request = RequestParser().parse(json)

    assert isinstance(parsed_request, GeocodingRequest)
    assert request.requested_payload == parsed_request.requested_payload
    assert request.resolution == parsed_request.resolution

    assert request.level == parsed_request.level
    assert request.namesake_example_limit == parsed_request.namesake_example_limit
    assert 2 == len(parsed_request.region_queries)
    assert_region_query(foo, parsed_request.region_queries[0])
    assert_region_query(bar, parsed_request.region_queries[1])
def test_explicit_request():
    request: ExplicitRequest = RequestBuilder() \
        .set_request_kind(RequestKind.explicit) \
        .set_ids(['1', '2', '3']) \
        .build()

    json = RequestFormatter().format(request).to_dict()

    parsed_request = RequestParser().parse(json)

    assert isinstance(parsed_request, ExplicitRequest)
    assert request.requested_payload == parsed_request.requested_payload
    assert request.resolution == parsed_request.resolution

    assert request.geo_object_list == parsed_request.geo_object_list
Example #3
0
def test_ambiguity_resolver():
    foo = _query(request='foo', ambiguity_resolver=AmbiguityResolver(closest_coord=GeoPoint(1, 2)))

    request: GeocodingRequest = RequestBuilder() \
        .set_request_kind(RequestKind.geocoding) \
        .set_namesake_limit(10) \
        .set_queries([foo]) \
        .build()

    json = RequestFormatter().format(request).to_dict()

    parsed_request = RequestParser().parse(json)

    assert isinstance(parsed_request, GeocodingRequest)
    assert 1 == len(parsed_request.region_queries)
    assert_region_query(foo, parsed_request.region_queries[0])
Example #4
0
def test_ambiguity_resolver_with_box():
    foo = _query(request='foo', ambiguity_resolver=AmbiguityResolver(box=GeoRect(0, 1, 2, 3)))

    request: GeocodingRequest = RequestBuilder() \
        .set_request_kind(RequestKind.geocoding) \
        .set_namesake_limit(10) \
        .set_queries([foo]) \
        .set_allow_ambiguous(True) \
        .build()

    json = RequestFormatter().format(request).to_dict()

    parsed_request = RequestParser().parse(json)

    assert isinstance(parsed_request, GeocodingRequest)
    assert 1 == len(parsed_request.region_queries)
    assert parsed_request.allow_ambiguous
    assert_region_query(foo, parsed_request.region_queries[0])
def test_reverse_request():
    request: ReverseGeocodingRequest = RequestBuilder() \
        .set_request_kind(RequestKind.reverse) \
        .set_reverse_coordinates([GeoPoint(1.0, 2.0)]) \
        .set_level(LevelKind.city) \
        .set_reverse_scope(MapRegion.with_name('foo_region')) \
        .set_resolution(123) \
        .set_requested_payload([PayloadKind.boundaries, PayloadKind.centroids]) \
        .build()

    json = RequestFormatter().format(request).to_dict()

    parsed_request: ReverseGeocodingRequest = RequestParser().parse(json)

    assert isinstance(parsed_request, ReverseGeocodingRequest)
    assert request.requested_payload == parsed_request.requested_payload
    assert request.resolution == parsed_request.resolution

    assert request.coordinates == parsed_request.coordinates
    assert request.level == parsed_request.level
    assert request.scope == parsed_request.scope