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:
parent
c34a56bc89
commit
e1416a0127
20
tests/functional/plots.py
Normal file
20
tests/functional/plots.py
Normal 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')
|
@ -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)
|
||||
|
39
tests/functional/test_fish.py
Normal file
39
tests/functional/test_fish.py
Normal 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)
|
@ -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)
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user