def test_anno_image_input_batch_request_skip_bad(img_file, json_file): adapter = AnnotatedImageInput(is_batch_input=True) multipart_data, headers = generate_multipart_body(img_file, json_file) empty_request = SimpleRequest(headers=headers, data=None) request = SimpleRequest.from_flask_request( Request.from_values( data=multipart_data, content_type=headers['Content-Type'], content_length=headers['Content-Length'], )) image = ("image.jpg", open(img_file, "rb").read()) json = ("annotations.jso", open(json_file, "rb").read()) files = {"image.invalid": image, "annotations.invalid": json} bad_data, content_type = encode_multipart_formdata(files) bad_request = SimpleRequest.from_flask_request( Request.from_values( data=bad_data, content_type=content_type, content_length=len(bad_data), )) responses = adapter.handle_batch_request( [empty_request, request, bad_request], predict_image_and_json) assert len(responses) == 3 assert responses[0] is None assert responses[1].status == 200 and responses[ 1].data == '[[10, 10, 3], "kaith"]' assert responses[2] is None bad_responses = adapter.handle_batch_request([empty_request], predict_image_and_json) assert len(bad_responses) == 1 assert bad_responses[0] is None
def test_anno_image_input_batch_request_image_only(img_file): adapter = AnnotatedImageInput(is_batch_input=True) multipart_data, headers = generate_multipart_body(img_file) request = SimpleRequest.from_flask_request( Request.from_values( data=multipart_data, content_type=headers['Content-Type'], content_length=headers['Content-Length'], )) responses = adapter.handle_batch_request([request] * 5, predict_image_only) for response in responses: assert response.status == 200 assert response.data == '[10, 10, 3]'