1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-18 12:06:04 +00:00

#N/A Add tests for fish

This commit is contained in:
nvbn 2015-07-24 08:04:49 +03:00
parent c34a56bc89
commit e1416a0127
5 changed files with 69 additions and 38 deletions

20
tests/functional/plots.py Normal file
View File

@ -0,0 +1,20 @@
def with_confirmation(proc):
"""Ensures that command can be fixed when confirmation enabled."""
proc.sendline('ehco test')
proc.sendline('fuck')
proc.expect('echo test')
proc.expect('enter')
proc.expect_exact('ctrl+c')
proc.send('\n')
proc.expect('test')
def without_confirmation(proc):
"""Ensures that command can be fixed when confirmation disabled."""
proc.sendline('ehco test')
proc.sendline('fuck')
proc.expect('echo test')
proc.expect('test')

View File

@ -1,4 +1,5 @@
import pytest
from tests.functional.plots import with_confirmation, without_confirmation
from tests.functional.utils import spawn, functional
containers = [('thefuck/ubuntu-python3-bash', '''
@ -23,17 +24,7 @@ CMD ["/bin/bash"]
def test_with_confirmation(tag, dockerfile):
with spawn(tag, dockerfile) as proc:
proc.sendline('eval $(thefuck-alias)')
proc.sendline('ehco test')
proc.expect('command not found')
proc.sendline('fuck')
proc.expect('echo test')
proc.expect('enter')
proc.expect_exact('ctrl+c')
proc.send('\n')
proc.expect('test')
with_confirmation(proc)
@functional
@ -42,10 +33,4 @@ def test_without_confirmation(tag, dockerfile):
with spawn(tag, dockerfile) as proc:
proc.sendline('export THEFUCK_REQUIRE_CONFIRMATION=false')
proc.sendline('eval $(thefuck-alias)')
proc.sendline('ehco test')
proc.expect('command not found')
proc.sendline('fuck')
proc.expect('echo test')
proc.expect('test')
without_confirmation(proc)

View File

@ -0,0 +1,39 @@
import pytest
from tests.functional.plots import with_confirmation, without_confirmation
from tests.functional.utils import spawn, functional
containers = [('thefuck/ubuntu-python3-bash', '''
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -yy python3 python3-pip python3-dev fish
RUN pip3 install -U setuptools
RUN ln -s /usr/bin/pip3 /usr/bin/pip
CMD ["/usr/bin/fish"]
'''),
('thefuck/ubuntu-python2-bash', '''
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -yy python python-pip python-dev fish
RUN pip2 install -U pip setuptools
CMD ["/usr/bin/fish"]
''')]
@functional
@pytest.mark.parametrize('tag, dockerfile', containers)
def test_with_confirmation(tag, dockerfile):
with spawn(tag, dockerfile) as proc:
proc.sendline('thefuck-alias >> ~/.config/fish/config.fish')
proc.sendline('fish')
with_confirmation(proc)
@functional
@pytest.mark.parametrize('tag, dockerfile', containers)
def test_without_confirmation(tag, dockerfile):
with spawn(tag, dockerfile) as proc:
proc.sendline('thefuck-alias >> ~/.config/fish/config.fish')
proc.sendline('mkdir ~/.thefuck')
proc.sendline('echo "require_confirmation = False" >> ~/.thefuck/settings.py')
proc.sendline('fish')
without_confirmation(proc)

View File

@ -1,5 +1,6 @@
import pytest
from tests.functional.utils import spawn, functional
from tests.functional.plots import with_confirmation, without_confirmation
containers = [('thefuck/ubuntu-python3-zsh', '''
FROM ubuntu:latest
@ -23,17 +24,7 @@ CMD ["/bin/zsh"]
def test_with_confirmation(tag, dockerfile):
with spawn(tag, dockerfile) as proc:
proc.sendline('eval $(thefuck-alias)')
proc.sendline('ehco test')
proc.expect('command not found')
proc.sendline('fuck')
proc.expect('echo test')
proc.expect('enter')
proc.expect_exact('ctrl+c')
proc.send('\n')
proc.expect('test')
with_confirmation(proc)
@functional
@ -42,10 +33,4 @@ def test_without_confirmation(tag, dockerfile):
with spawn(tag, dockerfile) as proc:
proc.sendline('export THEFUCK_REQUIRE_CONFIRMATION=false')
proc.sendline('eval $(thefuck-alias)')
proc.sendline('ehco test')
proc.expect('command not found')
proc.sendline('fuck')
proc.expect('echo test')
proc.expect('test')
without_confirmation(proc)

View File

@ -1,11 +1,12 @@
import os
import pytest
from contextlib import contextmanager
import pexpect
import subprocess
import shutil
from tempfile import mkdtemp
from pathlib import Path
import sys
import pexpect
import pytest
root = str(Path(__file__).parent.parent.parent.resolve())
@ -25,6 +26,7 @@ def spawn(tag, dockerfile):
build_container(tag, dockerfile)
proc = pexpect.spawnu(
'docker run --volume {}:/src --tty=true --interactive=true {}'.format(root, tag))
proc.logfile = sys.stdout
proc.sendline('pip install /src')
try: