Beispiel #1
0
def test_custom_regex():
    """Test custom word regex"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned_abondon\n')
        assert_equal(cs.main(d), 0)
        assert_equal(cs.main('-r', "[a-z]+", d), 2)
Beispiel #2
0
def test_ignore_word_list(tmpdir):
    """Test ignore word list functionality"""
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned\nabondon\nabilty\n')
    assert cs.main(d) == 3
    assert cs.main('-Labandonned,someword', '-Labilty', d) == 1
Beispiel #3
0
def test_ignore_word_list(tmpdir):
    """Test ignore word list functionality"""
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned\nabondon\nabilty\n')
    assert cs.main(d) == 3
    assert cs.main('-Labandonned,someword', '-Labilty', d) == 1
Beispiel #4
0
def test_custom_regex(reload_codespell_lib):
    """Test custom word regex"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned_abondon\n')
        assert cs.main(d) == 0
        assert cs.main('-r', "[a-z]+", d) == 2
Beispiel #5
0
def test_custom_regex():
    """Test custom word regex"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned_abondon\n')
        assert_equal(cs.main(d), 0)
        assert_equal(cs.main('-r', "[a-z]+", d), 2)
Beispiel #6
0
def test_ignore_dictionary(tmpdir):
    """Test ignore dictionary functionality."""
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('1 abandonned 1\n2 abandonned 2\nabondon\n')
    bad_name = f.name
    assert cs.main(bad_name) == 3
    with open(op.join(d, 'ignore.txt'), 'w') as f:
        f.write('abandonned\n')
    assert cs.main('-I', f.name, bad_name) == 1
Beispiel #7
0
def test_ignore_dictionary(tmpdir):
    """Test ignore dictionary functionality."""
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('1 abandonned 1\n2 abandonned 2\nabondon\n')
    bad_name = f.name
    assert cs.main(bad_name) == 3
    with open(op.join(d, 'ignore.txt'), 'w') as f:
        f.write('abandonned\n')
    assert cs.main('-I', f.name, bad_name) == 1
Beispiel #8
0
def test_custom_regex(tmpdir, capsys):
    """Test custom word regex."""
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned_abondon\n')
    assert cs.main(d) == 0
    assert cs.main('-r', "[a-z]+", d) == 2
    capsys.readouterr()
    assert cs.main('-r', '[a-z]+', '--write-changes', d) == 1
    assert 'ERROR:' in capsys.readouterr()[0]
def test_exclude_file():
    """Test exclude file functionality"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned 1\nabandonned 2\n')
        with tempfile.NamedTemporaryFile('w') as f:
            f.write('abandonned 1\n')
            f.flush()
            assert_equal(main(d), 2)
            assert_equal(main('-x', f.name, d), 1)
Beispiel #10
0
def test_exclude_file():
    """Test exclude file functionality"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned 1\nabandonned 2\n')
        with tempfile.NamedTemporaryFile('w') as f:
            f.write('abandonned 1\n')
            f.flush()
            assert_equal(main(d), 2)
            assert_equal(main('-x', f.name, d), 1)
Beispiel #11
0
def test_custom_regex(tmpdir, capsys):
    """Test custom word regex."""
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned_abondon\n')
    assert cs.main(d) == 0
    assert cs.main('-r', "[a-z]+", d) == 2
    capsys.readouterr()
    assert cs.main('-r', '[a-z]+', '--write-changes', d) == 1
    assert 'ERROR:' in capsys.readouterr()[0]
Beispiel #12
0
def test_exclude_file(tmpdir):
    """Test exclude file functionality."""
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'wb') as f:
        f.write('1 abandonned 1\n2 abandonned 2\n'.encode('utf-8'))
    bad_name = f.name
    assert cs.main(bad_name) == 2
    with open(op.join(d, 'tmp.txt'), 'wb') as f:
        f.write('1 abandonned 1\n'.encode('utf-8'))
    assert cs.main(bad_name) == 2
    assert cs.main('-x', f.name, bad_name) == 1
Beispiel #13
0
def test_exclude_file(tmpdir):
    """Test exclude file functionality."""
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'wb') as f:
        f.write('1 abandonned 1\n2 abandonned 2\n'.encode('utf-8'))
    bad_name = f.name
    assert cs.main(bad_name) == 2
    with open(op.join(d, 'tmp.txt'), 'wb') as f:
        f.write('1 abandonned 1\n'.encode('utf-8'))
    assert cs.main(bad_name) == 2
    assert cs.main('-x', f.name, bad_name) == 1
Beispiel #14
0
def test_exclude_file():
    """Test exclude file functionality"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'wb') as f:
            f.write('abandonned 1\nabandonned 2\n'.encode('utf-8'))
        assert_equal(cs.main(d), 2)
        with tempfile.NamedTemporaryFile('w') as f:
            pass
        with open(f.name, 'wb') as f:
            f.write('abandonned 1\n'.encode('utf-8'))
        assert_equal(cs.main(d), 2)
        assert_equal(cs.main('-x', f.name, d), 1)
Beispiel #15
0
def test_exclude_file():
    """Test exclude file functionality"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'wb') as f:
            f.write('abandonned 1\nabandonned 2\n'.encode('utf-8'))
        assert_equal(cs.main(d), 2)
        with tempfile.NamedTemporaryFile('w') as f:
            pass
        with open(f.name, 'wb') as f:
            f.write('abandonned 1\n'.encode('utf-8'))
        assert_equal(cs.main(d), 2)
        assert_equal(cs.main('-x', f.name, d), 1)
Beispiel #16
0
def test_check_filename(tmpdir):
    """Test filename check."""
    d = str(tmpdir)
    # Empty file
    with open(op.join(d, 'abandonned.txt'), 'w') as f:
        f.write('')
    assert cs.main('-f', d) == 1
    # Normal file with contents
    with open(op.join(d, 'abandonned.txt'), 'w') as f:
        f.write('.')
    assert cs.main('-f', d) == 1
    # Normal file with binary contents
    with open(op.join(d, 'abandonned.txt'), 'wb') as f:
        f.write(b'\x00\x00naiive\x00\x00')
    assert cs.main('-f', d) == 1
Beispiel #17
0
def test_check_filename_irregular_file(tmpdir):
    """Test irregular file filename check."""
    # Irregular file (!isfile())
    d = str(tmpdir)
    os.mkfifo(op.join(d, 'abandonned'))
    assert cs.main('-f', d) == 1
    d = str(tmpdir)
Beispiel #18
0
def test_case_handling(tmpdir, capsys):
    """Test that capitalized entries get detected properly."""
    # Some simple Unicode things
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    # with CaptureStdout() as sio:
    assert cs.main(f.name) == 0
    try:
        with open(f.name, 'wb') as f:
            f.write('this has an ACII error'.encode('utf-8'))
        assert cs.main(f.name) == 1
        assert 'ASCII' in capsys.readouterr()[0]
        assert cs.main('-w', f.name) == 0
        assert 'FIXED' in capsys.readouterr()[1]
        with open(f.name, 'rb') as f:
            assert f.read().decode('utf-8') == 'this has an ASCII error'
    finally:
        os.remove(f.name)
Beispiel #19
0
def test_case_handling(tmpdir, capsys):
    """Test that capitalized entries get detected properly."""
    # Some simple Unicode things
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    # with CaptureStdout() as sio:
    assert cs.main(f.name) == 0
    try:
        with open(f.name, 'wb') as f:
            f.write('this has an ACII error'.encode('utf-8'))
        assert cs.main(f.name) == 1
        assert 'ASCII' in capsys.readouterr()[0]
        assert cs.main('-w', f.name) == 0
        assert 'FIXED' in capsys.readouterr()[1]
        with open(f.name, 'rb') as f:
            assert f.read().decode('utf-8') == 'this has an ASCII error'
    finally:
        os.remove(f.name)
Beispiel #20
0
def test_ignore_dictionary():
    """Test ignore dictionary functionality"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned\nabondon\n')
        with tempfile.NamedTemporaryFile('w') as f:
            pass
        with open(f.name, 'w') as f:
            f.write('abandonned\n')
        assert_equal(cs.main('-I', f.name, d), 1)
Beispiel #21
0
def test_ignore_dictionary():
    """Test ignore dictionary functionality"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned\nabondon\n')
        with tempfile.NamedTemporaryFile('w') as f:
            pass
        with open(f.name, 'w') as f:
            f.write('abandonned\n')
        assert_equal(cs.main('-I', f.name, d), 1)
Beispiel #22
0
def test_case_handling(reload_codespell_lib):
    """Test that capitalized entries get detected properly."""
    # Some simple Unicode things
    with tempfile.NamedTemporaryFile('wb') as f:
        pass
    # with CaptureStdout() as sio:
    assert cs.main(f.name) == 0
    try:
        with open(f.name, 'wb') as f:
            f.write('this has an ACII error'.encode('utf-8'))
        with CaptureStdout() as sio:
            assert cs.main(f.name) == 1
        assert 'ASCII' in sio[0]
        with CaptureStdout() as sio:
            assert cs.main('-w', f.name) == 0
        assert 'FIXED' in sio[1]
        with open(f.name, 'rb') as f:
            assert f.read().decode('utf-8') == 'this has an ASCII error'
    finally:
        os.remove(f.name)
Beispiel #23
0
def test_encoding():
    """Test encoding handling"""
    # Some simple Unicode things
    with tempfile.NamedTemporaryFile('wb') as f:
        pass
    # with CaptureStdout() as sio:
    assert_equal(cs.main(f.name), 0)
    try:
        with open(f.name, 'wb') as f:
            f.write(u'naïve\n'.encode('utf-8'))
        assert_equal(cs.main(f.name), 0)
        assert_equal(cs.main('-e', f.name), 0)
        with open(f.name, 'ab') as f:
            f.write(u'naieve\n'.encode('utf-8'))
        assert_equal(cs.main(f.name), 1)
        # Binary file warning
        with open(f.name, 'wb') as f:
            f.write(b'\x00\x00naiive\x00\x00')
        with CaptureStdout() as sio:
            assert_equal(cs.main(f.name), 0)
        assert_true('WARNING: Binary file' in sio[1])
        with CaptureStdout() as sio:
            assert_equal(cs.main('-q', '2', f.name), 0)
        assert_equal(sio[1], '')
    finally:
        os.remove(f.name)
Beispiel #24
0
def test_encoding():
    """Test encoding handling"""
    # Some simple Unicode things
    with tempfile.NamedTemporaryFile('wb') as f:
        pass
    # with CaptureStdout() as sio:
    assert_equal(cs.main(f.name), 0)
    try:
        with open(f.name, 'wb') as f:
            f.write(u'naïve\n'.encode('utf-8'))
        assert_equal(cs.main(f.name), 0)
        assert_equal(cs.main('-e', f.name), 0)
        with open(f.name, 'ab') as f:
            f.write(u'naieve\n'.encode('utf-8'))
        assert_equal(cs.main(f.name), 1)
        # Binary file warning
        with open(f.name, 'wb') as f:
            f.write(b'\x00\x00naiive\x00\x00')
        with CaptureStdout() as sio:
            assert_equal(cs.main(f.name), 0)
        assert_true('WARNING: Binary file' in sio[1])
        with CaptureStdout() as sio:
            assert_equal(cs.main('-q', '2', f.name), 0)
        assert_equal(sio[1], '')
    finally:
        os.remove(f.name)
Beispiel #25
0
def test_encoding(tmpdir, capsys):
    """Test encoding handling."""
    # Some simple Unicode things
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    # with CaptureStdout() as sio:
    assert cs.main(f.name) == 0
    try:
        with open(f.name, 'wb') as f:
            f.write(u'naïve\n'.encode('utf-8'))
        assert cs.main(f.name) == 0
        assert cs.main('-e', f.name) == 0
        with open(f.name, 'ab') as f:
            f.write(u'naieve\n'.encode('utf-8'))
        assert cs.main(f.name) == 1
        # Binary file warning
        with open(f.name, 'wb') as f:
            f.write(b'\x00\x00naiive\x00\x00')
        capsys.readouterr()
        assert cs.main(f.name) == 0
        assert 'WARNING: Binary file' in capsys.readouterr()[1]
        assert cs.main('-q', '2', f.name) == 0
        assert capsys.readouterr() == ('', '')
    finally:
        os.remove(f.name)
Beispiel #26
0
def test_encoding(tmpdir, capsys):
    """Test encoding handling."""
    # Some simple Unicode things
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    # with CaptureStdout() as sio:
    assert cs.main(f.name) == 0
    try:
        with open(f.name, 'wb') as f:
            f.write(u'naïve\n'.encode('utf-8'))
        assert cs.main(f.name) == 0
        assert cs.main('-e', f.name) == 0
        with open(f.name, 'ab') as f:
            f.write(u'naieve\n'.encode('utf-8'))
        assert cs.main(f.name) == 1
        # Binary file warning
        with open(f.name, 'wb') as f:
            f.write(b'\x00\x00naiive\x00\x00')
        capsys.readouterr()
        assert cs.main(f.name) == 0
        assert 'WARNING: Binary file' in capsys.readouterr()[1]
        assert cs.main('-q', '2', f.name) == 0
        assert capsys.readouterr() == ('', '')
    finally:
        os.remove(f.name)
Beispiel #27
0
def test_ignore(tmpdir):
    """Test ignoring of files and directories."""
    d = str(tmpdir)
    with open(op.join(d, 'good.txt'), 'w') as f:
        f.write('this file is okay')
    assert cs.main(d) == 0
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned')
    assert cs.main(d) == 1
    assert cs.main('--skip=bad*', d) == 0
    assert cs.main('--skip=bad.txt', d) == 0
    subdir = op.join(d, 'ignoredir')
    os.mkdir(subdir)
    with open(op.join(subdir, 'bad.txt'), 'w') as f:
        f.write('abandonned')
    assert cs.main(d) == 2
    assert cs.main('--skip=bad*', d) == 0
    assert cs.main('--skip=*ignoredir*', d) == 1
    assert cs.main('--skip=ignoredir', d) == 1
    assert cs.main('--skip=*ignoredir/bad*', d) == 1
Beispiel #28
0
def test_ignore(tmpdir):
    """Test ignoring of files and directories."""
    d = str(tmpdir)
    with open(op.join(d, 'good.txt'), 'w') as f:
        f.write('this file is okay')
    assert cs.main(d) == 0
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned')
    assert cs.main(d) == 1
    assert cs.main('--skip=bad*', d) == 0
    assert cs.main('--skip=bad.txt', d) == 0
    subdir = op.join(d, 'ignoredir')
    os.mkdir(subdir)
    with open(op.join(subdir, 'bad.txt'), 'w') as f:
        f.write('abandonned')
    assert cs.main(d) == 2
    assert cs.main('--skip=bad*', d) == 0
    assert cs.main('--skip=*ignoredir*', d) == 1
    assert cs.main('--skip=ignoredir', d) == 1
    assert cs.main('--skip=*ignoredir/bad*', d) == 1
Beispiel #29
0
 def main(self, *args, count=True, std=False, **kwargs):
     if count:
         args = ('--count', ) + args
     code = cs_.main(*args, **kwargs)
     capsys = inspect.currentframe().f_back.f_locals['capsys']
     stdout, stderr = capsys.readouterr()
     assert code in (EX_OK, EX_USAGE, EX_DATAERR)
     if code == EX_DATAERR:  # have some misspellings
         code = int(stderr.split('\n')[-2])
     elif code == EX_OK and count:
         code = int(stderr.split('\n')[-2])
         assert code == 0
     if std:
         return (code, stdout, stderr)
     else:
         return code
Beispiel #30
0
def test_ignore():
    """Test ignoring of files and directories"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'good.txt'), 'w') as f:
            f.write('this file is okay')
        assert_equal(cs.main(d), 0)
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned')
        assert_equal(cs.main(d), 1)
        assert_equal(cs.main('--skip=bad*', d), 0)
        assert_equal(cs.main('--skip=bad.txt', d), 0)
        subdir = op.join(d, 'ignoredir')
        os.mkdir(subdir)
        with open(op.join(subdir, 'bad.txt'), 'w') as f:
            f.write('abandonned')
        assert_equal(cs.main(d), 2)
        assert_equal(cs.main('--skip=bad*', d), 0)
        assert_equal(cs.main('--skip=*ignoredir*', d), 1)
        assert_equal(cs.main('--skip=ignoredir', d), 1)
Beispiel #31
0
def test_ignore():
    """Test ignoring of files and directories"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'good.txt'), 'w') as f:
            f.write('this file is okay')
        assert_equal(cs.main(d), 0)
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned')
        assert_equal(cs.main(d), 1)
        assert_equal(cs.main('--skip=bad*', d), 0)
        assert_equal(cs.main('--skip=bad.txt', d), 0)
        subdir = op.join(d, 'ignoredir')
        os.mkdir(subdir)
        with open(op.join(subdir, 'bad.txt'), 'w') as f:
            f.write('abandonned')
        assert_equal(cs.main(d), 2)
        assert_equal(cs.main('--skip=bad*', d), 0)
        assert_equal(cs.main('--skip=*ignoredir*', d), 1)
        assert_equal(cs.main('--skip=ignoredir', d), 1)
Beispiel #32
0
def test_check_hidden(tmpdir):
    """Test ignoring of hidden files."""
    d = str(tmpdir)
    # hidden file
    with open(op.join(d, 'test.txt'), 'w') as f:
        f.write('abandonned\n')
    assert cs.main(op.join(d, 'test.txt')) == 1
    os.rename(op.join(d, 'test.txt'), op.join(d, '.test.txt'))
    assert cs.main(op.join(d, '.test.txt')) == 0
    assert cs.main('--check-hidden', op.join(d, '.test.txt')) == 1
    os.rename(op.join(d, '.test.txt'), op.join(d, '.abandonned.txt'))
    assert cs.main(op.join(d, '.abandonned.txt')) == 0
    assert cs.main('--check-hidden', op.join(d, '.abandonned.txt')) == 1
    assert cs.main('--check-hidden', '--check-filenames',
                   op.join(d, '.abandonned.txt')) == 2
Beispiel #33
0
def test_check_hidden():
    """Test ignoring of hidden files"""
    with TemporaryDirectory() as d:
        # hidden file
        with open(op.join(d, 'test.txt'), 'w') as f:
            f.write('abandonned\n')
        assert cs.main(op.join(d, 'test.txt')) == 1
        os.rename(op.join(d, 'test.txt'), op.join(d, '.test.txt'))
        assert cs.main(op.join(d, '.test.txt')) == 0
        assert cs.main('--check-hidden', op.join(d, '.test.txt')) == 1
        os.rename(op.join(d, '.test.txt'), op.join(d, '.abandonned.txt'))
        assert cs.main(op.join(d, '.abandonned.txt')) == 0
        assert cs.main('--check-hidden', op.join(d, '.abandonned.txt')) == 1
        assert cs.main('--check-hidden', '--check-filenames',
                       op.join(d, '.abandonned.txt')) == 2
Beispiel #34
0
def test_check_hidden(tmpdir):
    """Test ignoring of hidden files."""
    d = str(tmpdir)
    # hidden file
    with open(op.join(d, 'test.txt'), 'w') as f:
        f.write('abandonned\n')
    assert cs.main(op.join(d, 'test.txt')) == 1
    os.rename(op.join(d, 'test.txt'), op.join(d, '.test.txt'))
    assert cs.main(op.join(d, '.test.txt')) == 0
    assert cs.main('--check-hidden', op.join(d, '.test.txt')) == 1
    os.rename(op.join(d, '.test.txt'), op.join(d, '.abandonned.txt'))
    assert cs.main(op.join(d, '.abandonned.txt')) == 0
    assert cs.main('--check-hidden', op.join(d, '.abandonned.txt')) == 1
    assert cs.main('--check-hidden', '--check-filenames',
                   op.join(d, '.abandonned.txt')) == 2
Beispiel #35
0
def test_summary():
    """Test summary functionality"""
    with tempfile.NamedTemporaryFile('w') as f:
        with CaptureStdout() as sio:
            main(f.name)
        for ii in range(2):
            assert_equal(sio[ii], '')  # no output
        with CaptureStdout() as sio:
            main(f.name, '--summary')
        assert_equal(sio[1], '')  # stderr
        assert_true('SUMMARY' in sio[0])
        assert_equal(len(sio[0].split('\n')), 5)  # no output
        f.write('abandonned\nabandonned')
        f.flush()
        with CaptureStdout() as sio:
            main(f.name, '--summary')
        assert_equal(sio[1], '')  # stderr
        assert_true('SUMMARY' in sio[0])
        assert_equal(len(sio[0].split('\n')), 7)
        assert_true('abandonned' in sio[0].split()[-2])
Beispiel #36
0
def test_summary():
    """Test summary functionality"""
    with tempfile.NamedTemporaryFile('w') as f:
        with CaptureStdout() as sio:
            main(f.name)
        for ii in range(2):
            assert_equal(sio[ii], '')  # no output
        with CaptureStdout() as sio:
            main(f.name, '--summary')
        assert_equal(sio[1], '')  # stderr
        assert_true('SUMMARY' in sio[0])
        assert_equal(len(sio[0].split('\n')), 5)  # no output
        f.write('abandonned\nabandonned')
        f.flush()
        with CaptureStdout() as sio:
            main(f.name, '--summary')
        assert_equal(sio[1], '')  # stderr
        assert_true('SUMMARY' in sio[0])
        assert_equal(len(sio[0].split('\n')), 7)
        assert_true('abandonned' in sio[0].split()[-2])
Beispiel #37
0
def test_encoding():
    """Test encoding handling"""
    # Some simple Unicode things
    with tempfile.NamedTemporaryFile('wb') as f:
        # with CaptureStdout() as sio:
        assert_equal(main(f.name), 0)
        f.write(u'naïve\n'.encode('utf-8'))
        f.flush()
        assert_equal(main(f.name), 0)
        assert_equal(main('-e', f.name), 0)
        f.write(u'naieve\n'.encode('utf-8'))
        f.flush()
        assert_equal(main(f.name), 1)
    # Binary file warning
    with tempfile.NamedTemporaryFile('wb') as f:
        assert_equal(main(f.name), 0)
        f.write(b'\x00\x00naiive\x00\x00')
        f.flush()
        with CaptureStdout() as sio:
            assert_equal(main(f.name), 0)
        assert_true('WARNING: Binary file' in sio[1])
        with CaptureStdout() as sio:
            assert_equal(main('-q', '2', f.name), 0)
        assert_equal(sio[1], '')
Beispiel #38
0
def test_encoding():
    """Test encoding handling"""
    # Some simple Unicode things
    with tempfile.NamedTemporaryFile('wb') as f:
        # with CaptureStdout() as sio:
        assert_equal(main(f.name), 0)
        f.write(u'naïve\n'.encode('utf-8'))
        f.flush()
        assert_equal(main(f.name), 0)
        assert_equal(main('-e', f.name), 0)
        f.write(u'naieve\n'.encode('utf-8'))
        f.flush()
        assert_equal(main(f.name), 1)
    # Binary file warning
    with tempfile.NamedTemporaryFile('wb') as f:
        assert_equal(main(f.name), 0)
        f.write(b'\x00\x00naiive\x00\x00')
        f.flush()
        with CaptureStdout() as sio:
            assert_equal(main(f.name), 0)
        assert_true('WARNING: Binary file' in sio[1])
        with CaptureStdout() as sio:
            assert_equal(main('-q', '2', f.name), 0)
        assert_equal(sio[1], '')
Beispiel #39
0
def test_summary(tmpdir, capsys):
    """Test summary functionality"""
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    try:
        cs.main(f.name)
        assert capsys.readouterr() == ('', ''), 'no output'
        cs.main(f.name, '--summary')
        stdout, stderr = capsys.readouterr()
        assert stderr == ''
        assert 'SUMMARY' in stdout
        assert len(stdout.split('\n')) == 5
        with open(f.name, 'w') as f:
            f.write('abandonned\nabandonned')
        cs.main(f.name, '--summary')
        stdout, stderr = capsys.readouterr()
        assert stderr == ''
        assert 'SUMMARY' in stdout
        assert len(stdout.split('\n')) == 7
        assert 'abandonned' in stdout.split()[-2]
    finally:
        os.remove(f.name)
Beispiel #40
0
def test_summary(tmpdir, capsys):
    """Test summary functionality"""
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    try:
        cs.main(f.name)
        assert capsys.readouterr() == ('', ''), 'no output'
        cs.main(f.name, '--summary')
        stdout, stderr = capsys.readouterr()
        assert stderr == ''
        assert 'SUMMARY' in stdout
        assert len(stdout.split('\n')) == 5
        with open(f.name, 'w') as f:
            f.write('abandonned\nabandonned')
        cs.main(f.name, '--summary')
        stdout, stderr = capsys.readouterr()
        assert stderr == ''
        assert 'SUMMARY' in stdout
        assert len(stdout.split('\n')) == 7
        assert 'abandonned' in stdout.split()[-2]
    finally:
        os.remove(f.name)
Beispiel #41
0
def test_summary():
    """Test summary functionality"""
    with tempfile.NamedTemporaryFile('w') as f:
        pass
    try:
        with CaptureStdout() as sio:
            cs.main(f.name)
        for ii in range(2):
            assert sio[ii] == '', 'no output'
        with CaptureStdout() as sio:
            cs.main(f.name, '--summary')
        assert sio[1] == '', 'stderr'
        assert 'SUMMARY' in sio[0]
        assert len(sio[0].split('\n')) == 5, 'no output'
        with open(f.name, 'w') as f:
            f.write('abandonned\nabandonned')
        with CaptureStdout() as sio:
            cs.main(f.name, '--summary')
        assert sio[1] == '', 'stderr'
        assert 'SUMMARY' in sio[0]
        assert len(sio[0].split('\n')) == 7
        assert 'abandonned' in sio[0].split()[-2]
    finally:
        os.remove(f.name)
Beispiel #42
0
def test_basic():
    """Test some basic functionality"""
    assert_equal(main('_does_not_exist_'), 0)
    with tempfile.NamedTemporaryFile('w') as f:
        with CaptureStdout() as sio:
            assert_equal(main('-D', 'foo', f.name), 1)  # missing dictionary
        assert_true('cannot find dictionary' in sio[1])
        assert_equal(main(f.name), 0)  # empty file
        f.write('this is a test file\n')
        f.flush()
        assert_equal(main(f.name), 0)  # good
        f.write('abandonned\n')
        f.flush()
        assert_equal(main(f.name), 1)  # bad
        f.write('abandonned\n')
        f.flush()
        assert_equal(main(f.name), 2)  # worse
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned\nAbandonned\nABANDONNED\nAbAnDoNnEd')
        assert_equal(main(d), 4)
        with CaptureStdout() as sio:
            assert_equal(main('-w', d), 0)
        assert_true('FIXED:' in sio[1])
        with open(op.join(d, 'bad.txt')) as f:
            new_content = f.read()
        assert_equal(main(d), 0)
        assert_equal(new_content, 'abandoned\nAbandoned\nABANDONED\nabandoned')

        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned abandonned\n')
        assert_equal(main(d), 2)
        with CaptureStdout() as sio:
            assert_equal(main('-q', '16', '-w', d), 0)
        assert_equal(sio[0], '')
        assert_equal(main(d), 0)

        # empty directory
        os.mkdir(op.join(d, 'test'))
        assert_equal(main(d), 0)

        # hidden file
        with open(op.join(d, 'test.txt'), 'w') as f:
            f.write('abandonned\n')
        assert_equal(main(op.join(d, 'test.txt')), 1)
        os.rename(op.join(d, 'test.txt'), op.join(d, '.test.txt'))
        assert_equal(main(op.join(d, '.test.txt')), 0)
Beispiel #43
0
def test_basic(tmpdir, capsys):
    """Test some basic functionality"""
    assert cs.main('_does_not_exist_') == 0
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    assert cs.main('-D', 'foo', f.name) == 1, 'missing dictionary'
    try:
        assert 'cannot find dictionary' in capsys.readouterr()[1]
        assert cs.main(f.name) == 0, 'empty file'
        with open(f.name, 'a') as f:
            f.write('this is a test file\n')
        assert cs.main(f.name) == 0, 'good'
        with open(f.name, 'a') as f:
            f.write('abandonned\n')
        assert cs.main(f.name) == 1, 'bad'
        with open(f.name, 'a') as f:
            f.write('abandonned\n')
        assert cs.main(f.name) == 2, 'worse'
    finally:
        os.remove(f.name)
    d = str(tmpdir)
    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned\nAbandonned\nABANDONNED\nAbAnDoNnEd')
    assert cs.main(d) == 4
    capsys.readouterr()
    assert cs.main('-w', d) == 0
    assert 'FIXED:' in capsys.readouterr()[1]
    with open(op.join(d, 'bad.txt')) as f:
        new_content = f.read()
    assert cs.main(d) == 0
    assert new_content == 'abandoned\nAbandoned\nABANDONED\nabandoned'

    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned abandonned\n')
    assert cs.main(d) == 2
    capsys.readouterr()
    assert cs.main('-q', '16', '-w', d) == 0
    assert capsys.readouterr() == ('', '')
    assert cs.main(d) == 0

    # empty directory
    os.mkdir(op.join(d, 'test'))
    assert cs.main(d) == 0
Beispiel #44
0
def test_interactivity(tmpdir, capsys):
    """Test interaction"""
    # Windows can't read a currently-opened file, so here we use
    # NamedTemporaryFile just to get a good name
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    try:
        assert cs.main(f.name) == 0, 'empty file'
        with open(f.name, 'w') as f:
            f.write('abandonned\n')
        assert cs.main('-i', '-1', f.name) == 1, 'bad'
        with FakeStdin('y\n'):
            assert cs.main('-i', '3', f.name) == 1
        with FakeStdin('n\n'):
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert '==>' in capsys.readouterr()[0]
        with FakeStdin('x\ny\n'):
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert cs.main(f.name) == 0
    finally:
        os.remove(f.name)

    # New example
    with open(op.join(str(tmpdir), 'tmp2'), 'w') as f:
        pass
    try:
        with open(f.name, 'w') as f:
            f.write('abandonned\n')
        assert cs.main(f.name) == 1
        with FakeStdin(' '):  # blank input -> Y
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert cs.main(f.name) == 0
    finally:
        os.remove(f.name)

    # multiple options
    with open(op.join(str(tmpdir), 'tmp3'), 'w') as f:
        pass
    try:
        with open(f.name, 'w') as f:
            f.write('ackward\n')

        assert cs.main(f.name) == 1
        with FakeStdin(' \n'):  # blank input -> nothing
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert cs.main(f.name) == 1
        with FakeStdin('0\n'):  # blank input -> nothing
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert cs.main(f.name) == 0
        with open(f.name, 'r') as f_read:
            assert f_read.read() == 'awkward\n'
        with open(f.name, 'w') as f:
            f.write('ackward\n')
        assert cs.main(f.name) == 1
        capsys.readouterr()
        with FakeStdin('x\n1\n'):  # blank input -> nothing
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert 'a valid option' in capsys.readouterr()[0]
        assert cs.main(f.name) == 0
        with open(f.name, 'r') as f:
            assert f.read() == 'backward\n'
    finally:
        os.remove(f.name)
Beispiel #45
0
def test_context(tmpdir, capsys):
    """Test context options."""
    d = str(tmpdir)
    with open(op.join(d, 'context.txt'), 'w') as f:
        f.write('line 1\nline 2\nline 3 abandonned\nline 4\nline 5')

    # symmetric context, fully within file
    cs.main('-C', '1', d)
    lines = capsys.readouterr()[0].split('\n')
    assert len(lines) == 5
    assert lines[0] == ': line 2'
    assert lines[1] == '> line 3 abandonned'
    assert lines[2] == ': line 4'

    # requested context is bigger than the file
    cs.main('-C', '10', d)
    lines = capsys.readouterr()[0].split('\n')
    assert len(lines) == 7
    assert lines[0] == ': line 1'
    assert lines[1] == ': line 2'
    assert lines[2] == '> line 3 abandonned'
    assert lines[3] == ': line 4'
    assert lines[4] == ': line 5'

    # only before context
    cs.main('-B', '2', d)
    lines = capsys.readouterr()[0].split('\n')
    assert len(lines) == 5
    assert lines[0] == ': line 1'
    assert lines[1] == ': line 2'
    assert lines[2] == '> line 3 abandonned'

    # only after context
    cs.main('-A', '1', d)
    lines = capsys.readouterr()[0].split('\n')
    assert len(lines) == 4
    assert lines[0] == '> line 3 abandonned'
    assert lines[1] == ': line 4'

    # asymmetric context
    cs.main('-B', '2', '-A', '1', d)
    lines = capsys.readouterr()[0].split('\n')
    assert len(lines) == 6
    assert lines[0] == ': line 1'
    assert lines[1] == ': line 2'
    assert lines[2] == '> line 3 abandonned'
    assert lines[3] == ': line 4'

    # both '-C' and '-A' on the command line
    cs.main('-C', '2', '-A', '1', d)
    lines = capsys.readouterr()[0].split('\n')
    assert 'ERROR' in lines[0]

    # both '-C' and '-B' on the command line
    cs.main('-C', '2', '-B', '1', d)
    lines = capsys.readouterr()[0].split('\n')
    assert 'ERROR' in lines[0]
Beispiel #46
0
def test_basic():
    """Test some basic functionality"""
    assert_equal(cs.main('_does_not_exist_'), 0)
    with tempfile.NamedTemporaryFile('w') as f:
        pass
    with CaptureStdout() as sio:
        assert_equal(cs.main('-D', 'foo', f.name), 1)  # missing dictionary
    try:
        assert_true('cannot find dictionary' in sio[1])
        assert_equal(cs.main(f.name), 0)  # empty file
        with open(f.name, 'a') as f:
            f.write('this is a test file\n')
        assert_equal(cs.main(f.name), 0)  # good
        with open(f.name, 'a') as f:
            f.write('abandonned\n')
        assert_equal(cs.main(f.name), 1)  # bad
        with open(f.name, 'a') as f:
            f.write('abandonned\n')
        assert_equal(cs.main(f.name), 2)  # worse
    finally:
        os.remove(f.name)
    with TemporaryDirectory() as d:
        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned\nAbandonned\nABANDONNED\nAbAnDoNnEd')
        assert_equal(cs.main(d), 4)
        with CaptureStdout() as sio:
            assert_equal(cs.main('-w', d), 0)
        assert_true('FIXED:' in sio[1])
        with open(op.join(d, 'bad.txt')) as f:
            new_content = f.read()
        assert_equal(cs.main(d), 0)
        assert_equal(new_content, 'abandoned\nAbandoned\nABANDONED\nabandoned')

        with open(op.join(d, 'bad.txt'), 'w') as f:
            f.write('abandonned abandonned\n')
        assert_equal(cs.main(d), 2)
        with CaptureStdout() as sio:
            assert_equal(cs.main('-q', '16', '-w', d), 0)
        assert_equal(sio[0], '')
        assert_equal(cs.main(d), 0)

        # empty directory
        os.mkdir(op.join(d, 'test'))
        assert_equal(cs.main(d), 0)

        # hidden file
        with open(op.join(d, 'test.txt'), 'w') as f:
            f.write('abandonned\n')
        assert_equal(cs.main(op.join(d, 'test.txt')), 1)
        os.rename(op.join(d, 'test.txt'), op.join(d, '.test.txt'))
        assert_equal(cs.main(op.join(d, '.test.txt')), 0)
Beispiel #47
0
def test_check_filename(tmpdir):
    """Test filename check."""
    d = str(tmpdir)
    with open(op.join(d, 'abandonned.txt'), 'w') as f:
        f.write('.')
    assert cs.main('-f', d) == 1
Beispiel #48
0
def test_interactivity():
    """Test interaction"""
    with tempfile.NamedTemporaryFile('w') as f:
        assert_equal(main(f.name), 0)  # empty file
        f.write('abandonned\n')
        f.flush()
        assert_equal(main('-i', '-1', f.name), 1)  # bad
        with FakeStdin('y\n'):
            assert_equal(main('-i', '3', f.name), 1)
        with CaptureStdout() as sio:
            with FakeStdin('n\n'):
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_true('==>' in sio[0])
        with CaptureStdout():
            with FakeStdin('x\ny\n'):
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_equal(main(f.name), 0)
    with tempfile.NamedTemporaryFile('w') as f:
        f.write('abandonned\n')
        f.flush()
        assert_equal(main(f.name), 1)
        with CaptureStdout():
            with FakeStdin(' '):  # blank input -> Y
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_equal(main(f.name), 0)
    # multiple options
    with tempfile.NamedTemporaryFile('w') as f:
        f.write('ackward\n')
        f.flush()
        assert_equal(main(f.name), 1)
        with CaptureStdout():
            with FakeStdin(' \n'):  # blank input -> nothing
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_equal(main(f.name), 1)
        with CaptureStdout():
            with FakeStdin('0\n'):  # blank input -> nothing
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_equal(main(f.name), 0)
        with open(f.name, 'r') as f_read:
            assert_equal(f_read.read(), 'awkward\n')
        f.seek(0)
        f.write('ackward\n')
        f.flush()
        assert_equal(main(f.name), 1)
        with CaptureStdout() as sio:
            with FakeStdin('x\n1\n'):  # blank input -> nothing
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_true('a valid option' in sio[0])
        assert_equal(main(f.name), 0)
        with open(f.name, 'r') as f:
            assert_equal(f.read(), 'backward\n')
Beispiel #49
0
def test_interactivity():
    """Test interaction"""
    with tempfile.NamedTemporaryFile('w') as f:
        assert_equal(main(f.name), 0)  # empty file
        f.write('abandonned\n')
        f.flush()
        assert_equal(main('-i', '-1', f.name), 1)  # bad
        with FakeStdin('y\n'):
            assert_equal(main('-i', '3', f.name), 1)
        with CaptureStdout() as sio:
            with FakeStdin('n\n'):
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_true('==>' in sio[0])
        with CaptureStdout():
            with FakeStdin('x\ny\n'):
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_equal(main(f.name), 0)
    with tempfile.NamedTemporaryFile('w') as f:
        f.write('abandonned\n')
        f.flush()
        assert_equal(main(f.name), 1)
        with CaptureStdout():
            with FakeStdin(' '):  # blank input -> Y
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_equal(main(f.name), 0)
    # multiple options
    with tempfile.NamedTemporaryFile('w') as f:
        f.write('ackward\n')
        f.flush()
        assert_equal(main(f.name), 1)
        with CaptureStdout():
            with FakeStdin(' \n'):  # blank input -> nothing
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_equal(main(f.name), 1)
        with CaptureStdout():
            with FakeStdin('0\n'):  # blank input -> nothing
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_equal(main(f.name), 0)
        with open(f.name, 'r') as f_read:
            assert_equal(f_read.read(), 'awkward\n')
        f.seek(0)
        f.write('ackward\n')
        f.flush()
        assert_equal(main(f.name), 1)
        with CaptureStdout() as sio:
            with FakeStdin('x\n1\n'):  # blank input -> nothing
                assert_equal(main('-w', '-i', '3', f.name), 0)
        assert_true('a valid option' in sio[0])
        assert_equal(main(f.name), 0)
        with open(f.name, 'r') as f:
            assert_equal(f.read(), 'backward\n')
Beispiel #50
0
def test_check_filename(tmpdir):
    """Test filename check."""
    d = str(tmpdir)
    with open(op.join(d, 'abandonned.txt'), 'w') as f:
        f.write('.')
    assert cs.main('-f', d) == 1
Beispiel #51
0
def test_interactivity():
    """Test interaction"""
    # Windows can't read a currently-opened file, so here we use
    # NamedTemporaryFile just to get a good name
    with tempfile.NamedTemporaryFile('w') as f:
        pass
    try:
        assert_equal(cs.main(f.name), 0)  # empty file
        with open(f.name, 'w') as f:
            f.write('abandonned\n')
        assert_equal(cs.main('-i', '-1', f.name), 1)  # bad
        with FakeStdin('y\n'):
            assert_equal(cs.main('-i', '3', f.name), 1)
        with CaptureStdout() as sio:
            with FakeStdin('n\n'):
                assert_equal(cs.main('-w', '-i', '3', f.name), 0)
        assert_true('==>' in sio[0])
        with CaptureStdout():
            with FakeStdin('x\ny\n'):
                assert_equal(cs.main('-w', '-i', '3', f.name), 0)
        assert_equal(cs.main(f.name), 0)
    finally:
        os.remove(f.name)

    # New example
    with tempfile.NamedTemporaryFile('w') as f:
        pass
    try:
        with open(f.name, 'w') as f:
            f.write('abandonned\n')
        assert_equal(cs.main(f.name), 1)
        with CaptureStdout():
            with FakeStdin(' '):  # blank input -> Y
                assert_equal(cs.main('-w', '-i', '3', f.name), 0)
        assert_equal(cs.main(f.name), 0)
    finally:
        os.remove(f.name)

    # multiple options
    with tempfile.NamedTemporaryFile('w') as f:
        pass
    try:
        with open(f.name, 'w') as f:
            f.write('ackward\n')

        assert_equal(cs.main(f.name), 1)
        with CaptureStdout():
            with FakeStdin(' \n'):  # blank input -> nothing
                assert_equal(cs.main('-w', '-i', '3', f.name), 0)
        assert_equal(cs.main(f.name), 1)
        with CaptureStdout():
            with FakeStdin('0\n'):  # blank input -> nothing
                assert_equal(cs.main('-w', '-i', '3', f.name), 0)
        assert_equal(cs.main(f.name), 0)
        with open(f.name, 'r') as f_read:
            assert_equal(f_read.read(), 'awkward\n')
        with open(f.name, 'w') as f:
            f.write('ackward\n')
        assert_equal(cs.main(f.name), 1)
        with CaptureStdout() as sio:
            with FakeStdin('x\n1\n'):  # blank input -> nothing
                assert_equal(cs.main('-w', '-i', '3', f.name), 0)
        assert_true('a valid option' in sio[0])
        assert_equal(cs.main(f.name), 0)
        with open(f.name, 'r') as f:
            assert_equal(f.read(), 'backward\n')
    finally:
        os.remove(f.name)
Beispiel #52
0
def test_basic(tmpdir, capsys):
    """Test some basic functionality"""
    assert cs.main('_does_not_exist_') == 0
    fname = op.join(str(tmpdir), 'tmp')
    with open(fname, 'w') as f:
        pass
    assert cs.main('-D', 'foo', f.name) == 1, 'missing dictionary'
    assert 'cannot find dictionary' in capsys.readouterr()[1]
    assert cs.main(fname) == 0, 'empty file'
    with open(fname, 'a') as f:
        f.write('this is a test file\n')
    assert cs.main(fname) == 0, 'good'
    with open(fname, 'a') as f:
        f.write('abandonned\n')
    assert cs.main(fname) == 1, 'bad'
    with open(fname, 'a') as f:
        f.write('abandonned\n')
    assert cs.main(fname) == 2, 'worse'
    with open(fname, 'a') as f:
        f.write('tim\ngonna\n')
    assert cs.main(fname) == 2, 'with a name'
    assert cs.main('--builtin', 'clear,rare,names,informal', fname) == 4
    capsys.readouterr()
    assert cs.main(fname, '--builtin', 'foo') == 1  # bad type sys.exit(1)
    stdout = capsys.readouterr()[1]
    assert 'Unknown builtin dictionary' in stdout
    d = str(tmpdir)
    assert cs.main(fname, '-D', op.join(d, 'foo')) == 1  # bad dict
    stdout = capsys.readouterr()[1]
    assert 'cannot find dictionary' in stdout
    os.remove(fname)

    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned\nAbandonned\nABANDONNED\nAbAnDoNnEd')
    assert cs.main(d) == 4
    capsys.readouterr()
    assert cs.main('-w', d) == 0
    assert 'FIXED:' in capsys.readouterr()[1]
    with open(op.join(d, 'bad.txt')) as f:
        new_content = f.read()
    assert cs.main(d) == 0
    assert new_content == 'abandoned\nAbandoned\nABANDONED\nabandoned'

    with open(op.join(d, 'bad.txt'), 'w') as f:
        f.write('abandonned abandonned\n')
    assert cs.main(d) == 2
    capsys.readouterr()
    assert cs.main('-q', '16', '-w', d) == 0
    assert capsys.readouterr() == ('', '')
    assert cs.main(d) == 0

    # empty directory
    os.mkdir(op.join(d, 'test'))
    assert cs.main(d) == 0
Beispiel #53
0
def test_check_filename():
    """Test filename check"""
    with TemporaryDirectory() as d:
        with open(op.join(d, 'abandonned.txt'), 'w') as f:
            f.write('.')
        assert_equal(cs.main('-f', d), 1)
Beispiel #54
0
def test_interactivity(tmpdir, capsys):
    """Test interaction"""
    # Windows can't read a currently-opened file, so here we use
    # NamedTemporaryFile just to get a good name
    with open(op.join(str(tmpdir), 'tmp'), 'w') as f:
        pass
    try:
        assert cs.main(f.name) == 0, 'empty file'
        with open(f.name, 'w') as f:
            f.write('abandonned\n')
        assert cs.main('-i', '-1', f.name) == 1, 'bad'
        with FakeStdin('y\n'):
            assert cs.main('-i', '3', f.name) == 1
        with FakeStdin('n\n'):
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert '==>' in capsys.readouterr()[0]
        with FakeStdin('x\ny\n'):
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert cs.main(f.name) == 0
    finally:
        os.remove(f.name)

    # New example
    with open(op.join(str(tmpdir), 'tmp2'), 'w') as f:
        pass
    try:
        with open(f.name, 'w') as f:
            f.write('abandonned\n')
        assert cs.main(f.name) == 1
        with FakeStdin(' '):  # blank input -> Y
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert cs.main(f.name) == 0
    finally:
        os.remove(f.name)

    # multiple options
    with open(op.join(str(tmpdir), 'tmp3'), 'w') as f:
        pass
    try:
        with open(f.name, 'w') as f:
            f.write('ackward\n')

        assert cs.main(f.name) == 1
        with FakeStdin(' \n'):  # blank input -> nothing
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert cs.main(f.name) == 1
        with FakeStdin('0\n'):  # blank input -> nothing
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert cs.main(f.name) == 0
        with open(f.name, 'r') as f_read:
            assert f_read.read() == 'awkward\n'
        with open(f.name, 'w') as f:
            f.write('ackward\n')
        assert cs.main(f.name) == 1
        capsys.readouterr()
        with FakeStdin('x\n1\n'):  # blank input -> nothing
            assert cs.main('-w', '-i', '3', f.name) == 0
        assert 'a valid option' in capsys.readouterr()[0]
        assert cs.main(f.name) == 0
        with open(f.name, 'r') as f:
            assert f.read() == 'backward\n'
    finally:
        os.remove(f.name)
Beispiel #55
0
#!/usr/bin/env python

import sys

if __name__ == '__main__':
    import codespell_lib
    sys.exit(codespell_lib.main(*sys.argv[1:]))