1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-01-31 10:11:14 +00:00

#346 Add support of other systems with get-pip

This commit is contained in:
nvbn 2015-08-25 13:47:30 +03:00
parent f4eebbaaf9
commit e72c88e344
4 changed files with 38 additions and 5 deletions

View File

@ -6,12 +6,19 @@ should_add_alias () {
# Install os dependencies: # Install os dependencies:
if [ -f $(which apt-get) ]; then if [ -f $(which apt-get) ]; then
sudo apt-get update # Debian/ubuntu:
sudo apt-get install python-pip sudo apt-get update -yy
sudo apt-get install -yy python-pip python-dev
else else
if [ -f $(which brew) ]; then if [ -f $(which brew) ]; then
# OS X:
brew update brew update
brew install python brew install python
else
# Genreic way:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
rm get-pip.py
fi fi
fi fi

View File

@ -1,4 +1,3 @@
from time import sleep
from pexpect import TIMEOUT from pexpect import TIMEOUT

View File

@ -0,0 +1,25 @@
import pytest
from pexpect import TIMEOUT
from tests.functional.utils import spawn, functional, bare
envs = ((u'bash', 'ubuntu-bash', u'''
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -yy bash
'''), (u'bash', 'generic-bash', u'''
FROM fedora:latest
RUN dnf install -yy python-devel sudo which gcc
'''))
@functional
@pytest.mark.skipif(
bool(bare), reason="Can't be tested in bare run")
@pytest.mark.parametrize('shell, tag, dockerfile', envs)
def test_installation(request, shell, tag, dockerfile):
proc = spawn(request, tag, dockerfile, shell, install=False)
proc.sendline(u'cat /src/install.sh | sh - && $0')
proc.sendline(u'thefuck --version')
assert proc.expect([TIMEOUT, u'The Fuck'], timeout=600)
proc.sendline(u'fuck')
assert proc.expect([TIMEOUT, u'No fucks given'])

View File

@ -24,7 +24,7 @@ def build_container(tag, dockerfile):
shutil.rmtree(tmpdir) shutil.rmtree(tmpdir)
def spawn(request, tag, dockerfile, cmd): def spawn(request, tag, dockerfile, cmd, install=True):
if bare: if bare:
proc = pexpect.spawnu(cmd) proc = pexpect.spawnu(cmd)
else: else:
@ -32,7 +32,9 @@ def spawn(request, tag, dockerfile, cmd):
build_container(tag, dockerfile) build_container(tag, dockerfile)
proc = pexpect.spawnu('docker run --volume {}:/src --tty=true ' proc = pexpect.spawnu('docker run --volume {}:/src --tty=true '
'--interactive=true {} {}'.format(root, tag, cmd)) '--interactive=true {} {}'.format(root, tag, cmd))
proc.sendline('pip install /src') if install:
proc.sendline('pip install /src')
proc.sendline('cd /') proc.sendline('cd /')
proc.logfile = sys.stdout proc.logfile = sys.stdout