示例#1
0
def test_user_gets_prompted_if_output_same_as_input(mock_confirm):
    mock_confirm.return_value = False
    sys.argv = ["", "-i", "tests/data"]
    with pytest.raises(SystemExit) as e:
        assert mock_confirm.call_count == 0
        command_line_interface()
    assert mock_confirm.call_count == 1
    assert e.type == SystemExit
示例#2
0
def test_image_files_overwritten_if_no_output_dir(integration):
    sys.argv = ["", "-i", "tests/test"]
    command_line_interface()
    # We have the same number of files
    output_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 11
    # Images with a face have been cropped
    shape = cv2.imread("tests/test/king.jpg").shape
    assert shape == (500, 500, 3)
示例#3
0
def test_nofaces_copied_to_reject_d_if_both_reject_and_output_d(integration):
    sys.argv = [
        "",
        "-i",
        "tests/test",
        "-o",
        "tests/crop",
        "-r",
        "tests/reject",
    ]
    command_line_interface()
    output_files = os.listdir(sys.argv[-3])
    reject_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 7
    assert len(reject_files) == 3
示例#4
0
def test_extension_parameter(integration):
    sys.argv = [
        "",
        "-i",
        "tests/test",
        "-o",
        "tests/crop",
        "-r",
        "tests/reject",
        "-e",
        "png",
    ]
    command_line_interface()
    output_files = os.listdir("tests/crop")
    assert all(f.endswith(".png") for f in output_files)
示例#5
0
def test_cli_width_0_not_valid():
    sys.argv = ["autocrop", "-w", "0"]
    with pytest.raises(SystemExit) as e:
        command_line_interface()
    assert e.type == SystemExit
    assert "SystemExit" in str(e)
示例#6
0
def test_cli_no_images_in_input_path():
    sys.argv = ["autocrop", "-i", "tests"]
    with pytest.raises(SystemExit) as e:
        command_line_interface()
    assert e.type == SystemExit
    assert "SystemExit" in str(e)
示例#7
0
def test_cli_invalid_input_path_errors_out():
    sys.argv = ["autocrop", "-i", "asdfasdf"]
    with pytest.raises(SystemExit) as e:
        command_line_interface()
    assert e.type == SystemExit
    assert "SystemExit" in str(e)
示例#8
0
def test_cli_width_140_is_valid(mock_main):
    mock_main.return_value = None
    sys.argv = ["autocrop", "-w", "140", "--no-confirm"]
    assert mock_main.call_count == 0
    command_line_interface()
    assert mock_main.call_count == 1
示例#9
0
def test_cli_no_args_means_cwd(mock_main):
    mock_main.return_value = None
    sys.argv = ["", "--no-confirm"]
    command_line_interface()
    args, _ = mock_main.call_args
    assert args == (".", None, None, 500, 500, 50)
示例#10
0
def test_noface_files_copied_over_if_output_d_specified(integration):
    sys.argv = ["", "-i", "tests/test", "-o", "tests/crop"]
    command_line_interface()
    output_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 10
示例#11
0
def test_user_does_not_get_prompted_if_no_confirm(mock_confirm):
    mock_confirm.return_value = False
    sys.argv = ["", "-i", "tests/data", "--no-confirm"]
    assert mock_confirm.call_count == 0
    command_line_interface()
    assert mock_confirm.call_count == 0
示例#12
0
def test_user_does_not_get_prompted_if_output_d_is_given(mock_confirm):
    mock_confirm.return_value = False
    sys.argv = ["", "-i", "tests/data", "-o", "tests/crop"]
    assert mock_confirm.call_count == 0
    command_line_interface()
    assert mock_confirm.call_count == 0
示例#13
0
def test_main_overwrites_when_same_input_and_output(integration):
    sys.argv = ["", "--no-confirm", "-i", "tests/test", "-o", "tests/test"]
    command_line_interface()
    output_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 11