from thefuck.types import Command
from thefuck.rules.git_push_without_commits import get_new_command, match


def test_match():
    script = "git push -u origin master"
    output = "error: src refspec master does not match any\nerror: failed to..."
    assert match(Command(script, output))


def test_not_match():
    script = "git push -u origin master"
    assert not match(Command(script, "Everything up-to-date"))


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