diff --git a/tests/functional/test_cd_correction.py b/tests/functional/test_cd_correction.py new file mode 100644 index 00000000..f4c3d286 --- /dev/null +++ b/tests/functional/test_cd_correction.py @@ -0,0 +1,40 @@ +import pytest + +dockerfile = u''' +FROM python:3 +RUN adduser --disabled-password --gecos '' test +WORKDIR /src +USER test +RUN echo 'eval $(thefuck --alias)' > /home/test/.bashrc +RUN echo > /home/test/.bash_history +RUN mkdir -p /home/test/some/random/folder +RUN mkdir -p /home/test/another/random/folder +USER root +''' + + +def plot(proc, TIMEOUT): + proc.sendline(u'cd /home/test/some/random') + proc.sendline(u'fuck') + assert proc.expect([TIMEOUT, u'No fucks given']) + proc.sendline(u'cd flder') + proc.sendline(u'fuck') + assert proc.expect([TIMEOUT, u'cd "/home/test/some/random/folder"']) + proc.send('\n') + proc.sendline(u'pwd') + assert proc.expect([TIMEOUT, u'/home/test/some/random/folder']) + proc.sendline(u'cd /home/test/another/randm/folder/') + proc.sendline(u'fuck') + assert proc.expect([TIMEOUT, u'cd "/home/test/another/random/folder"']) + proc.send('\n') + proc.sendline(u'pwd') + assert proc.expect([TIMEOUT, u'/home/test/another/random/folder']) + + +@pytest.mark.functional +def test_performance(spawnu, TIMEOUT, benchmark): + proc = spawnu(u'thefuck/python3-cd_correction-functional', + dockerfile, u'bash') + proc.sendline(u'pip install /src') + proc.sendline(u'su test') + assert benchmark(plot, proc, TIMEOUT) is None