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`; | * `apt_invalid_operation` – fixes invalid `apt` and `apt-get` calls, like `apt-get isntall vim`; | ||||||
| * `brew_install` – fixes formula name for `brew install`; | * `brew_install` – fixes formula name for `brew install`; | ||||||
| * `brew_unknown_command` – fixes wrong brew commands, for example `brew docto/brew doctor`; | * `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; | * `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` – installs app with `pacman` if it is not installed (uses `yaourt` if available); | ||||||
| * `pacman_not_found` – fixes package name with `pacman` or `yaourt`. | * `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