Testing Command Retrieval Implementation in TheFuck
This test suite validates the command retrieval functionality in TheFuck’s fix_command module, specifically focusing on the _get_raw_command implementation. The tests ensure proper command extraction from different sources including force commands, command arguments, and command history.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
nvbn/thefuck
tests/entrypoints/test_fix_command.py
import pytest
from mock import Mock
from thefuck.entrypoints.fix_command import _get_raw_command
class TestGetRawCommand(object):
def test_from_force_command_argument(self):
known_args = Mock(force_command='git brunch')
assert _get_raw_command(known_args) == ['git brunch']
def test_from_command_argument(self, os_environ):
os_environ['TF_HISTORY'] = None
known_args = Mock(force_command=None,
command=['sl'])
assert _get_raw_command(known_args) == ['sl']
@pytest.mark.parametrize('history, result', [
('git br', 'git br'),
('git br
fcuk', 'git br'),
('git br
fcuk
ls', 'ls'),
('git br
fcuk
ls
fuk', 'ls')])
def test_from_history(self, os_environ, history, result):
os_environ['TF_HISTORY'] = history
known_args = Mock(force_command=None,
command=None)
assert _get_raw_command(known_args) == [result]