1
0
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:
Vladimir Iakovlev 2016-08-13 19:30:46 +03:00
parent efcf7da7db
commit 21bb439d7c
3 changed files with 52 additions and 0 deletions

View File

@ -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;

View 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

View 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:]))