From 14e4158c7a39bb32b5c599470e237a1c387dafc7 Mon Sep 17 00:00:00 2001 From: nvbn Date: Fri, 24 Jul 2015 23:50:22 +0300 Subject: [PATCH] Add tests for tcsh, fix tcsh alias --- tests/functional/test_fish.py | 4 +-- tests/functional/test_tcsh.py | 49 +++++++++++++++++++++++++++++++++++ thefuck/shells.py | 2 +- 3 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 tests/functional/test_tcsh.py diff --git a/tests/functional/test_fish.py b/tests/functional/test_fish.py index fd8d3158..af546bc6 100644 --- a/tests/functional/test_fish.py +++ b/tests/functional/test_fish.py @@ -3,7 +3,7 @@ from tests.functional.plots import with_confirmation, without_confirmation, \ refuse_with_confirmation from tests.functional.utils import spawn, functional -containers = [('ubuntu-python3-bash', ''' +containers = [('ubuntu-python3-fish', ''' FROM ubuntu:latest RUN apt-get update RUN apt-get install -yy python3 python3-pip python3-dev fish @@ -11,7 +11,7 @@ RUN pip3 install -U setuptools RUN ln -s /usr/bin/pip3 /usr/bin/pip CMD ["/usr/bin/fish"] '''), - ('ubuntu-python2-bash', ''' + ('ubuntu-python2-fish', ''' FROM ubuntu:latest RUN apt-get update RUN apt-get install -yy python python-pip python-dev fish diff --git a/tests/functional/test_tcsh.py b/tests/functional/test_tcsh.py new file mode 100644 index 00000000..febcfa21 --- /dev/null +++ b/tests/functional/test_tcsh.py @@ -0,0 +1,49 @@ +import pytest +from tests.functional.utils import spawn, functional +from tests.functional.plots import with_confirmation, without_confirmation, \ + refuse_with_confirmation + +containers = [('ubuntu-python3-tcsh', ''' +FROM ubuntu:latest +RUN apt-get update +RUN apt-get install -yy python3 python3-pip python3-dev tcsh +RUN pip3 install -U setuptools +RUN ln -s /usr/bin/pip3 /usr/bin/pip +CMD ["/usr/bin/tcsh"] +'''), + ('ubuntu-python2-tcsh', ''' +FROM ubuntu:latest +RUN apt-get update +RUN apt-get install -yy python python-pip python-dev tcsh +RUN pip2 install -U pip setuptools +CMD ["/usr/bin/tcsh"] +''')] + + +@functional +@pytest.mark.parametrize('tag, dockerfile', containers) +def test_with_confirmation(tag, dockerfile): + with spawn(tag, dockerfile) as proc: + proc.sendline('tcsh') + proc.sendline('eval `thefuck-alias`') + with_confirmation(proc) + + +@functional +@pytest.mark.parametrize('tag, dockerfile', containers) +def test_refuse_with_confirmation(tag, dockerfile): + with spawn(tag, dockerfile) as proc: + proc.sendline('tcsh') + proc.sendline('eval `thefuck-alias`') + refuse_with_confirmation(proc) + + +@functional +@pytest.mark.parametrize('tag, dockerfile', containers) +def test_without_confirmation(tag, dockerfile): + with spawn(tag, dockerfile) as proc: + proc.sendline('tcsh') + proc.sendline('mkdir ~/.thefuck') + proc.sendline('echo "require_confirmation = False" >> ~/.thefuck/settings.py') + proc.sendline('eval `thefuck-alias`') + without_confirmation(proc) diff --git a/thefuck/shells.py b/thefuck/shells.py index cf703c38..d5fac6e3 100644 --- a/thefuck/shells.py +++ b/thefuck/shells.py @@ -194,7 +194,7 @@ class Tcsh(Generic): def app_alias(self, fuck): return ("alias {0} 'setenv TF_ALIAS {0} && " "set fucked_cmd=`history -h 2 | head -n 1` && " - "eval `thefuck ${fucked_cmd}`'").format(fuck) + "eval `thefuck ${{fucked_cmd}}`'").format(fuck) def _parse_alias(self, alias): name, value = alias.split("\t", 1)