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:
parent
f4eebbaaf9
commit
e72c88e344
11
install.sh
11
install.sh
@ -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
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
from time import sleep
|
|
||||||
from pexpect import TIMEOUT
|
from pexpect import TIMEOUT
|
||||||
|
|
||||||
|
|
||||||
|
25
tests/functional/test_install.py
Normal file
25
tests/functional/test_install.py
Normal 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'])
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user