mirror of
https://github.com/nvbn/thefuck.git
synced 2025-02-20 20:09:07 +00:00
#N/A Add a new rule brew_update_formula
This commit is contained in:
parent
5ec4909d2f
commit
9d9820676a
@ -222,6 +222,7 @@ Enabled by default only on specific platforms:
|
||||
* `apt_invalid_operation` – fixes invalid `apt` and `apt-get` calls, like `apt-get isntall vim`;
|
||||
* `brew_install` – fixes formula name for `brew install`;
|
||||
* `brew_unknown_command` – fixes wrong brew commands, for example `brew docto/brew doctor`;
|
||||
* `brew_update_formula` – turns `brew update <formula>` into `brew upgrade <formula>`;
|
||||
* `brew_upgrade` – appends `--all` to `brew upgrade` as per Homebrew's new behaviour;
|
||||
* `pacman` – installs app with `pacman` if it is not installed (uses `yaourt` if available);
|
||||
* `pacman_not_found` – fixes package name with `pacman` or `yaourt`.
|
||||
|
30
tests/rules/test_brew_update_formula.py
Normal file
30
tests/rules/test_brew_update_formula.py
Normal file
@ -0,0 +1,30 @@
|
||||
import pytest
|
||||
from tests.utils import Command
|
||||
from thefuck.rules.brew_update_formula import get_new_command, match
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def stderr():
|
||||
return ("Error: This command updates brew itself, and does not take formula"
|
||||
" names.\nUse 'brew upgrade <formula>'.")
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def new_command(formula):
|
||||
return 'brew upgrade {}'.format(formula)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script', ['brew update foo', 'brew update bar zap'])
|
||||
def test_match(stderr, script):
|
||||
assert match(Command(script=script, stderr=stderr))
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script', ['brew upgrade foo', 'brew update'])
|
||||
def test_not_match(script):
|
||||
assert not match(Command(script=script, stderr=''))
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script, formula, ', [
|
||||
('brew update foo', 'foo'), ('brew update bar zap', 'bar zap')])
|
||||
def test_get_new_command(stderr, new_command, script, formula):
|
||||
assert get_new_command(Command(script=script, stderr=stderr)) == new_command
|
12
thefuck/rules/brew_update_formula.py
Normal file
12
thefuck/rules/brew_update_formula.py
Normal file
@ -0,0 +1,12 @@
|
||||
from thefuck.utils import for_app
|
||||
|
||||
|
||||
@for_app('brew', at_least=2)
|
||||
def match(command):
|
||||
return ('update' in command.script
|
||||
and "Error: This command updates brew itself" in command.stderr
|
||||
and "Use 'brew upgrade <formula>'" in command.stderr)
|
||||
|
||||
|
||||
def get_new_command(command):
|
||||
return command.script.replace('update', 'upgrade')
|
Loading…
x
Reference in New Issue
Block a user