mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-19 04:21:14 +00:00
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
import pytest
|
|
from thefuck.rules.history import match, get_new_command
|
|
from tests.utils import Command
|
|
|
|
|
|
@pytest.fixture
|
|
def history(mocker):
|
|
return mocker.patch('thefuck.rules.history.get_history',
|
|
return_value=['le cat', 'fuck', 'ls cat',
|
|
'diff x', 'nocommand x'])
|
|
|
|
|
|
@pytest.fixture
|
|
def alias(mocker):
|
|
return mocker.patch('thefuck.rules.history.thefuck_alias',
|
|
return_value='fuck')
|
|
|
|
|
|
@pytest.fixture
|
|
def callables(mocker):
|
|
return mocker.patch('thefuck.rules.history.get_all_executables',
|
|
return_value=['diff', 'ls'])
|
|
|
|
|
|
@pytest.mark.usefixtures('history', 'callables', 'no_memoize', 'alias')
|
|
@pytest.mark.parametrize('script', ['ls cet', 'daff x'])
|
|
def test_match(script):
|
|
assert match(Command(script=script), None)
|
|
|
|
|
|
@pytest.mark.usefixtures('history', 'callables', 'no_memoize', 'alias')
|
|
@pytest.mark.parametrize('script', ['apt-get', 'nocommand y'])
|
|
def test_not_match(script):
|
|
assert not match(Command(script=script), None)
|
|
|
|
|
|
@pytest.mark.usefixtures('history', 'callables', 'no_memoize', 'alias')
|
|
@pytest.mark.parametrize('script, result', [
|
|
('ls cet', 'ls cat'),
|
|
('daff x', 'diff x')])
|
|
def test_get_new_command(script, result):
|
|
assert get_new_command(Command(script), None) == result
|