From e658f35bd978d39fb4d580c3c62286ab7ec69ec9 Mon Sep 17 00:00:00 2001 From: Stef Pletinck Date: Tue, 10 Oct 2017 19:24:38 +0200 Subject: [PATCH] quick fix for #655 (#702) * quick fix for #655 * Enabled by default and fix * Test * Added readme line * This is unnecessary --- README.md | 1 + tests/rules/test_php_s.py | 20 ++++++++++++++++++++ thefuck/rules/php_s.py | 13 +++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 tests/rules/test_php_s.py create mode 100644 thefuck/rules/php_s.py diff --git a/README.md b/README.md index fef76ffd..1ba5b9e4 100644 --- a/README.md +++ b/README.md @@ -242,6 +242,7 @@ using the matched rule and runs it. Rules enabled by default are as follows: * `no_such_file` – creates missing directories with `mv` and `cp` commands; * `open` – either prepends `http://` to address passed to `open` or create a new file or directory and passes it to `open`; * `pip_unknown_command` – fixes wrong `pip` commands, for example `pip instatl/pip install`; +* `php_s` – replaces `-s` by `-S` when trying to run a local php server; * `port_already_in_use` – kills process that bound port; * `python_command` – prepends `python` when you trying to run not executable/without `./` python script; * `python_execute` – appends missing `.py` when executing Python files; diff --git a/tests/rules/test_php_s.py b/tests/rules/test_php_s.py new file mode 100644 index 00000000..54949eef --- /dev/null +++ b/tests/rules/test_php_s.py @@ -0,0 +1,20 @@ +import pytest +from thefuck.rules.php_s import get_new_command, match +from thefuck.types import Command + + +def test_match(): + assert match(Command('php -s localhost:8000', '')) + + +@pytest.mark.parametrize('command', [ + Command('php -S localhost:8000', ''), + Command('vim php -s', '') +]) +def test_not_match(command): + assert not match(command) + + +def test_get_new_command(): + new_command = get_new_command(Command('php -s localhost:8000', '')) + assert new_command == 'php -S localhost:8000' diff --git a/thefuck/rules/php_s.py b/thefuck/rules/php_s.py new file mode 100644 index 00000000..10c09964 --- /dev/null +++ b/thefuck/rules/php_s.py @@ -0,0 +1,13 @@ +from thefuck.utils import replace_argument, for_app + + +@for_app('php') +def match(command): + return "php -s" in command.script + + +def get_new_command(command): + return replace_argument(command.script, "-s", "-S") + + +requires_output = False