def test_valid_success_response(): foo = FeatureBuilder() \ .set_query('foo') \ .set_id('bar') \ .set_name('baz') \ .set_boundary(Polygon([Ring([GeoPoint(1, 2), GeoPoint(3, 4), GeoPoint(5, 6), GeoPoint(7, 8)])])) \ .set_centroid(GeoPoint(9, 10)) \ .set_limit(GeoRect(11, 12, 13, 14)) \ .set_position(GeoRect(15, 16, 17, 18)) \ .build_geocoded() foofoo = FeatureBuilder() \ .set_query('foofoo') \ .set_id('barbar') \ .set_name('bazbaz') \ .build_geocoded() response_dict = ResponseFormatter.format( ResponseBuilder() \ .set_status(Status.success) \ .set_message('OK') \ .set_level(LevelKind.city) \ .set_geocoded_features([foo, foofoo]) .build() ) response = ResponseParser.parse(response_dict) assert isinstance(response, SuccessResponse) assert 'OK' == response.message assert 2 == len(response.answers) assert_geocoded(foo, response.answers[0].features[0]) assert_geocoded(foofoo, response.answers[1].features[0])
def test_ambiguous_response(): foo = FeatureBuilder() \ .set_query('foo') \ .set_total_namesake_count(150) \ .set_namesake_examples(FluentList() \ .add(Namesake('foo-namesake', FluentList() \ .add(NamesakeParent('foo-ns-parent', LevelKind.city)) .list())) .add(Namesake('foo-namenamesake', FluentList() \ .add(NamesakeParent('foo-nns-parent', LevelKind.state)) .add(NamesakeParent('foo--nns-parent', LevelKind.county)) .list())) .list()) \ .build_ambiguous() foofoo = FeatureBuilder() \ .set_query("foofoo") \ .set_total_namesake_count(13) \ .set_namesake_examples([]) \ .build_ambiguous() response_dict = ResponseFormatter.format( ResponseBuilder() \ .set_status(Status.ambiguous) \ .set_message('amb') \ .set_level(LevelKind.city) \ .set_ambiguous_features([foo, foofoo]) .build() ) response = ResponseParser.parse(response_dict) assert isinstance(response, AmbiguousResponse) assert 'amb' == response.message assert 2 == len(response.features) assert_ambiguous(foo, response.features[0]) assert_ambiguous(foofoo, response.features[1])
def make_error_response() -> ResponseBuilder: return ResponseBuilder() \ .set_status(Status.error) \ .set_message(MESSAGE)
def make_ambiguous_response() -> ResponseBuilder: return ResponseBuilder() \ .set_status(Status.ambiguous) \ .set_message(MESSAGE) \ .set_level(LEVEL)
def make_success_response() -> ResponseBuilder: return ResponseBuilder() \ .set_status(Status.success) \ .set_message(MESSAGE) \ .set_level(LEVEL)