1
0
mirror of https://github.com/nvbn/thefuck.git synced 2024-10-06 02:41:10 +01:00
thefuck/tests/rules/test_path_from_history.py

44 lines
1.3 KiB
Python
Raw Normal View History

2017-03-13 18:05:34 +00:00
import pytest
from thefuck.rules.path_from_history import match, get_new_command
from thefuck.types import Command
2017-03-13 18:05:34 +00:00
@pytest.fixture(autouse=True)
def history(mocker):
return mocker.patch(
'thefuck.rules.path_from_history.get_valid_history_without_current',
return_value=['cd /opt/java', 'ls ~/work/project/'])
@pytest.fixture(autouse=True)
def path_exists(mocker):
path_mock = mocker.patch('thefuck.rules.path_from_history.Path')
exists_mock = path_mock.return_value.expanduser.return_value.exists
exists_mock.return_value = True
return exists_mock
@pytest.mark.parametrize('script, output', [
2017-03-13 18:05:34 +00:00
('ls project', 'no such file or directory: project'),
('cd project', "can't cd to project"),
])
def test_match(script, output):
assert match(Command(script, output))
2017-03-13 18:05:34 +00:00
@pytest.mark.parametrize('script, output', [
2017-03-13 18:05:34 +00:00
('myapp cats', 'no such file or directory: project'),
('cd project', ""),
])
def test_not_match(script, output):
assert not match(Command(script, output))
2017-03-13 18:05:34 +00:00
@pytest.mark.parametrize('script, output, result', [
2017-03-13 18:05:34 +00:00
('ls project', 'no such file or directory: project', 'ls ~/work/project'),
('cd java', "can't cd to java", 'cd /opt/java'),
])
def test_get_new_command(script, output, result):
new_command = get_new_command(Command(script, output))
2017-03-13 18:05:34 +00:00
assert new_command[0] == result