import pytest from tests.utils import Command from thefuck.rules.brew_link import get_new_command, match @pytest.fixture def stderr(): return ("Error: Could not symlink bin/gcp\n" "Target /usr/local/bin/gcp\n" "already exists. You may want to remove it:\n" "rm '/usr/local/bin/gcp'\n" "\n" "To force the link and overwrite all conflicting files:\n" "brew link --overwrite coreutils\n" "\n" "To list all files that would be deleted:\n" "brew link --overwrite --dry-run coreutils\n") @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(stderr, script): assert match(Command(script=script, stderr=stderr)) @pytest.mark.parametrize('script', ['brew link coreutils']) def test_not_match(script): stderr='' assert not match(Command(script=script, stderr=stderr)) @pytest.mark.parametrize('script, formula, ', [('brew link coreutils', 'coreutils')]) def test_get_new_command(stderr, new_command, script, formula): assert get_new_command(Command(script=script, stderr=stderr)) == new_command