Exemplo n.º 1
0
def test_no_report_option(capsys):
    args = [TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert out.startswith('--- ')
Exemplo n.º 2
0
def test_non_existing_right_with_new_file(capsys):
    args = ['--new-file', __file__, '/nonexisting2']
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert ('--- %s' % __file__) in out
    assert '+++ /nonexisting2' in out
Exemplo n.º 3
0
def test_text_option_with_stdiout(capsys):
    args = ['--text', '-', TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert out.startswith('--- ')
Exemplo n.º 4
0
def test_non_existing_files(capsys):
    args = '/nonexisting1 /nonexisting2'
    with pytest.raises(SystemExit) as excinfo:
        main(args.split())
    assert excinfo.value.code == 2
    out, err = capsys.readouterr()
    assert '/nonexisting1: No such file or directory' in err
    assert '/nonexisting2: No such file or directory' in err
Exemplo n.º 5
0
def test_non_existing_files(capsys):
    args = '/nonexisting1 /nonexisting2'
    with pytest.raises(SystemExit) as excinfo:
        main(args.split())
    assert excinfo.value.code == 2
    out, err = capsys.readouterr()
    assert '/nonexisting1: No such file or directory' in err
    assert '/nonexisting2: No such file or directory' in err
Exemplo n.º 6
0
def test_non_existing_right_with_new_file(capsys):
    args = ['--new-file', __file__, '/nonexisting2']
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert ('--- %s' % __file__) in out
    assert '+++ /nonexisting2' in out
Exemplo n.º 7
0
def test_no_differences(capsys):
    args = [TEST_TAR1_PATH, TEST_TAR1_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 0
    out, err = capsys.readouterr()
    assert err == ''
    assert out == ''
Exemplo n.º 8
0
def test_html_option_with_stdout(capsys):
    args = ['--html', '-', TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert 'meta name="generator" content="diffoscope"' in out
Exemplo n.º 9
0
def test_no_differences(capsys):
    args = [TEST_TAR1_PATH, TEST_TAR1_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 0
    out, err = capsys.readouterr()
    assert err == ''
    assert out == ''
Exemplo n.º 10
0
def test_no_report_option(capsys):
    args = [TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert out.startswith('--- ')
Exemplo n.º 11
0
def test_html_option_with_stdout(capsys):
    args = ['--html', '-', TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert 'meta name="generator" content="diffoscope"' in out
Exemplo n.º 12
0
def test_text_option_with_stdiout(capsys):
    args = ['--text', '-', TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert out.startswith('--- ')
Exemplo n.º 13
0
def test_non_existing_files_with_new_file(capsys):
    args = ['--new-file', '/nonexisting1', '/nonexisting2']
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert '--- /nonexisting1' in out
    assert '+++ /nonexisting2' in out
    assert 'Trying to compare two non-existing files.' in out
Exemplo n.º 14
0
def test_list_tools(capsys):
    args = ['--list-tools']
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 0
    out, err = capsys.readouterr()
    assert err == ''
    assert 'External tools required:' in out
    assert 'xxd,' in out
Exemplo n.º 15
0
def test_list_tools(capsys):
    args = ['--list-tools']
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 0
    out, err = capsys.readouterr()
    assert err == ''
    assert 'External tools required:' in out
    assert 'xxd,' in out
Exemplo n.º 16
0
def test_non_existing_files_with_new_file(capsys):
    args = ['--new-file', '/nonexisting1', '/nonexisting2']
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert '--- /nonexisting1' in out
    assert '+++ /nonexisting2' in out
    assert 'Trying to compare two non-existing files.' in out
Exemplo n.º 17
0
def test_html_option_with_file(tmpdir, capsys):
    report_path = str(tmpdir.join('report.html'))
    args = ['--html', report_path, TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert out == ''
    with open(report_path, 'r', encoding='utf-8') as f:
        assert 'meta name="generator" content="diffoscope"' in f.read()
Exemplo n.º 18
0
def test_html_option_with_file(tmpdir, capsys):
    report_path = str(tmpdir.join('report.html'))
    args = ['--html', report_path, TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert out == ''
    with open(report_path, 'r', encoding='utf-8') as f:
        assert 'meta name="generator" content="diffoscope"' in f.read()
Exemplo n.º 19
0
def test_text_option_with_file(tmpdir, capsys):
    report_path = str(tmpdir.join('report.txt'))
    args = ['--text', report_path, TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert out == ''
    with open(report_path, 'r', encoding='utf-8') as f:
        assert f.read().startswith('--- ')
Exemplo n.º 20
0
def test_text_option_with_file(tmpdir, capsys):
    report_path = str(tmpdir.join('report.txt'))
    args = ['--text', report_path, TEST_TAR1_PATH, TEST_TAR2_PATH]
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    assert excinfo.value.code == 1
    out, err = capsys.readouterr()
    assert err == ''
    assert out == ''
    with open(report_path, 'r', encoding='utf-8') as f:
        assert f.read().startswith('--- ')
Exemplo n.º 21
0
def test_ctrl_c_handling(tmpdir, monkeypatch, capsys):
    args = [TEST_TAR1_PATH, TEST_TAR2_PATH]
    monkeypatch.setattr('tempfile.tempdir', str(tmpdir))
    def interrupt(*args):
        raise KeyboardInterrupt
    monkeypatch.setattr('diffoscope.comparators.text.TextFile.compare', interrupt)
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    out, err = capsys.readouterr()
    assert '' in err
    assert excinfo.value.code == 2
    assert os.listdir(str(tmpdir)) == []
Exemplo n.º 22
0
def test_remove_temp_files_on_sigterm(tmpdir, monkeypatch):
    args = [TEST_TAR1_PATH, TEST_TAR2_PATH]
    pid = os.fork()
    if pid == 0:
        def suicide(*args):
            os.kill(os.getpid(), signal.SIGTERM)
        monkeypatch.setattr('diffoscope.comparators.text.TextFile.compare', suicide)
        tempfile.tempdir = str(tmpdir)
        with pytest.raises(SystemExit) as excinfo:
            main(args)
        os._exit(excinfo.value.code)
    else:
        _, ret = os.waitpid(pid, 0)
        assert (ret >> 8) == 2 # having received SIGTERM is trouble
        assert os.listdir(str(tmpdir)) == []
Exemplo n.º 23
0
def test_ctrl_c_handling(tmpdir, monkeypatch, capsys):
    args = [TEST_TAR1_PATH, TEST_TAR2_PATH]
    monkeypatch.setattr('tempfile.tempdir', str(tmpdir))

    def interrupt(*args):
        raise KeyboardInterrupt

    monkeypatch.setattr('diffoscope.comparators.text.TextFile.compare',
                        interrupt)
    with pytest.raises(SystemExit) as excinfo:
        main(args)
    out, err = capsys.readouterr()
    assert '' in err
    assert excinfo.value.code == 2
    assert os.listdir(str(tmpdir)) == []
Exemplo n.º 24
0
def test_remove_temp_files_on_sigterm(tmpdir, monkeypatch):
    args = [TEST_TAR1_PATH, TEST_TAR2_PATH]
    pid = os.fork()
    if pid == 0:

        def suicide(*args):
            os.kill(os.getpid(), signal.SIGTERM)

        monkeypatch.setattr('diffoscope.comparators.text.TextFile.compare',
                            suicide)
        tempfile.tempdir = str(tmpdir)
        with pytest.raises(SystemExit) as excinfo:
            main(args)
        os._exit(excinfo.value.code)
    else:
        _, ret = os.waitpid(pid, 0)
        assert (ret >> 8) == 2  # having received SIGTERM is trouble
        assert os.listdir(str(tmpdir)) == []