mirror of
https://github.com/nvbn/thefuck.git
synced 2025-09-19 11:42:33 +01:00
#N/A Add history rule
This commit is contained in:
@@ -1,36 +1,42 @@
|
||||
from mock import patch, Mock
|
||||
from thefuck.rules.no_command import match, get_new_command, _get_all_callables
|
||||
import pytest
|
||||
from thefuck.rules.no_command import match, get_new_command, get_all_callables
|
||||
from tests.utils import Command
|
||||
|
||||
|
||||
@patch('thefuck.rules.no_command._safe', return_value=[])
|
||||
@patch('thefuck.rules.no_command.get_aliases',
|
||||
return_value=['vim', 'apt-get', 'fsck', 'fuck'])
|
||||
@pytest.fixture(autouse=True)
|
||||
def _safe(mocker):
|
||||
mocker.patch('thefuck.rules.no_command._safe', return_value=[])
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def get_aliases(mocker):
|
||||
mocker.patch('thefuck.rules.no_command.get_aliases',
|
||||
return_value=['vim', 'apt-get', 'fsck', 'fuck'])
|
||||
|
||||
|
||||
@pytest.mark.usefixtures('no_memoize')
|
||||
def test_get_all_callables(*args):
|
||||
all_callables = _get_all_callables()
|
||||
all_callables = get_all_callables()
|
||||
assert 'vim' in all_callables
|
||||
assert 'fsck' in all_callables
|
||||
assert 'fuck' not in all_callables
|
||||
|
||||
|
||||
@patch('thefuck.rules.no_command._safe', return_value=[])
|
||||
@patch('thefuck.rules.no_command.get_aliases',
|
||||
return_value=['vim', 'apt-get', 'fsck', 'fuck'])
|
||||
@pytest.mark.usefixtures('no_memoize')
|
||||
def test_match(*args):
|
||||
assert match(Mock(stderr='vom: not found', script='vom file.py'), None)
|
||||
assert match(Mock(stderr='fucck: not found', script='fucck'), None)
|
||||
assert not match(Mock(stderr='qweqwe: not found', script='qweqwe'), None)
|
||||
assert not match(Mock(stderr='some text', script='vom file.py'), None)
|
||||
assert match(Command(stderr='vom: not found', script='vom file.py'), None)
|
||||
assert match(Command(stderr='fucck: not found', script='fucck'), None)
|
||||
assert not match(Command(stderr='qweqwe: not found', script='qweqwe'), None)
|
||||
assert not match(Command(stderr='some text', script='vom file.py'), None)
|
||||
|
||||
|
||||
@patch('thefuck.rules.no_command._safe', return_value=[])
|
||||
@patch('thefuck.rules.no_command.get_aliases',
|
||||
return_value=['vim', 'apt-get', 'fsck', 'fuck'])
|
||||
@pytest.mark.usefixtures('no_memoize')
|
||||
def test_get_new_command(*args):
|
||||
assert get_new_command(
|
||||
Mock(stderr='vom: not found',
|
||||
script='vom file.py'),
|
||||
Command(stderr='vom: not found',
|
||||
script='vom file.py'),
|
||||
None) == 'vim file.py'
|
||||
assert get_new_command(
|
||||
Mock(stderr='fucck: not found',
|
||||
script='fucck'),
|
||||
None) == 'fsck'
|
||||
Command(stderr='fucck: not found',
|
||||
script='fucck'),
|
||||
Command) == 'fsck'
|
||||
|
Reference in New Issue
Block a user