1
0
mirror of https://github.com/nvbn/thefuck.git synced 2024-10-05 18:31:10 +01: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: a36a8b4 f59aa93
Author: 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

commit f59aa931c3
Author: Alex Barcelo <alex.barcelo@gmail.com>
Date:   Fri Feb 16 23:43:43 2018 +0100

    rewritten match + fish output check for cd_* rules

commit 150ecee00f
Author: 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)

commit e73dd3f6d1
Author: Alex Barcelo <alex.barcelo@gmail.com>
Date:   Fri Feb 16 22:48:22 2018 +0100

    adding functional test for cd_correction rule

commit d1dbbb57d9
Author: Alex Barcelo <alex@betarho.net>
Date:   Fri Feb 16 12:21:33 2018 +0100

    Include root (start with /) case
This commit is contained in:
Vladimir Iakovlev 2018-02-23 20:45:36 +01:00
parent a36a8b4de1
commit ed24e4ca61
4 changed files with 41 additions and 9 deletions

View 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`

View File

@ -7,7 +7,8 @@ from thefuck.types import 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/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)

View File

@ -21,9 +21,12 @@ def _get_sub_dirs(parent):
@for_app('cd')
def match(command):
"""Match function copied from cd_mkdir.py"""
return (command.script.startswith('cd ')
and ('no such file or directory' in command.output.lower()
or 'cd: can\'t cd to' in command.output.lower()))
return (
command.script.startswith('cd ') and any((
'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
@ -37,7 +40,11 @@ def get_new_command(command):
dest = command.script_parts[1].split(os.sep)
if dest[-1] == '':
dest = dest[:-1]
if six.PY2:
if dest[0] == '':
cwd = os.sep
dest = dest[1:]
elif six.PY2:
cwd = os.getcwdu()
else:
cwd = os.getcwd()

View File

@ -8,10 +8,11 @@ from thefuck.shells import shell
@for_app('cd')
def match(command):
return (
'no such file or directory' in command.output.lower()
or 'cd: can\'t cd to' in command.output.lower()
or 'the system cannot find the path specified.' in command.output.lower()
)
command.script.startswith('cd ') and any((
'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