from mock import patch, Mock from thefuck.rules.no_command import match, get_new_command, _get_all_callables @patch('thefuck.rules.no_command._safe', return_value=[]) @patch('thefuck.rules.no_command.get_aliases', return_value=['vim', 'apt-get', 'fsck', 'fuck']) def test_get_all_callables(*args): 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']) 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) @patch('thefuck.rules.no_command._safe', return_value=[]) @patch('thefuck.rules.no_command.get_aliases', return_value=['vim', 'apt-get', 'fsck', 'fuck']) def test_get_new_command(*args): assert get_new_command( Mock(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'