mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-31 07:04:12 +00:00 
			
		
		
		
	Squashed commit of the following:
commit 8573f94c2f3ba17ec5d7dd123338c14a550e57e6 Author: Vladimir Iakovlev <nvbn.rm@gmail.com> Date: Fri Feb 23 20:45:01 2018 +0100 #785: Remove functional test commit 5484576d6e3ef4a53d69860ef953bb48037e8a72 Merge:a36a8b4f59aa93Author: Vladimir Iakovlev <nvbn.rm@gmail.com> Date: Fri Feb 23 20:44:20 2018 +0100 Merge branch 'master' of https://github.com/alexbarcelo/thefuck into alexbarcelo-master commitf59aa931c3Author: Alex Barcelo <alex.barcelo@gmail.com> Date: Fri Feb 16 23:43:43 2018 +0100 rewritten match + fish output check for cd_* rules commit150ecee00fAuthor: Alex Barcelo <alex.barcelo@gmail.com> Date: Fri Feb 16 23:43:19 2018 +0100 Adding unittest for cd_correction (with extra fish test case, also for cd_mkdir) commite73dd3f6d1Author: Alex Barcelo <alex.barcelo@gmail.com> Date: Fri Feb 16 22:48:22 2018 +0100 adding functional test for cd_correction rule commitd1dbbb57d9Author: Alex Barcelo <alex@betarho.net> Date: Fri Feb 16 12:21:33 2018 +0100 Include root (start with /) case
This commit is contained in:
		
							
								
								
									
										23
									
								
								tests/rules/test_cd_correction.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tests/rules/test_cd_correction.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | import pytest | ||||||
|  | from thefuck.rules.cd_correction import match | ||||||
|  | from thefuck.types import Command | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @pytest.mark.parametrize('command', [ | ||||||
|  |     Command('cd foo', 'cd: foo: No such file or directory'), | ||||||
|  |     Command('cd foo/bar/baz', | ||||||
|  |             'cd: foo: No such file or directory'), | ||||||
|  |     Command('cd foo/bar/baz', 'cd: can\'t cd to foo/bar/baz'), | ||||||
|  |     Command('cd /foo/bar/', 'cd: The directory "/foo/bar/" does not exist')]) | ||||||
|  | def test_match(command): | ||||||
|  |     assert match(command) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @pytest.mark.parametrize('command', [ | ||||||
|  |     Command('cd foo', ''), Command('', '')]) | ||||||
|  | def test_not_match(command): | ||||||
|  |     assert not match(command) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Note that get_new_command uses local filesystem, so not testing it here. | ||||||
|  | # Instead, see the functional test `functional.test_cd_correction` | ||||||
| @@ -7,7 +7,8 @@ from thefuck.types import Command | |||||||
|     Command('cd foo', 'cd: foo: No such file or directory'), |     Command('cd foo', 'cd: foo: No such file or directory'), | ||||||
|     Command('cd foo/bar/baz', |     Command('cd foo/bar/baz', | ||||||
|             'cd: foo: No such file or directory'), |             'cd: foo: No such file or directory'), | ||||||
|     Command('cd foo/bar/baz', 'cd: can\'t cd to foo/bar/baz')]) |     Command('cd foo/bar/baz', 'cd: can\'t cd to foo/bar/baz'), | ||||||
|  |     Command('cd /foo/bar/', 'cd: The directory "/foo/bar/" does not exist')]) | ||||||
| def test_match(command): | def test_match(command): | ||||||
|     assert match(command) |     assert match(command) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -21,9 +21,12 @@ def _get_sub_dirs(parent): | |||||||
| @for_app('cd') | @for_app('cd') | ||||||
| def match(command): | def match(command): | ||||||
|     """Match function copied from cd_mkdir.py""" |     """Match function copied from cd_mkdir.py""" | ||||||
|     return (command.script.startswith('cd ') |     return ( | ||||||
|             and ('no such file or directory' in command.output.lower() |         command.script.startswith('cd ') and any(( | ||||||
|                  or 'cd: can\'t cd to' in command.output.lower())) |             'no such file or directory' in command.output.lower(), | ||||||
|  |             'cd: can\'t cd to' in command.output.lower(), | ||||||
|  |             'does not exist' in command.output.lower() | ||||||
|  |         ))) | ||||||
|  |  | ||||||
|  |  | ||||||
| @sudo_support | @sudo_support | ||||||
| @@ -37,7 +40,11 @@ def get_new_command(command): | |||||||
|     dest = command.script_parts[1].split(os.sep) |     dest = command.script_parts[1].split(os.sep) | ||||||
|     if dest[-1] == '': |     if dest[-1] == '': | ||||||
|         dest = dest[:-1] |         dest = dest[:-1] | ||||||
|     if six.PY2: |  | ||||||
|  |     if dest[0] == '': | ||||||
|  |         cwd = os.sep | ||||||
|  |         dest = dest[1:] | ||||||
|  |     elif six.PY2: | ||||||
|         cwd = os.getcwdu() |         cwd = os.getcwdu() | ||||||
|     else: |     else: | ||||||
|         cwd = os.getcwd() |         cwd = os.getcwd() | ||||||
|   | |||||||
| @@ -8,10 +8,11 @@ from thefuck.shells import shell | |||||||
| @for_app('cd') | @for_app('cd') | ||||||
| def match(command): | def match(command): | ||||||
|     return ( |     return ( | ||||||
|         'no such file or directory' in command.output.lower() |         command.script.startswith('cd ') and any(( | ||||||
|         or 'cd: can\'t cd to' in command.output.lower() |             'no such file or directory' in command.output.lower(), | ||||||
|         or 'the system cannot find the path specified.' in command.output.lower() |             'cd: can\'t cd to' in command.output.lower(), | ||||||
|     ) |             'does not exist' in command.output.lower() | ||||||
|  |         ))) | ||||||
|  |  | ||||||
|  |  | ||||||
| @sudo_support | @sudo_support | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user