mirror of
https://github.com/nvbn/thefuck.git
synced 2025-09-21 04:32:37 +01:00
#N/A Add tests for fish
This commit is contained in:
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
|
import pytest
|
||||||
|
from tests.functional.plots import with_confirmation, without_confirmation
|
||||||
from tests.functional.utils import spawn, functional
|
from tests.functional.utils import spawn, functional
|
||||||
|
|
||||||
containers = [('thefuck/ubuntu-python3-bash', '''
|
containers = [('thefuck/ubuntu-python3-bash', '''
|
||||||
@@ -23,17 +24,7 @@ CMD ["/bin/bash"]
|
|||||||
def test_with_confirmation(tag, dockerfile):
|
def test_with_confirmation(tag, dockerfile):
|
||||||
with spawn(tag, dockerfile) as proc:
|
with spawn(tag, dockerfile) as proc:
|
||||||
proc.sendline('eval $(thefuck-alias)')
|
proc.sendline('eval $(thefuck-alias)')
|
||||||
|
with_confirmation(proc)
|
||||||
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')
|
|
||||||
|
|
||||||
|
|
||||||
@functional
|
@functional
|
||||||
@@ -42,10 +33,4 @@ def test_without_confirmation(tag, dockerfile):
|
|||||||
with spawn(tag, dockerfile) as proc:
|
with spawn(tag, dockerfile) as proc:
|
||||||
proc.sendline('export THEFUCK_REQUIRE_CONFIRMATION=false')
|
proc.sendline('export THEFUCK_REQUIRE_CONFIRMATION=false')
|
||||||
proc.sendline('eval $(thefuck-alias)')
|
proc.sendline('eval $(thefuck-alias)')
|
||||||
|
without_confirmation(proc)
|
||||||
proc.sendline('ehco test')
|
|
||||||
proc.expect('command not found')
|
|
||||||
|
|
||||||
proc.sendline('fuck')
|
|
||||||
proc.expect('echo test')
|
|
||||||
proc.expect('test')
|
|
||||||
|
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
|
import pytest
|
||||||
from tests.functional.utils import spawn, functional
|
from tests.functional.utils import spawn, functional
|
||||||
|
from tests.functional.plots import with_confirmation, without_confirmation
|
||||||
|
|
||||||
containers = [('thefuck/ubuntu-python3-zsh', '''
|
containers = [('thefuck/ubuntu-python3-zsh', '''
|
||||||
FROM ubuntu:latest
|
FROM ubuntu:latest
|
||||||
@@ -23,17 +24,7 @@ CMD ["/bin/zsh"]
|
|||||||
def test_with_confirmation(tag, dockerfile):
|
def test_with_confirmation(tag, dockerfile):
|
||||||
with spawn(tag, dockerfile) as proc:
|
with spawn(tag, dockerfile) as proc:
|
||||||
proc.sendline('eval $(thefuck-alias)')
|
proc.sendline('eval $(thefuck-alias)')
|
||||||
|
with_confirmation(proc)
|
||||||
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')
|
|
||||||
|
|
||||||
|
|
||||||
@functional
|
@functional
|
||||||
@@ -42,10 +33,4 @@ def test_without_confirmation(tag, dockerfile):
|
|||||||
with spawn(tag, dockerfile) as proc:
|
with spawn(tag, dockerfile) as proc:
|
||||||
proc.sendline('export THEFUCK_REQUIRE_CONFIRMATION=false')
|
proc.sendline('export THEFUCK_REQUIRE_CONFIRMATION=false')
|
||||||
proc.sendline('eval $(thefuck-alias)')
|
proc.sendline('eval $(thefuck-alias)')
|
||||||
|
without_confirmation(proc)
|
||||||
proc.sendline('ehco test')
|
|
||||||
proc.expect('command not found')
|
|
||||||
|
|
||||||
proc.sendline('fuck')
|
|
||||||
proc.expect('echo test')
|
|
||||||
proc.expect('test')
|
|
||||||
|
@@ -1,11 +1,12 @@
|
|||||||
import os
|
import os
|
||||||
import pytest
|
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
import pexpect
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import shutil
|
import shutil
|
||||||
from tempfile import mkdtemp
|
from tempfile import mkdtemp
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
import sys
|
||||||
|
import pexpect
|
||||||
|
import pytest
|
||||||
|
|
||||||
root = str(Path(__file__).parent.parent.parent.resolve())
|
root = str(Path(__file__).parent.parent.parent.resolve())
|
||||||
|
|
||||||
@@ -25,6 +26,7 @@ def spawn(tag, dockerfile):
|
|||||||
build_container(tag, dockerfile)
|
build_container(tag, dockerfile)
|
||||||
proc = pexpect.spawnu(
|
proc = pexpect.spawnu(
|
||||||
'docker run --volume {}:/src --tty=true --interactive=true {}'.format(root, tag))
|
'docker run --volume {}:/src --tty=true --interactive=true {}'.format(root, tag))
|
||||||
|
proc.logfile = sys.stdout
|
||||||
proc.sendline('pip install /src')
|
proc.sendline('pip install /src')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
Reference in New Issue
Block a user