mirror of
https://github.com/nvbn/thefuck.git
synced 2025-02-22 04:48:57 +00:00
Add the git_pull_clone
rule
This commit is contained in:
parent
569709388d
commit
bb7579ead5
21
tests/rules/test_git_pull_clone.py
Normal file
21
tests/rules/test_git_pull_clone.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import pytest
|
||||||
|
from thefuck.rules.git_pull_clone import match, get_new_command
|
||||||
|
from tests.utils import Command
|
||||||
|
|
||||||
|
|
||||||
|
git_err = '''
|
||||||
|
fatal: Not a git repository (or any parent up to mount point /home)
|
||||||
|
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('command', [
|
||||||
|
Command(script='git pull git@github.com:mcarton/thefuck.git', stderr=git_err)])
|
||||||
|
def test_match(command):
|
||||||
|
assert match(command, None)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('command, output', [
|
||||||
|
(Command(script='git pull git@github.com:mcarton/thefuck.git', stderr=git_err), 'git clone git@github.com:mcarton/thefuck.git')])
|
||||||
|
def test_get_new_command(command, output):
|
||||||
|
assert get_new_command(command, None) == output
|
14
thefuck/rules/git_pull_clone.py
Normal file
14
thefuck/rules/git_pull_clone.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import re
|
||||||
|
from thefuck import utils, shells
|
||||||
|
|
||||||
|
|
||||||
|
@utils.git_support
|
||||||
|
def match(command, settings):
|
||||||
|
return ('git pull' in command.script
|
||||||
|
and 'fatal: Not a git repository' in command.stderr
|
||||||
|
and "Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)." in command.stderr)
|
||||||
|
|
||||||
|
|
||||||
|
@utils.git_support
|
||||||
|
def get_new_command(command, settings):
|
||||||
|
return command.script.replace(' pull ', ' clone ')
|
Loading…
x
Reference in New Issue
Block a user