mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-31 07:04:12 +00: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 | ||||
| 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: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user