mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-30 22:54:14 +00:00 
			
		
		
		
	Hostscli
This commit is contained in:
		
							
								
								
									
										65
									
								
								tests/rules/test_hostscli.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								tests/rules/test_hostscli.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,65 @@ | ||||
| #! /usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # vim: fenc=utf-8 | ||||
| # vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 | ||||
| # | ||||
| # | ||||
|  | ||||
| """ | ||||
| File name: test_hostscli.py | ||||
| Author: dhilipsiva <dhilipsiva@gmail.com> | ||||
| Date created: 2017-02-05 | ||||
| """ | ||||
|  | ||||
| import pytest | ||||
| from thefuck.rules.hostscli import no_command, need_sudo, no_website, \ | ||||
|     match, get_new_command | ||||
| from tests.utils import Command | ||||
|  | ||||
|  | ||||
| no_command = ''' | ||||
| Usage: hostscli [OPTIONS] COMMAND [ARGS]... | ||||
|  | ||||
| %s "invalid". | ||||
| ''' % no_command | ||||
|  | ||||
| need_sudo = ''' | ||||
| %s: | ||||
|  | ||||
| "sudo" permissions are required to run this command. | ||||
|  | ||||
| Please run the last command again with sudo | ||||
| ''' % need_sudo | ||||
|  | ||||
|  | ||||
| no_website = ''' | ||||
| %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('hostscli invalid', stderr=no_command)]) | ||||
| def test_match(command): | ||||
|     assert match(command) | ||||
|  | ||||
|  | ||||
| @pytest.mark.parametrize('command, result', [ | ||||
|     (Command( | ||||
|         'hostscli invalid', stderr=no_command), ['hostscli --help']), | ||||
|     (Command( | ||||
|         'hostscli block test', stderr=need_sudo), | ||||
|         ['sudo hostscli block test']), | ||||
|     (Command( | ||||
|         'sudo hostscli block a_website_that_does_not_exist', | ||||
|         stderr=no_website), | ||||
|      ['hostscli websites'])]) | ||||
| def test_get_new_command(command, result): | ||||
|     assert get_new_command(command) == result | ||||
							
								
								
									
										37
									
								
								thefuck/rules/hostscli.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								thefuck/rules/hostscli.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| #! /usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # vim: fenc=utf-8 | ||||
| # vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 | ||||
| # | ||||
| # | ||||
|  | ||||
| """ | ||||
| File name: hostscli.py | ||||
| Author: dhilipsiva <dhilipsiva@gmail.com> | ||||
| Date created: 2017-02-05 | ||||
| """ | ||||
|  | ||||
| from thefuck.utils import for_app | ||||
|  | ||||
| no_command = "Error: No such command" | ||||
| need_sudo = "hostscli.errors.SudoRequiredError" | ||||
| no_website = "hostscli.errors.WebsiteImportError" | ||||
|  | ||||
|  | ||||
| @for_app("hostscli") | ||||
| def match(command): | ||||
|     errors = [no_command, need_sudo, 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'] | ||||
|     if need_sudo in command.stderr: | ||||
|         return ['sudo {}'.format(command.script)] | ||||
|     if no_command in command.stderr: | ||||
|         return ['hostscli --help'] | ||||
		Reference in New Issue
	
	Block a user