diff --git a/tests/shells/test_fish.py b/tests/shells/test_fish.py index 7dd46848..c561352f 100644 --- a/tests/shells/test_fish.py +++ b/tests/shells/test_fish.py @@ -19,14 +19,18 @@ class TestFish(object): return mock @pytest.fixture - def environ(self, monkeypatch): - data = {'TF_OVERRIDDEN_ALIASES': 'cd, ls, man, open'} - monkeypatch.setattr('thefuck.shells.fish.os.environ', data) - return data + def os_environ(self, monkeypatch, key, value): + monkeypatch.setattr('os.environ', {key: value}) - @pytest.mark.usefixture('environ') - def test_get_overridden_aliases(self, shell, environ): - assert shell._get_overridden_aliases() == ['cd', 'ls', 'man', 'open'] + @pytest.mark.parametrize('key, value', [ + ('TF_OVERRIDDEN_ALIASES', 'cut,git,sed'), # legacy + ('THEFUCK_OVERRIDDEN_ALIASES', 'cut,git,sed'), + ('THEFUCK_OVERRIDDEN_ALIASES', 'cut, git, sed'), + ('THEFUCK_OVERRIDDEN_ALIASES', ' cut,\tgit,sed\n'), + ('THEFUCK_OVERRIDDEN_ALIASES', '\ncut,\n\ngit,\tsed\r')]) + def test_get_overridden_aliases(self, shell, os_environ): + assert shell._get_overridden_aliases() == {'cd', 'cut', 'git', 'grep', + 'ls', 'man', 'open', 'sed'} @pytest.mark.parametrize('before, after', [ ('cd', 'cd'), diff --git a/thefuck/shells/fish.py b/thefuck/shells/fish.py index bc2b2ec7..ab7ed477 100644 --- a/thefuck/shells/fish.py +++ b/thefuck/shells/fish.py @@ -7,11 +7,12 @@ from .generic import Generic class Fish(Generic): def _get_overridden_aliases(self): - overridden_aliases = os.environ.get('TF_OVERRIDDEN_ALIASES', '').strip() - if overridden_aliases: - return [alias.strip() for alias in overridden_aliases.split(',')] - else: - return ['cd', 'grep', 'ls', 'man', 'open'] + overridden = os.environ.get('THEFUCK_OVERRIDDEN_ALIASES', + os.environ.get('TF_OVERRIDDEN_ALIASES', '')) + default = {'cd', 'grep', 'ls', 'man', 'open'} + for alias in overridden.split(','): + default.add(alias.strip()) + return default def app_alias(self, fuck): # It is VERY important to have the variables declared WITHIN the alias