Testing Homebrew Link Command Correction in TheFuck
This test suite validates the brew_link rule functionality in TheFuck command-line tool, focusing on handling Homebrew package linking errors and generating appropriate fix commands. The tests ensure proper error detection and command correction behavior.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
nvbn/thefuck
tests/rules/test_brew_link.py
import pytest
from thefuck.types import Command
from thefuck.rules.brew_link import get_new_command, match
@pytest.fixture
def output():
return ("Error: Could not symlink bin/gcp
"
"Target /usr/local/bin/gcp
"
"already exists. You may want to remove it:
"
" rm '/usr/local/bin/gcp'
"
"
"
"To force the link and overwrite all conflicting files:
"
" brew link --overwrite coreutils
"
"
"
"To list all files that would be deleted:
"
" brew link --overwrite --dry-run coreutils
")
@pytest.fixture
def new_command(formula):
return 'brew link --overwrite --dry-run {}'.format(formula)
@pytest.mark.parametrize('script', ['brew link coreutils', 'brew ln coreutils'])
def test_match(output, script):
assert match(Command(script, output))
@pytest.mark.parametrize('script', ['brew link coreutils'])
def test_not_match(script):
assert not match(Command(script, ''))
@pytest.mark.parametrize('script, formula, ', [('brew link coreutils', 'coreutils')])
def test_get_new_command(output, new_command, script, formula):
assert get_new_command(Command(script, output)) == new_command