mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-19 04:21:14 +00:00
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
import pytest
|
|
from thefuck.rules.git_push_pull import match, get_new_command
|
|
from tests.utils import Command
|
|
|
|
|
|
git_err = '''
|
|
To /tmp/foo
|
|
! [rejected] master -> master (non-fast-forward)
|
|
error: failed to push some refs to '/tmp/bar'
|
|
hint: Updates were rejected because the tip of your current branch is behind
|
|
hint: its remote counterpart. Integrate the remote changes (e.g.
|
|
hint: 'git pull ...') before pushing again.
|
|
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
|
|
'''
|
|
|
|
git_uptodate = 'Everything up-to-date'
|
|
git_ok = '''
|
|
Counting objects: 3, done.
|
|
Delta compression using up to 4 threads.
|
|
Compressing objects: 100% (2/2), done.
|
|
Writing objects: 100% (3/3), 282 bytes | 0 bytes/s, done.
|
|
Total 3 (delta 0), reused 0 (delta 0)
|
|
To /tmp/bar
|
|
514eed3..f269c79 master -> master
|
|
'''
|
|
|
|
|
|
@pytest.mark.parametrize('command', [
|
|
Command(script='git push', stderr=git_err),
|
|
Command(script='git push nvbn', stderr=git_err),
|
|
Command(script='git push nvbn master', stderr=git_err)])
|
|
def test_match(command):
|
|
assert match(command, None)
|
|
|
|
|
|
@pytest.mark.parametrize('command', [
|
|
Command(script='git push', stderr=git_ok),
|
|
Command(script='git push', stderr=git_uptodate),
|
|
Command(script='git push nvbn', stderr=git_ok),
|
|
Command(script='git push nvbn master', stderr=git_uptodate),
|
|
Command(script='git push nvbn', stderr=git_ok),
|
|
Command(script='git push nvbn master', stderr=git_uptodate)])
|
|
def test_not_match(command):
|
|
assert not match(command, None)
|
|
|
|
|
|
@pytest.mark.parametrize('command, output', [
|
|
(Command(script='git push', stderr=git_err), 'git pull && git push'),
|
|
(Command(script='git push nvbn', stderr=git_err),
|
|
'git pull nvbn && git push nvbn'),
|
|
(Command(script='git push nvbn master', stderr=git_err),
|
|
'git pull nvbn master && git push nvbn master')])
|
|
def test_get_new_command(command, output):
|
|
assert get_new_command(command, None) == output
|