mirror of
https://github.com/kennethreitz-archive/python-build.git
synced 2026-06-05 15:20:16 +00:00
Bug fixed. Added tests.
This commit is contained in:
@@ -4,7 +4,7 @@ from pythonbrew.basecommand import Command
|
||||
from pythonbrew.define import PATH_PYTHONS
|
||||
from pythonbrew.util import Package
|
||||
from pythonbrew.log import logger
|
||||
from subprocess import PIPE, Popen
|
||||
from subprocess import Popen
|
||||
|
||||
class PyCommand(Command):
|
||||
name = "py"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import os
|
||||
import sys
|
||||
from pythonbrew.basecommand import Command
|
||||
from pythonbrew.define import PATH_PYTHONS, PATH_BIN, PATH_ETC_CURRENT
|
||||
from pythonbrew.util import Package
|
||||
from pythonbrew.define import PATH_PYTHONS, PATH_BIN
|
||||
from pythonbrew.util import Package, set_current_path
|
||||
from pythonbrew.log import logger
|
||||
|
||||
class SwitchCommand(Command):
|
||||
@@ -22,14 +22,8 @@ class SwitchCommand(Command):
|
||||
sys.exit(1)
|
||||
pkgbin = os.path.join(pkgdir,'bin')
|
||||
|
||||
self._set_current('%s:%s' % (PATH_BIN, pkgbin))
|
||||
set_current_path('%s:%s' % (PATH_BIN, pkgbin))
|
||||
|
||||
logger.info("Switched to %s" % pkgname)
|
||||
|
||||
def _set_current(self, path):
|
||||
fp = open(PATH_ETC_CURRENT, 'w')
|
||||
fp.write('PATH_PYTHONBREW="%s"\n' % (path))
|
||||
fp.close()
|
||||
|
||||
|
||||
SwitchCommand()
|
||||
|
||||
@@ -22,7 +22,7 @@ class UpdateCommand(Command):
|
||||
# check for latest version
|
||||
if version <= VERSION:
|
||||
logger.info("You are already running the installed latest version of pythonbrew.")
|
||||
sys.exit()
|
||||
return
|
||||
|
||||
download_url = get_pythonbrew_update_url(version)
|
||||
if not download_url:
|
||||
|
||||
@@ -4,7 +4,7 @@ import glob
|
||||
import shutil
|
||||
import re
|
||||
import mimetypes
|
||||
from pythonbrew.util import makedirs, symlink, Package, is_url, splitext, Link,\
|
||||
from pythonbrew.util import makedirs, symlink, Package, is_url, Link,\
|
||||
unlink, is_html, Subprocess, rm_r,\
|
||||
is_macosx_snowleopard, is_python25, is_python24, is_python26,\
|
||||
unpack_downloadfile, is_archive_file, path_to_fileurl, is_file,\
|
||||
|
||||
+7
-3
@@ -8,8 +8,7 @@ import tarfile
|
||||
import platform
|
||||
import urllib
|
||||
from subprocess import PIPE, Popen
|
||||
from pythonbrew.define import PATH_BIN, PATH_PYTHONS, PATH_ETC_CURRENT,\
|
||||
PATH_ETC_TEMP
|
||||
from pythonbrew.define import PATH_BIN, PATH_PYTHONS, PATH_ETC_CURRENT
|
||||
from pythonbrew.exceptions import ShellCommandException
|
||||
from pythonbrew.log import logger
|
||||
|
||||
@@ -108,7 +107,7 @@ def off():
|
||||
continue
|
||||
unlink("%s/%s" % (root, f))
|
||||
unlink("%s/current" % PATH_PYTHONS)
|
||||
write_current(PATH_BIN)
|
||||
set_current_path(PATH_BIN)
|
||||
|
||||
def split_leading_dir(path):
|
||||
path = str(path)
|
||||
@@ -202,6 +201,11 @@ def get_current_python_path():
|
||||
else:
|
||||
return None
|
||||
|
||||
def set_current_path(path):
|
||||
fp = open(PATH_ETC_CURRENT, 'w')
|
||||
fp.write('PATH_PYTHONBREW="%s"\n' % (path))
|
||||
fp.close()
|
||||
|
||||
def path_to_fileurl(path):
|
||||
path = os.path.normcase(os.path.abspath(path))
|
||||
url = urllib.quote(path)
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
PYTHONBREW_ROOT = '/tmp/pythonbrew.test'
|
||||
TESTPY_FILE = '/tmp/pythonbrew_test.py'
|
||||
TESTPY_VERSION = '2.6.6'
|
||||
def cleanall():
|
||||
if os.path.isdir(PYTHONBREW_ROOT):
|
||||
shutil.rmtree(PYTHONBREW_ROOT)
|
||||
if os.path.isfile(TESTPY_FILE):
|
||||
os.remove(TESTPY_FILE)
|
||||
|
||||
def setup():
|
||||
os.environ['PYTHONBREW_ROOT'] = PYTHONBREW_ROOT
|
||||
cleanall()
|
||||
fp = open(TESTPY_FILE, 'w')
|
||||
fp.write("print 'test'")
|
||||
fp.close()
|
||||
|
||||
def teardown():
|
||||
cleanall()
|
||||
@@ -0,0 +1,3 @@
|
||||
def test_install_pythonbrew():
|
||||
from pythonbrew.installer import install_pythonbrew
|
||||
install_pythonbrew()
|
||||
@@ -0,0 +1,5 @@
|
||||
def test_update():
|
||||
from pythonbrew.commands.update import UpdateCommand
|
||||
c = UpdateCommand()
|
||||
c.run_command(None, None)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
def test_help():
|
||||
from pythonbrew.commands.help import HelpCommand
|
||||
c = HelpCommand()
|
||||
c.run_command(None, None)
|
||||
@@ -0,0 +1,4 @@
|
||||
def test_version():
|
||||
from pythonbrew.commands.version import VersionCommand
|
||||
c = VersionCommand()
|
||||
c.run_command(None, None)
|
||||
@@ -0,0 +1,11 @@
|
||||
from tests import TESTPY_VERSION
|
||||
|
||||
class InstallOptions(object):
|
||||
force = True
|
||||
configure = ""
|
||||
no_setuptools = False
|
||||
|
||||
def test_install():
|
||||
from pythonbrew.commands.install import InstallCommand
|
||||
c = InstallCommand()
|
||||
c.run_command(InstallOptions(), [TESTPY_VERSION])
|
||||
@@ -0,0 +1,6 @@
|
||||
from tests import TESTPY_VERSION
|
||||
|
||||
def test_switch():
|
||||
from pythonbrew.commands.switch import SwitchCommand
|
||||
c = SwitchCommand()
|
||||
c.run_command(None, [TESTPY_VERSION])
|
||||
@@ -0,0 +1,6 @@
|
||||
from tests import TESTPY_VERSION
|
||||
|
||||
def test_use():
|
||||
from pythonbrew.commands.use import UseCommand
|
||||
c = UseCommand()
|
||||
c.run_command(None, [TESTPY_VERSION])
|
||||
@@ -0,0 +1,4 @@
|
||||
def test_off():
|
||||
from pythonbrew.commands.off import OffCommand
|
||||
c = OffCommand()
|
||||
c.run_command(None, None)
|
||||
@@ -0,0 +1,8 @@
|
||||
class ListOptions(object):
|
||||
all_versions = False
|
||||
known = False
|
||||
|
||||
def test_list():
|
||||
from pythonbrew.commands.list import ListCommand
|
||||
c = ListCommand()
|
||||
c.run_command(ListOptions(), None)
|
||||
@@ -0,0 +1,10 @@
|
||||
from tests import TESTPY_FILE
|
||||
|
||||
class PyOptions(object):
|
||||
pythons = []
|
||||
verbose = False
|
||||
|
||||
def test_py():
|
||||
from pythonbrew.commands.py import PyCommand
|
||||
c = PyCommand()
|
||||
c.run_command(PyOptions(), [TESTPY_FILE])
|
||||
@@ -0,0 +1,6 @@
|
||||
from tests import TESTPY_VERSION
|
||||
|
||||
def test_uninstall():
|
||||
from pythonbrew.commands.uninstall import UninstallCommand
|
||||
c = UninstallCommand()
|
||||
c.run_command(None, [TESTPY_VERSION])
|
||||
@@ -0,0 +1,4 @@
|
||||
def test_clean():
|
||||
from pythonbrew.commands.clean import CleanCommand
|
||||
c = CleanCommand()
|
||||
c.run_command(None, None)
|
||||
Reference in New Issue
Block a user