mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-29 22:24:44 +00:00 
			
		
		
		
	Merge branch 'master' of https://github.com/ds-forks/thefuck into ds-forks-master
This commit is contained in:
		| @@ -203,6 +203,7 @@ using the matched rule and runs it. Rules enabled by default are as follows: | ||||
| * `has_exists_script` – prepends `./` when script/binary exists; | ||||
| * `heroku_not_command` – fixes wrong `heroku` commands like `heroku log`; | ||||
| * `history` – tries to replace command with most similar command from history; | ||||
| * `hostscli` – tries to fix `hostscli` usage; | ||||
| * `ifconfig_device_not_found` – fixes wrong device names like `wlan0` to `wlp2s0`; | ||||
| * `java` – removes `.java` extension when running Java programs; | ||||
| * `javac` – appends missing `.java` when compiling Java files; | ||||
|   | ||||
							
								
								
									
										31
									
								
								tests/rules/test_hostscli.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								tests/rules/test_hostscli.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| import pytest | ||||
| from thefuck.rules.hostscli import no_website, get_new_command, match | ||||
| from tests.utils import Command | ||||
|  | ||||
|  | ||||
| no_website_long = ''' | ||||
| %s: | ||||
|  | ||||
| No Domain list found for website: a_website_that_does_not_exist | ||||
|  | ||||
| Please raise a Issue here: https://github.com/dhilipsiva/hostscli/issues/new | ||||
| if you think we should add domains for this website. | ||||
|  | ||||
| type `hostscli websites` to see a list of websites that you can block/unblock | ||||
| ''' % no_website | ||||
|  | ||||
|  | ||||
| @pytest.mark.parametrize('command', [ | ||||
|     Command( | ||||
|         'sudo hostscli block a_website_that_does_not_exist', | ||||
|         stderr=no_website_long)]) | ||||
| def test_match(command): | ||||
|     assert match(command) | ||||
|  | ||||
|  | ||||
| @pytest.mark.parametrize('command, result', [( | ||||
|     Command( | ||||
|         'sudo hostscli block a_website_that_does_not_exist', | ||||
|         stderr=no_website_long), ['hostscli websites'])]) | ||||
| def test_get_new_command(command, result): | ||||
|     assert get_new_command(command) == result | ||||
							
								
								
									
										23
									
								
								thefuck/rules/hostscli.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								thefuck/rules/hostscli.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| import re | ||||
|  | ||||
| from thefuck.utils import replace_command | ||||
|  | ||||
| no_command = "Error: No such command" | ||||
| no_website = "hostscli.errors.WebsiteImportError" | ||||
|  | ||||
|  | ||||
| def match(command): | ||||
|     errors = [no_command, no_website] | ||||
|     for error in errors: | ||||
|         if error in command.stderr: | ||||
|             return True | ||||
|     return False | ||||
|  | ||||
|  | ||||
| def get_new_command(command): | ||||
|     if no_website in command.stderr: | ||||
|         return ['hostscli websites'] | ||||
|     misspelled_command = re.findall( | ||||
|         r'Error: No such command ".*"', command.stderr)[0] | ||||
|     commands = ['block', 'unblock', 'websites', 'block_all', 'unblock_all'] | ||||
|     return replace_command(command, misspelled_command, commands) | ||||
| @@ -20,7 +20,8 @@ patterns = ['permission denied', | ||||
|             'authentication is required', | ||||
|             'edspermissionerror', | ||||
|             'you don\'t have write permissions', | ||||
|             'use `sudo`'] | ||||
|             'use `sudo`', | ||||
|             'SudoRequiredError'] | ||||
|  | ||||
|  | ||||
| def match(command): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user