diff --git a/README.md b/README.md index 58e6c831..534955d1 100644 --- a/README.md +++ b/README.md @@ -216,6 +216,7 @@ using the matched rule and runs it. Rules enabled by default are as follows: * `python_execute` – appends missing `.py` when executing Python files; * `quotation_marks` – fixes uneven usage of `'` and `"` when containing args'; * `react_native_command_unrecognized` – fixes unrecognized `react-native` commands; +* `remove_trailing_cedilla` – remove trailling cedillas `ç`, a common typo for european keyboard layouts; * `rm_dir` – adds `-rf` when you trying to remove directory; * `sed_unterminated_s` – adds missing '/' to `sed`'s `s` commands; * `sl_ls` – changes `sl` to `ls`; diff --git a/tests/rules/test_remove_trailing_cedilla.py b/tests/rules/test_remove_trailing_cedilla.py new file mode 100644 index 00000000..377ff8fc --- /dev/null +++ b/tests/rules/test_remove_trailing_cedilla.py @@ -0,0 +1,15 @@ +import pytest +from thefuck.rules.remove_trailing_cedilla import match, get_new_command, CEDILLA +from tests.utils import Command + +@pytest.mark.parametrize('command', [ + Command(script='wrong' + CEDILLA), + Command(script='wrong with args' + CEDILLA)]) +def test_match(command): + assert match(command) + +@pytest.mark.parametrize('command, new_command', [ + (Command('wrong' + CEDILLA), 'wrong'), + (Command('wrong with args' + CEDILLA), 'wrong with args')]) +def test_get_new_command(command, new_command): + assert get_new_command(command) == new_command diff --git a/thefuck/rules/remove_trailing_cedilla.py b/thefuck/rules/remove_trailing_cedilla.py new file mode 100644 index 00000000..31186448 --- /dev/null +++ b/thefuck/rules/remove_trailing_cedilla.py @@ -0,0 +1,9 @@ +# encoding=utf8 + +CEDILLA = u"ç" + +def match(command): + return command.script.endswith(CEDILLA) + +def get_new_command(command): + return command.script[:-1]