import pytest
from thefuck.main import Command
from thefuck.rules.git_push import match, get_new_command


@pytest.fixture
def stderr():
    return '''fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

'''


def test_match(stderr):
    assert match(Command('git push master', '', stderr), None)
    assert not match(Command('git push master', '', ''), None)
    assert not match(Command('ls', '', stderr), None)


def test_get_new_command(stderr):
    assert get_new_command(Command('', '', stderr), None)\
        == "git push --set-upstream origin master"