import pytest from thefuck.rules.git_pull_uncommitted_changes import match, get_new_command from tests.utils import Command @pytest.fixture def stderr(): return '''error: Cannot pull with rebase: You have unstaged changes.''' def test_match(stderr): assert match(Command('git pull', stderr=stderr)) assert not match(Command('git pull')) assert not match(Command('ls', stderr=stderr)) def test_get_new_command(stderr): assert get_new_command(Command('git pull', stderr=stderr)) \ == "git stash && git pull && git stash pop"