import pytest from thefuck.rules.grep_arguments_order import get_new_command, match from tests.utils import Command stderr = 'grep: {}: No such file or directory'.format @pytest.fixture(autouse=True) def os_path(monkeypatch): monkeypatch.setattr('os.path.isfile', lambda x: not x.startswith('-')) @pytest.mark.parametrize('script, file', [ ('grep test.py test', 'test'), ('grep -lir . test', 'test'), ('egrep test.py test', 'test'), ('egrep -lir . test', 'test')]) def test_match(script, file): assert match(Command(script, stderr=stderr(file))) @pytest.mark.parametrize('script, stderr', [ ('cat test.py', stderr('test')), ('grep test test.py', ''), ('grep -lir test .', ''), ('egrep test test.py', ''), ('egrep -lir test .', '')]) def test_not_match(script, stderr): assert not match(Command(script, stderr=stderr)) @pytest.mark.parametrize('script, stderr, result', [ ('grep test.py test', stderr('test'), 'grep test test.py'), ('grep -lir . test', stderr('test'), 'grep -lir test .'), ('grep . test -lir', stderr('test'), 'grep test -lir .'), ('egrep test.py test', stderr('test'), 'egrep test test.py'), ('egrep -lir . test', stderr('test'), 'egrep -lir test .'), ('egrep . test -lir', stderr('test'), 'egrep test -lir .')]) def test_get_new_command(script, stderr, result): assert get_new_command(Command(script, stderr=stderr)) == result