def test_image_handler_http_request_malformatted_input_wrong_input_name():
    test_image_handler = ImageHandler()
    request = mock.MagicMock(spec=flask.Request)

    request.method = "POST"
    request.files = {"abc": None}
    request.headers = {}
    request.get_data.return_value = None

    with pytest.raises(BadInput) as e:
        test_image_handler.handle_request(request, predict)

    assert "unexpected HTTP request format" in str(e.value)
Esempio n. 2
0
def test_image_handler_http_request_wrong_request_method():
    test_image_handler = ImageHandler()
    request = mock.MagicMock(spec=flask.Request)
    request.method = "GET"

    response = test_image_handler.handle_request(request, predict)
    assert response.status_code == 405
    assert "only accept POST request" in str(response.response)
Esempio n. 3
0
def test_image_handler_http_request_post_binary(img_file):
    test_image_handler = ImageHandler()
    request = mock.MagicMock(spec=flask.Request)
    request.method = "POST"
    request.files = {}
    request.headers = {}
    request.get_data.return_value = open(str(img_file), 'rb')

    response = test_image_handler.handle_request(request, predict)

    assert response.status_code == 200
    assert "[10, 10, 3]" in str(response.response)
Esempio n. 4
0
def test_image_handler_http_request_malformatted_input_wrong_input_name():
    test_image_handler = ImageHandler(input_names=("my_image", "my_image2"))
    request = mock.MagicMock(spec=flask.Request)

    request.method = "POST"
    request.files = {"abc": None}
    request.headers = {}
    request.get_data.return_value = None

    response = test_image_handler.handle_request(request, predict)

    assert response.status_code == 400
    assert "unexpected HTTP request format" in str(response.response)
Esempio n. 5
0
def test_image_handler_http_request_single_image_different_name(img_file):
    test_image_handler = ImageHandler(input_names=("my_image", ))
    request = mock.MagicMock(spec=flask.Request)
    file_attr = {
        'filename': 'test_img.png',
        'read.return_value': open(str(img_file), 'rb').read(),
    }
    file = mock.Mock(**file_attr)

    request.method = "POST"
    request.files = {"a_differnt_name_used": file}
    request.headers = {}
    request.get_data.return_value = None

    response = test_image_handler.handle_request(request, predict)

    assert response.status_code == 200
    assert "[10, 10, 3]" in str(response.response)
def test_image_handler_http_request_multipart_form(img_file):
    test_image_handler = ImageHandler()
    request = mock.MagicMock(spec=flask.Request)
    file_bytes = open(str(img_file), 'rb').read()
    file_attr = {
        'filename': 'test_img.png',
        'read.return_value': file_bytes,
        'stream': file_bytes,
    }
    file = mock.Mock(**file_attr)

    request.method = "POST"
    request.files = {"image_file": file}
    request.headers = {}
    request.get_data.return_value = None

    response = test_image_handler.handle_request(request, predict)

    assert response.status_code == 200
    assert "[10, 10, 3]" in str(response.response)