1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-18 12:06:04 +00:00

#618: Fix git_push_without_commits rule

The rule was in a non-working state. And the tests needed some bit of
simplification. Certain degree of repetition is oftentimes a good thing.
This commit is contained in:
Pablo Santiago Blum de Aguiar 2021-07-28 22:46:34 +02:00 committed by Pablo Aguiar
parent 30c90bccaa
commit dbc435c040
2 changed files with 18 additions and 27 deletions

View File

@ -1,27 +1,20 @@
import pytest
from thefuck.types import Command from thefuck.types import Command
from thefuck.rules.git_push_without_commits import ( from thefuck.rules.git_push_without_commits import get_new_command, match
fix,
get_new_command,
match,
)
command = 'git push -u origin master'
expected_error = '''
error: src refspec master does not match any.
error: failed to push some refs to 'git@github.com:User/repo.git'
'''
@pytest.mark.parametrize('command', [Command(command, expected_error)]) def test_match():
def test_match(command): script = "git push -u origin master"
assert match(command) output = "error: src refspec master does not match any\nerror: failed to..."
assert match(Command(script, output))
@pytest.mark.parametrize('command, result', [( def test_not_match():
Command(command, expected_error), script = "git push -u origin master"
fix.format(command=command), assert not match(Command(script, "Everything up-to-date"))
)])
def test_get_new_command(command, result):
assert get_new_command(command) == result def test_get_new_command():
script = "git push -u origin master"
output = "error: src refspec master does not match any\nerror: failed to..."
new_command = 'git commit -m "Initial commit" && git push -u origin master'
assert get_new_command(Command(script, output)) == new_command

View File

@ -1,14 +1,12 @@
import re import re
from thefuck.shells import shell
from thefuck.specific.git import git_support from thefuck.specific.git import git_support
fix = u'git commit -m "Initial commit." && {command}'
refspec_does_not_match = re.compile(r'src refspec \w+ does not match any\.')
@git_support @git_support
def match(command): def match(command):
return bool(refspec_does_not_match.search(command.output)) return bool(re.search(r"src refspec \w+ does not match any", command.output))
def get_new_command(command): def get_new_command(command):
return fix.format(command=command.script) return shell.and_('git commit -m "Initial commit"', command.script)