mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-31 02:01:13 +00:00
#682: Ensure that script
exists
This commit is contained in:
parent
1cae91b649
commit
4875d75a64
@ -53,7 +53,7 @@ def source_root():
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def set_shell(monkeypatch, request):
|
def set_shell(monkeypatch):
|
||||||
def _set(cls):
|
def _set(cls):
|
||||||
shell = cls()
|
shell = cls()
|
||||||
monkeypatch.setattr('thefuck.shells.shell', shell)
|
monkeypatch.setattr('thefuck.shells.shell', shell)
|
||||||
|
30
tests/entrypoints/test_alias.py
Normal file
30
tests/entrypoints/test_alias.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
from mock import Mock
|
||||||
|
import pytest
|
||||||
|
from thefuck.entrypoints.alias import _get_alias
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'py2, enable_experimental_instant_mode, which, is_instant', [
|
||||||
|
(False, True, True, True),
|
||||||
|
(False, False, True, False),
|
||||||
|
(False, True, False, False),
|
||||||
|
(True, True, True, False),
|
||||||
|
(True, True, False, False),
|
||||||
|
(True, False, True, False)])
|
||||||
|
def test_get_alias(monkeypatch, mocker, py2,
|
||||||
|
enable_experimental_instant_mode,
|
||||||
|
which, is_instant):
|
||||||
|
monkeypatch.setattr('six.PY2', py2)
|
||||||
|
args = Mock(
|
||||||
|
enable_experimental_instant_mode=enable_experimental_instant_mode,
|
||||||
|
alias='fuck', )
|
||||||
|
mocker.patch('thefuck.entrypoints.alias.which', return_value=which)
|
||||||
|
shell = Mock(app_alias=lambda _: 'app_alias',
|
||||||
|
instant_mode_alias=lambda _: 'instant_mode_alias')
|
||||||
|
monkeypatch.setattr('thefuck.entrypoints.alias.shell', shell)
|
||||||
|
|
||||||
|
alias = _get_alias(args)
|
||||||
|
if is_instant:
|
||||||
|
assert alias == 'instant_mode_alias'
|
||||||
|
else:
|
||||||
|
assert alias == 'app_alias'
|
@ -1,20 +1,26 @@
|
|||||||
import six
|
import six
|
||||||
from ..logs import warn
|
from ..logs import warn
|
||||||
from ..shells import shell
|
from ..shells import shell
|
||||||
|
from ..utils import which
|
||||||
|
|
||||||
|
|
||||||
def print_alias(known_args):
|
def _get_alias(known_args):
|
||||||
if six.PY2:
|
if six.PY2:
|
||||||
warn("The Fuck will drop Python 2 support soon, more details "
|
warn("The Fuck will drop Python 2 support soon, more details "
|
||||||
"https://github.com/nvbn/thefuck/issues/685")
|
"https://github.com/nvbn/thefuck/issues/685")
|
||||||
|
|
||||||
|
alias = shell.app_alias(known_args.alias)
|
||||||
|
|
||||||
if known_args.enable_experimental_instant_mode:
|
if known_args.enable_experimental_instant_mode:
|
||||||
if six.PY2:
|
if six.PY2:
|
||||||
warn("Instant mode not supported with Python 2")
|
warn("Instant mode requires Python 3")
|
||||||
alias = shell.app_alias(known_args.alias)
|
elif not which('script'):
|
||||||
|
warn("Instant mode requires `script` app")
|
||||||
else:
|
else:
|
||||||
alias = shell.instant_mode_alias(known_args.alias)
|
return shell.instant_mode_alias(known_args.alias)
|
||||||
else:
|
|
||||||
alias = shell.app_alias(known_args.alias)
|
|
||||||
|
|
||||||
print(alias)
|
return alias
|
||||||
|
|
||||||
|
|
||||||
|
def print_alias(known_args):
|
||||||
|
print(_get_alias(known_args))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user