mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-30 22:54:14 +00:00 
			
		
		
		
	#N/A Add a new rule brew_update_formula
				
					
				
			This commit is contained in:
		| @@ -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') | ||||
		Reference in New Issue
	
	Block a user