import pytest from thefuck.rules.remove_shell_prompt_literal import match, get_new_command from thefuck.types import Command @pytest.fixture def output(): return "$: command not found" @pytest.mark.parametrize("script", ["$ cd newdir", " $ cd newdir"]) def test_match(script, output): assert match(Command(script, output)) @pytest.mark.parametrize( "command", [ Command("$", "$: command not found"), Command(" $", "$: command not found"), Command("$?", "127: command not found"), Command(" $?", "127: command not found"), Command("", ""), ], ) def test_not_match(command): assert not match(command) @pytest.mark.parametrize( "script, new_command", [ ("$ cd newdir", "cd newdir"), ("$ python3 -m virtualenv env", "python3 -m virtualenv env"), ], ) def test_get_new_command(script, new_command, output): assert get_new_command(Command(script, output)) == new_command