mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-18 20:11:17 +00:00
parent
9201ce79cf
commit
54253027e3
@ -39,18 +39,28 @@ def composer_not_command_one_of_this():
|
||||
)
|
||||
|
||||
|
||||
def test_match(composer_not_command, composer_not_command_one_of_this):
|
||||
@pytest.fixture
|
||||
def composer_require_instead_of_install():
|
||||
return 'Invalid argument package. Use "composer require package" instead to add packages to your composer.json.'
|
||||
|
||||
|
||||
def test_match(composer_not_command, composer_not_command_one_of_this, composer_require_instead_of_install):
|
||||
assert match(Command('composer udpate',
|
||||
composer_not_command))
|
||||
assert match(Command('composer pdate',
|
||||
composer_not_command_one_of_this))
|
||||
assert match(Command('composer install package',
|
||||
composer_require_instead_of_install))
|
||||
assert not match(Command('ls update', composer_not_command))
|
||||
|
||||
|
||||
def test_get_new_command(composer_not_command, composer_not_command_one_of_this):
|
||||
def test_get_new_command(composer_not_command, composer_not_command_one_of_this, composer_require_instead_of_install):
|
||||
assert (get_new_command(Command('composer udpate',
|
||||
composer_not_command))
|
||||
== 'composer update')
|
||||
assert (get_new_command(Command('composer pdate',
|
||||
composer_not_command_one_of_this))
|
||||
== 'composer selfupdate')
|
||||
assert (get_new_command(Command('composer install package',
|
||||
composer_require_instead_of_install))
|
||||
== 'composer require package')
|
||||
|
@ -5,12 +5,18 @@ from thefuck.utils import replace_argument, for_app
|
||||
@for_app('composer')
|
||||
def match(command):
|
||||
return (('did you mean this?' in command.output.lower()
|
||||
or 'did you mean one of these?' in command.output.lower()))
|
||||
or 'did you mean one of these?' in command.output.lower())) or (
|
||||
"install" in command.script_parts and "composer require" in command.output.lower()
|
||||
)
|
||||
|
||||
|
||||
def get_new_command(command):
|
||||
if "install" in command.script_parts and "composer require" in command.output.lower():
|
||||
broken_cmd, new_cmd = "install", "require"
|
||||
else:
|
||||
broken_cmd = re.findall(r"Command \"([^']*)\" is not defined", command.output)[0]
|
||||
new_cmd = re.findall(r'Did you mean this\?[^\n]*\n\s*([^\n]*)', command.output)
|
||||
if not new_cmd:
|
||||
new_cmd = re.findall(r'Did you mean one of these\?[^\n]*\n\s*([^\n]*)', command.output)
|
||||
return replace_argument(command.script, broken_cmd, new_cmd[0].strip())
|
||||
new_cmd = new_cmd[0].strip()
|
||||
return replace_argument(command.script, broken_cmd, new_cmd)
|
||||
|
Loading…
x
Reference in New Issue
Block a user