def test_user_gets_prompted_if_no_output_is_given(mock_confirm):
    mock_confirm.return_value = False
    sys.argv = ["", "-i", "tests/data"]
    with pytest.raises(SystemExit) as e:
        assert mock_confirm.call_count == 0
        cli()
    assert mock_confirm.call_count == 1
    assert e.type == SystemExit
Exemple #2
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
        cli()
    assert mock_confirm.call_count == 1
    assert e.type == SystemExit
Exemple #3
0
def test_main_overwrites_when_same_input_and_output(integration):
    sys.argv = ["", "--no-confirm", "-i", "tests/test", "-o", "tests/test"]
    cli()
    output_files = os.listdir(sys.argv[-1])
    from pprint import pprint

    pprint(output_files)
    assert len(output_files) == 11
Exemple #4
0
def test_image_files_overwritten_if_no_output_dir(integration):
    sys.argv = ['', '-i', 'tests/test']
    cli()
    # We have the same number of files
    output_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 10
    # Images with a face have been cropped
    shape = cv2.imread('tests/test/king.jpg').shape
    assert shape == (500, 500, 3)
Exemple #5
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'
    ]
    cli()
    output_files = os.listdir('tests/crop')
    reject_files = os.listdir('tests/reject')
    assert len(output_files) == 0
    assert len(reject_files) == 9
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",
    ]
    cli()
    output_files = os.listdir(sys.argv[-3])
    reject_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 7
    assert len(reject_files) == 3
Exemple #7
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
    cli()
    assert mock_confirm.call_count == 0
Exemple #8
0
def test_images_files_copied_over_if_output_dir_specified(integration):
    sys.argv = ['', '-i', 'tests/test', '-o', 'tests/crop']
    cli()
    output_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 9
Exemple #9
0
def test_main_overwrites_when_same_input_and_output(integration):
    sys.argv = ['', '--no-confirm', '-i', 'tests/test', '-o', 'tests/test']
    cli()
    output_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 10
Exemple #10
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
    cli()
    assert mock_confirm.call_count == 0
Exemple #11
0
def test_cli_width_minus_14_not_valid():
    sys.argv = ['autocrop', '-w', '-14']
    with pytest.raises(SystemExit) as e:
        cli()
    assert e.type == SystemExit
    assert 'SystemExit' in str(e)
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
    cli()
    assert mock_main.call_count == 1
Exemple #13
0
def test_cli_invalid_input_path_errors_out():
    sys.argv = ['autocrop', '-i', 'asdfasdf']
    with pytest.raises(SystemExit) as e:
        cli()
    assert e.type == SystemExit
    assert 'SystemExit' in str(e)
Exemple #14
0
def test_cli_no_images_in_input_path():
    sys.argv = ['autocrop', '-i', 'tests']
    with pytest.raises(SystemExit) as e:
        cli()
    assert e.type == SystemExit
    assert 'SystemExit' in str(e)
def test_cli_invalid_input_path_errors_out():
    sys.argv = ["autocrop", "-i", "asdfasdf"]
    with pytest.raises(SystemExit) as e:
        cli()
    assert e.type == SystemExit
    assert "SystemExit" in str(e)
Exemple #16
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
    cli()
    assert mock_main.call_count == 1
def test_cli_no_images_in_input_path():
    sys.argv = ["autocrop", "-i", "tests"]
    with pytest.raises(SystemExit) as e:
        cli()
    assert e.type == SystemExit
    assert "SystemExit" in str(e)
def test_noface_files_copied_over_if_output_d_specified(integration):
    sys.argv = ["", "-i", "tests/test", "-o", "tests/crop"]
    cli()
    output_files = os.listdir(sys.argv[-1])
    assert len(output_files) == 10
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
    cli()
    assert mock_confirm.call_count == 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
    cli()
    assert mock_confirm.call_count == 0
def test_cli_width_minus_14_not_valid():
    sys.argv = ["autocrop", "-w", "-14"]
    with pytest.raises(SystemExit) as e:
        cli()
    assert e.type == SystemExit
    assert "SystemExit" in str(e)
Exemple #22
0
def test_cli_no_args_means_cwd(mock_main):
    mock_main.return_value = None
    sys.argv = ['', '--no-confirm']
    cli()
    args, _ = mock_main.call_args
    assert args == ('.', None, 500, 500)
def test_cli_no_args_means_cwd(mock_main):
    mock_main.return_value = None
    sys.argv = ["", "--no-confirm"]
    cli()
    args, _ = mock_main.call_args
    assert args == (".", None, None, 500, 500, 50, False, False, False, False)