mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-30 22:54:14 +00:00 
			
		
		
		
	| @@ -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): | ||||
|     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()) | ||||
|     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) | ||||
|         new_cmd = new_cmd[0].strip() | ||||
|     return replace_argument(command.script, broken_cmd, new_cmd) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user