1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-31 18:21:10 +00:00

Test if the file exists in the fix_file rule

This avoid false positives in `match`.
This commit is contained in:
mcarton 2015-07-29 21:35:49 +02:00
parent de513cacb1
commit 43fead02d3
2 changed files with 18 additions and 3 deletions

View File

@ -158,19 +158,29 @@ ReferenceError: conole is not defined
@pytest.mark.parametrize('test', tests) @pytest.mark.parametrize('test', tests)
def test_match(monkeypatch, test): def test_match(mocker, monkeypatch, test):
mocker.patch('os.path.isfile', return_value=True)
monkeypatch.setenv('EDITOR', 'dummy_editor') monkeypatch.setenv('EDITOR', 'dummy_editor')
assert match(Command(stderr=test[4]), None) assert match(Command(stderr=test[4]), None)
@pytest.mark.parametrize('test', tests) @pytest.mark.parametrize('test', tests)
def test_not_match(monkeypatch, test): def test_no_editor(mocker, monkeypatch, test):
mocker.patch('os.path.isfile', return_value=True)
if 'EDITOR' in os.environ: if 'EDITOR' in os.environ:
monkeypatch.delenv('EDITOR') monkeypatch.delenv('EDITOR')
assert not match(Command(stderr=test[4]), None) assert not match(Command(stderr=test[4]), None)
@pytest.mark.parametrize('test', tests)
def test_not_file(mocker, monkeypatch, test):
mocker.patch('os.path.isfile', return_value=False)
monkeypatch.setenv('EDITOR', 'dummy_editor')
assert not match(Command(stderr=test[4]), None)
@pytest.mark.parametrize('test', tests) @pytest.mark.parametrize('test', tests)
def test_get_new_command(monkeypatch, test): def test_get_new_command(monkeypatch, test):
monkeypatch.setenv('EDITOR', 'dummy_editor') monkeypatch.setenv('EDITOR', 'dummy_editor')

View File

@ -50,7 +50,12 @@ def _search(stderr):
def match(command, settings): def match(command, settings):
return 'EDITOR' in os.environ and _search(command.stderr) if 'EDITOR' not in os.environ:
return False
m = _search(command.stderr)
return m and os.path.isfile(m.group('file'))
def get_new_command(command, settings): def get_new_command(command, settings):