mirror of
https://github.com/nvbn/thefuck.git
synced 2025-03-14 14:48:49 +00:00
Escape single quote in branch names
This commit is contained in:
parent
045c8ae76c
commit
85e240e7d1
@ -4,38 +4,51 @@ from thefuck.types import Command
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def output():
|
||||
return '''fatal: The current branch master has no upstream branch.
|
||||
def output(branch):
|
||||
return '''fatal: The current branch {} has no upstream branch.
|
||||
To push the current branch and set the remote as upstream, use
|
||||
|
||||
git push --set-upstream origin master
|
||||
git push --set-upstream origin {}
|
||||
|
||||
'''
|
||||
'''.format(branch, branch)
|
||||
|
||||
|
||||
def test_match(output):
|
||||
assert match(Command('git push', output))
|
||||
assert match(Command('git push master', output))
|
||||
assert not match(Command('git push master', ''))
|
||||
assert not match(Command('ls', output))
|
||||
@pytest.mark.parametrize('command', [
|
||||
Command('git push', output('master')),
|
||||
Command('git push master', output('master'))])
|
||||
def test_match(command):
|
||||
assert match(command)
|
||||
|
||||
|
||||
def test_get_new_command(output):
|
||||
assert get_new_command(Command('git push', output))\
|
||||
== "git push --set-upstream origin master"
|
||||
assert get_new_command(Command('git push master', output))\
|
||||
== "git push --set-upstream origin master"
|
||||
assert get_new_command(Command('git push -u', output))\
|
||||
== "git push --set-upstream origin master"
|
||||
assert get_new_command(Command('git push -u origin', output))\
|
||||
== "git push --set-upstream origin master"
|
||||
assert get_new_command(Command('git push origin', output))\
|
||||
== "git push --set-upstream origin master"
|
||||
assert get_new_command(Command('git push --set-upstream origin', output))\
|
||||
== "git push --set-upstream origin master"
|
||||
assert get_new_command(Command('git push --quiet', output))\
|
||||
== "git push --set-upstream origin master --quiet"
|
||||
assert get_new_command(Command('git push --quiet origin', output))\
|
||||
== "git push --set-upstream origin master --quiet"
|
||||
assert get_new_command(Command('git -c test=test push --quiet origin', output))\
|
||||
== "git -c test=test push --set-upstream origin master --quiet"
|
||||
@pytest.mark.parametrize('command', [
|
||||
Command('git push master', ''),
|
||||
Command('ls', output('master'))])
|
||||
def test_not_match(command):
|
||||
assert not match(command)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('command, new_command', [
|
||||
(Command('git push master', output('master')),
|
||||
'git push --set-upstream origin master'),
|
||||
(Command('git push master', output('master')),
|
||||
'git push --set-upstream origin master'),
|
||||
(Command('git push master', output('master')),
|
||||
'git push --set-upstream origin master'),
|
||||
(Command('git push -u', output('master')),
|
||||
'git push --set-upstream origin master'),
|
||||
(Command('git push -u origin', output('master')),
|
||||
'git push --set-upstream origin master'),
|
||||
(Command('git push origin', output('master')),
|
||||
'git push --set-upstream origin master'),
|
||||
(Command('git push --set-upstream origin', output('master')),
|
||||
'git push --set-upstream origin master'),
|
||||
(Command('git push --quiet', output('master')),
|
||||
'git push --set-upstream origin master --quiet'),
|
||||
(Command('git push --quiet origin', output('master')),
|
||||
'git push --set-upstream origin master --quiet'),
|
||||
(Command('git -c test=test push --quiet origin', output('master')),
|
||||
'git -c test=test push --set-upstream origin master --quiet'),
|
||||
(Command('git push', output("test's")),
|
||||
"git push --set-upstream origin test\\'s")])
|
||||
def test_get_new_command(command, new_command):
|
||||
assert get_new_command(command) == new_command
|
||||
|
@ -39,6 +39,6 @@ def get_new_command(command):
|
||||
while len(command_parts) > push_idx and command_parts[len(command_parts) - 1][0] != '-':
|
||||
command_parts.pop(len(command_parts) - 1)
|
||||
|
||||
arguments = re.findall(r'git push (.*)', command.output)[0].strip()
|
||||
arguments = re.findall(r'git push (.*)', command.output)[0].replace("'", r"\'").strip()
|
||||
return replace_argument(" ".join(command_parts), 'push',
|
||||
'push {}'.format(arguments))
|
||||
|
Loading…
x
Reference in New Issue
Block a user