mirror of
https://github.com/nvbn/thefuck.git
synced 2025-10-08 21:04:03 +01:00
Add rule to remove leading shell prompt literal $ (#996)
* Add rule to remove shell prompt literals $ Rule added to handle cases where the $ symbol is used in the command, this usually happens when the command is copy pasted from a documentation that includes the shell prompt symbol in the code blocks. * Change files using black and flake8 style check * Refactor tests and rule - Refactor test for cleaner test tables - Removed unnecessary requires_output=True option
This commit is contained in:
committed by
Vladimir Iakovlev
parent
d85099b8da
commit
793510ad48
38
tests/rules/test_remove_shell_prompt_literal.py
Normal file
38
tests/rules/test_remove_shell_prompt_literal.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import pytest
|
||||
from thefuck.rules.remove_shell_prompt_literal import match, get_new_command
|
||||
from thefuck.types import Command
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def output():
|
||||
return "$: command not found"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("script", ["$ cd newdir", " $ cd newdir"])
|
||||
def test_match(script, output):
|
||||
assert match(Command(script, output))
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"command",
|
||||
[
|
||||
Command("$", "$: command not found"),
|
||||
Command(" $", "$: command not found"),
|
||||
Command("$?", "127: command not found"),
|
||||
Command(" $?", "127: command not found"),
|
||||
Command("", ""),
|
||||
],
|
||||
)
|
||||
def test_not_match(command):
|
||||
assert not match(command)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"script, new_command",
|
||||
[
|
||||
("$ cd newdir", "cd newdir"),
|
||||
("$ python3 -m virtualenv env", "python3 -m virtualenv env"),
|
||||
],
|
||||
)
|
||||
def test_get_new_command(script, new_command, output):
|
||||
assert get_new_command(Command(script, output)) == new_command
|
Reference in New Issue
Block a user