diff --git a/tests/rules/test_has_exists_script.py b/tests/rules/test_has_exists_script.py new file mode 100644 index 00000000..36938be2 --- /dev/null +++ b/tests/rules/test_has_exists_script.py @@ -0,0 +1,20 @@ +from mock import Mock, patch +from thefuck.rules. has_exists_script import match, get_new_command + + +def test_match(): + with patch('os.path.exists', return_value=True): + assert match(Mock(script='main', stderr='main: command not found'), + None) + assert match(Mock(script='main --help', + stderr='main: command not found'), + None) + assert not match(Mock(script='main', stderr=''), None) + + with patch('os.path.exists', return_value=False): + assert not match(Mock(script='main', stderr='main: command not found'), + None) + + +def test_get_new_command(): + assert get_new_command(Mock(script='main --help'), None) == './main --help' diff --git a/thefuck/rules/has_exists_script.py b/thefuck/rules/has_exists_script.py index 7b5dab4c..522dd8eb 100644 --- a/thefuck/rules/has_exists_script.py +++ b/thefuck/rules/has_exists_script.py @@ -1,8 +1,10 @@ import os + def match(command, settings): - exist = os.path.exists(command.script) - return exist + return os.path.exists(command.script.split()[0]) \ + and 'command not found' in command.stderr + def get_new_command(command, settings): return './{}'.format(command.script)