diff --git a/tests/rules/test_hostscli.py b/tests/rules/test_hostscli.py index 740af43b..373f1fe5 100644 --- a/tests/rules/test_hostscli.py +++ b/tests/rules/test_hostscli.py @@ -2,9 +2,8 @@ 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 @@ -12,20 +11,19 @@ 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 +'''.format(no_website) @pytest.mark.parametrize('command', [ - Command( - 'sudo hostscli block a_website_that_does_not_exist', - stderr=no_website_long)]) + Command('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'])]) + Command('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 diff --git a/thefuck/rules/hostscli.py b/thefuck/rules/hostscli.py index eea6a9ef..36b2f520 100644 --- a/thefuck/rules/hostscli.py +++ b/thefuck/rules/hostscli.py @@ -1,11 +1,13 @@ import re - -from thefuck.utils import replace_command +from thefuck.specific.sudo import sudo_support +from thefuck.utils import replace_command, for_app no_command = "Error: No such command" no_website = "hostscli.errors.WebsiteImportError" +@sudo_support +@for_app('hostscli') def match(command): errors = [no_command, no_website] for error in errors: @@ -14,9 +16,11 @@ def match(command): return False +@sudo_support 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']