mirror of
https://github.com/nvbn/thefuck.git
synced 2025-02-20 20:09:07 +00:00
#N/A: Add gradle_wrapper
rule
This commit is contained in:
parent
efcf7da7db
commit
21bb439d7c
@ -182,6 +182,7 @@ using the matched rule and runs it. Rules enabled by default are as follows:
|
||||
* `git_stash` – stashes you local modifications before rebasing or switching branch;
|
||||
* `git_two_dashes` – adds a missing dash to commands like `git commit -amend` or `git rebase -continue`;
|
||||
* `go_run` – appends `.go` extension when compiling/running Go programs;
|
||||
* `gradle_wrapper` – replaces `gradle` with `./gradlew`;
|
||||
* `grep_arguments_order` – fixes grep arguments order for situations like `grep -lir . test`;
|
||||
* `grep_recursive` – adds `-r` when you trying to `grep` directory;
|
||||
* `gulp_not_task` – fixes misspelled `gulp` tasks;
|
||||
|
38
tests/rules/test_gradle_wrapper.py
Normal file
38
tests/rules/test_gradle_wrapper.py
Normal file
@ -0,0 +1,38 @@
|
||||
import pytest
|
||||
from thefuck.rules.gradle_wrapper import match, get_new_command
|
||||
from tests.utils import Command
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def exists(mocker):
|
||||
return mocker.patch('thefuck.rules.gradle_wrapper.os.path.isfile',
|
||||
return_value=True)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('command', [
|
||||
Command('gradle tasks', stderr='gradle: not found'),
|
||||
Command('gradle build', stderr='gradle: not found')])
|
||||
def test_match(mocker, command):
|
||||
mocker.patch('thefuck.rules.gradle_wrapper.which', return_value=None)
|
||||
|
||||
assert match(command)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('command, gradlew, which', [
|
||||
(Command('gradle tasks', stderr='gradle: not found'), False, None),
|
||||
(Command('gradle tasks', stderr='command not found'), True, '/usr/bin/gradle'),
|
||||
(Command('npm tasks', stderr='npm: not found'), True, None)])
|
||||
def test_not_match(mocker, exists, command, gradlew, which):
|
||||
mocker.patch('thefuck.rules.gradle_wrapper.which', return_value=which)
|
||||
exists.return_value = gradlew
|
||||
|
||||
assert not match(command)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('script, result', [
|
||||
('gradle assemble', './gradlew assemble'),
|
||||
('gradle --help', './gradlew --help'),
|
||||
('gradle build -c', './gradlew build -c')])
|
||||
def test_get_new_command(script, result):
|
||||
command = Command(script)
|
||||
assert get_new_command(command) == result
|
13
thefuck/rules/gradle_wrapper.py
Normal file
13
thefuck/rules/gradle_wrapper.py
Normal file
@ -0,0 +1,13 @@
|
||||
import os
|
||||
from thefuck.utils import for_app, which
|
||||
|
||||
|
||||
@for_app('gradle')
|
||||
def match(command):
|
||||
return (not which(command.script_parts[0])
|
||||
and 'not found' in command.stderr
|
||||
and os.path.isfile('gradlew'))
|
||||
|
||||
|
||||
def get_new_command(command):
|
||||
return u'./gradlew {}'.format(' '.join(command.script_parts[1:]))
|
Loading…
x
Reference in New Issue
Block a user