mirror of
https://github.com/nvbn/thefuck.git
synced 2025-03-19 09:08:47 +00:00
parent
1d01d38f19
commit
dba7a8da02
@ -16,7 +16,8 @@ class TestFish(object):
|
|||||||
mock.return_value.stdout.read.side_effect = [(
|
mock.return_value.stdout.read.side_effect = [(
|
||||||
b'cd\nfish_config\nfuck\nfunced\nfuncsave\ngrep\nhistory\nll\nls\n'
|
b'cd\nfish_config\nfuck\nfunced\nfuncsave\ngrep\nhistory\nll\nls\n'
|
||||||
b'man\nmath\npopd\npushd\nruby'),
|
b'man\nmath\npopd\npushd\nruby'),
|
||||||
b'alias fish_key_reader /usr/bin/fish_key_reader\nalias g git']
|
(b'alias fish_key_reader /usr/bin/fish_key_reader\nalias g git\n'
|
||||||
|
b'alias alias_with_equal_sign=echo\ninvalid_alias'), b'func1\nfunc2', b'']
|
||||||
return mock
|
return mock
|
||||||
|
|
||||||
@pytest.mark.parametrize('key, value', [
|
@pytest.mark.parametrize('key, value', [
|
||||||
@ -69,7 +70,9 @@ class TestFish(object):
|
|||||||
'pushd': 'pushd',
|
'pushd': 'pushd',
|
||||||
'ruby': 'ruby',
|
'ruby': 'ruby',
|
||||||
'g': 'git',
|
'g': 'git',
|
||||||
'fish_key_reader': '/usr/bin/fish_key_reader'}
|
'fish_key_reader': '/usr/bin/fish_key_reader',
|
||||||
|
'alias_with_equal_sign': 'echo'}
|
||||||
|
assert shell.get_aliases() == {'func1': 'func1', 'func2': 'func2'}
|
||||||
|
|
||||||
def test_app_alias(self, shell):
|
def test_app_alias(self, shell):
|
||||||
assert 'function fuck' in shell.app_alias('fuck')
|
assert 'function fuck' in shell.app_alias('fuck')
|
||||||
|
@ -20,9 +20,17 @@ def _get_functions(overridden):
|
|||||||
def _get_aliases(overridden):
|
def _get_aliases(overridden):
|
||||||
aliases = {}
|
aliases = {}
|
||||||
proc = Popen(['fish', '-ic', 'alias'], stdout=PIPE, stderr=DEVNULL)
|
proc = Popen(['fish', '-ic', 'alias'], stdout=PIPE, stderr=DEVNULL)
|
||||||
alias_out = proc.stdout.read().decode('utf-8').strip().split('\n')
|
alias_out = proc.stdout.read().decode('utf-8').strip()
|
||||||
for alias in alias_out:
|
if not alias_out:
|
||||||
name, value = alias.replace('alias ', '', 1).split(' ', 1)
|
return aliases
|
||||||
|
for alias in alias_out.split('\n'):
|
||||||
|
for separator in (' ', '='):
|
||||||
|
split_alias = alias.replace('alias ', '', 1).split(separator, 1)
|
||||||
|
if len(split_alias) == 2:
|
||||||
|
name, value = split_alias
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
continue
|
||||||
if name not in overridden:
|
if name not in overridden:
|
||||||
aliases[name] = value
|
aliases[name] = value
|
||||||
return aliases
|
return aliases
|
||||||
|
Loading…
x
Reference in New Issue
Block a user