mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-18 03:56:01 +00:00
#977: Add wrong_hyphen_before_subcommand
rule
Co-authored-by: user <avi.salmon@intel.com> Co-authored-by: Pablo Santiago Blum de Aguiar <scorphus@gmail.com>
This commit is contained in:
parent
8fa10b1049
commit
2a166a7dec
@ -336,6 +336,7 @@ following rules are enabled by default:
|
||||
* `vagrant_up` – starts up the vagrant instance;
|
||||
* `whois` – fixes `whois` command;
|
||||
* `workon_doesnt_exists` – fixes `virtualenvwrapper` env name os suggests to create new.
|
||||
* `wrong_hyphen_before_subcommand` – removes an improperly placed hyphen (`apt-install` -> `apt install`, `git-log` -> `git log`, etc.)
|
||||
* `yarn_alias` – fixes aliased `yarn` commands like `yarn ls`;
|
||||
* `yarn_command_not_found` – fixes misspelled `yarn` commands;
|
||||
* `yarn_command_replaced` – fixes replaced `yarn` commands;
|
||||
|
30
tests/rules/test_wrong_hyphen_before_subcommand.py
Normal file
30
tests/rules/test_wrong_hyphen_before_subcommand.py
Normal file
@ -0,0 +1,30 @@
|
||||
import pytest
|
||||
|
||||
from thefuck.rules.wrong_hyphen_before_subcommand import match, get_new_command
|
||||
from thefuck.types import Command
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def get_all_executables(mocker):
|
||||
mocker.patch(
|
||||
"thefuck.rules.wrong_hyphen_before_subcommand.get_all_executables",
|
||||
return_value=["git", "apt", "apt-get", "ls", "pwd"],
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("script", ["git-log", "apt-install python"])
|
||||
def test_match(script):
|
||||
assert match(Command(script, ""))
|
||||
|
||||
|
||||
@pytest.mark.parametrize("script", ["ls -la", "git2-make", "apt-get install python"])
|
||||
def test_not_match(script):
|
||||
assert not match(Command(script, ""))
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"script, new_command",
|
||||
[("git-log", "git log"), ("apt-install python", "apt install python")],
|
||||
)
|
||||
def test_get_new_command(script, new_command):
|
||||
assert get_new_command(Command(script, "")) == new_command
|
20
thefuck/rules/wrong_hyphen_before_subcommand.py
Normal file
20
thefuck/rules/wrong_hyphen_before_subcommand.py
Normal file
@ -0,0 +1,20 @@
|
||||
from thefuck.utils import get_all_executables
|
||||
from thefuck.specific.sudo import sudo_support
|
||||
|
||||
|
||||
@sudo_support
|
||||
def match(command):
|
||||
first_part = command.script_parts[0]
|
||||
if "-" not in first_part or first_part in get_all_executables():
|
||||
return False
|
||||
cmd, _ = first_part.split("-", 1)
|
||||
return cmd in get_all_executables()
|
||||
|
||||
|
||||
@sudo_support
|
||||
def get_new_command(command):
|
||||
return command.script.replace("-", " ", 1)
|
||||
|
||||
|
||||
priority = 4500
|
||||
requires_output = False
|
Loading…
Reference in New Issue
Block a user