Example #1
0
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
Example #2
0
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]'