Testing Homebrew Package Dependency Resolution in TheFuck
This test suite validates the brew_cask_dependency rule in TheFuck tool, focusing on handling Homebrew package installation dependencies. It specifically tests the behavior when installing packages that require OSXFuse as a dependency.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
nvbn/thefuck
tests/rules/test_brew_cask_dependency.py
import pytest
from thefuck.rules.brew_cask_dependency import match, get_new_command
from thefuck.types import Command
output = '''sshfs: OsxfuseRequirement unsatisfied!
You can install with Homebrew-Cask:
brew cask install osxfuse
You can download from:
https://osxfuse.github.io/
Error: An unsatisfied requirement failed this build.'''
def test_match():
command = Command('brew install sshfs', output)
assert match(command)
@pytest.mark.parametrize('script, output', [
('brew link sshfs', output),
('cat output', output),
('brew install sshfs', '')])
def test_not_match(script, output):
command = Command(script, output)
assert not match(command)
@pytest.mark.parametrize('before, after', [
('brew install sshfs',
'brew cask install osxfuse && brew install sshfs')])
def test_get_new_command(before, after):
command = Command(before, output)
assert get_new_command(command) == after