mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-19 12:24:29 +00:00
bc2c87e8fe
- Fixes #136
59 lines
2.8 KiB
Python
59 lines
2.8 KiB
Python
import pytest
|
|
from thefuck.rules.pip_install_sudo import match, get_new_command
|
|
from tests.utils import Command
|
|
|
|
|
|
@pytest.fixture
|
|
def stdout_success():
|
|
return '''
|
|
Collecting thefuck
|
|
Downloading thefuck-1.30.tar.gz
|
|
Requirement already satisfied (use --upgrade to upgrade): pathlib in /usr/local/lib/python2.7/site-packages/pathlib-1.0.1-py2.7.egg (from thefuck)
|
|
Requirement already satisfied (use --upgrade to upgrade): psutil in /usr/local/lib/python2.7/site-packages/psutil-2.2.1-py2.7-macosx-10.10-x86_64.egg (from thefuck)
|
|
Requirement already satisfied (use --upgrade to upgrade): colorama in /usr/local/lib/python2.7/site-packages/colorama-0.3.3-py2.7.egg (from thefuck)
|
|
Requirement already satisfied (use --upgrade to upgrade): six in /usr/local/lib/python2.7/site-packages (from thefuck)
|
|
Installing collected packages: thefuck
|
|
Running setup.py install for thefuck
|
|
Successfully installed thefuck-1.30
|
|
'''
|
|
|
|
|
|
@pytest.fixture
|
|
def stdout():
|
|
return '''
|
|
Collecting ipaddr
|
|
Using cached ipaddr-2.1.11.tar.gz
|
|
Installing collected packages: ipaddr
|
|
Running setup.py install for ipaddr
|
|
Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-usOyBh/ipaddr/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ghPfAW-record/install-record.txt --single-version-externally-managed --compile:
|
|
running install
|
|
running build
|
|
running build_py
|
|
creating build
|
|
creating build/lib.linux-x86_64-2.7
|
|
copying ipaddr.py -> build/lib.linux-x86_64-2.7
|
|
running install_lib
|
|
copying build/lib.linux-x86_64-2.7/ipaddr.py -> /usr/local/lib/python2.7/dist-packages
|
|
error: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/ipaddr.py'
|
|
'''
|
|
|
|
|
|
@pytest.fixture
|
|
def stderr():
|
|
return '''
|
|
Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-usOyBh/ipaddr/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ghPfAW-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-usOyBh/ipaddr
|
|
'''
|
|
|
|
|
|
def test_match(stdout, stdout_success, stderr):
|
|
assert match(Command('pip install ipaddr', stdout=stdout, stderr=stderr),
|
|
None)
|
|
assert not match(Command('pip install thefuck', stdout=stdout_success),
|
|
None)
|
|
|
|
|
|
def test_get_new_command(stdout, stdout_success, stderr):
|
|
assert get_new_command(Command('pip install ipaddr', stdout=stdout,
|
|
stderr=stderr), None)\
|
|
== 'sudo pip install ipaddr'
|