[Pytest-commit] commit/tox: hpk42: remove toxbootstrap.py for now because it is broken.
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Tue Aug 13 07:40:11 CEST 2013
1 new commit in tox:
https://bitbucket.org/hpk42/tox/commits/d5fba83e994e/
Changeset: d5fba83e994e
User: hpk42
Date: 2013-08-13 07:40:04
Summary: remove toxbootstrap.py for now because it is broken.
add changelog entry for Carl wrt install_command
Affected #: 5 files
diff -r 50d991641429bff80344b3c98d0ccad74e1a5015 -r d5fba83e994e7af7dc2b9daff3cac3a2baa24849 CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,12 @@
1.6.0.dev
-----------------
+- remove toxbootstrap.py for now because it is broken.
+
+- fix issue35: add new "install_command" testenv-option to configure the
+ installation command with options for dep/pkg install. Thanks Carl Meyer
+ for the PR and docs.
+
- fix issue109 and fix issue111: multiple "-e" options are now combined
(previously the last one would win). Thanks Anthon van der Neut.
diff -r 50d991641429bff80344b3c98d0ccad74e1a5015 -r d5fba83e994e7af7dc2b9daff3cac3a2baa24849 doc/example/jenkins.txt
--- a/doc/example/jenkins.txt
+++ b/doc/example/jenkins.txt
@@ -39,7 +39,11 @@
**zero-installation** for slaves
-------------------------------------------------------------
-.. versionadded:: 0.9
+.. note::
+
+ This feature is broken currently because "toxbootstrap.py"
+ has been removed. Please file an issue if you'd like to
+ see it back.
If you manage many Jenkins slaves and want to use the latest officially
released tox (or latest development version) and want to skip manually
diff -r 50d991641429bff80344b3c98d0ccad74e1a5015 -r d5fba83e994e7af7dc2b9daff3cac3a2baa24849 setup.py
--- a/setup.py
+++ b/setup.py
@@ -28,7 +28,7 @@
description='virtualenv-based automation of test activities',
long_description=open("README.rst").read(),
url='http://tox.testrun.org/',
- version='1.6.0.dev2',
+ version='1.6rc1',
license='http://opensource.org/licenses/MIT',
platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
author='holger krekel',
diff -r 50d991641429bff80344b3c98d0ccad74e1a5015 -r d5fba83e994e7af7dc2b9daff3cac3a2baa24849 tox/__init__.py
--- a/tox/__init__.py
+++ b/tox/__init__.py
@@ -1,5 +1,5 @@
#
-__version__ = '1.6.0.dev2'
+__version__ = '1.6rc1'
class exception:
class Error(Exception):
diff -r 50d991641429bff80344b3c98d0ccad74e1a5015 -r d5fba83e994e7af7dc2b9daff3cac3a2baa24849 toxbootstrap.py
--- a/toxbootstrap.py
+++ /dev/null
@@ -1,246 +0,0 @@
-#!/usr/bin/env python
-# The MIT License
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-"""
-tox-bootstrap
-=============
-
-A bootstrap script to automatically install tox on machines that do not already
-have it. This is especially useful when configuring a number of Jenkins slaves
-quickly (see `zero installation for slaves
-<http://tox.testrun.org/latest/example/jenkins.html#zero-installation-for-slaves>>`
-in tox documentation); only Python needs to be pre-installed.
-
-Getting started
----------------
-
-::
-
- $ cd my_project/
- $ ls
- . .. src/ doc/ setup.py tox.ini
- $ curl https://bitbucket.org/hpk42/tox/raw/default/toxbootstrap.py
-
-Instead of running "tox", now you can just run "python toxbootstrap.py" which
-will take care of installing tox (if not already installed into
-``.tox/_toxinstall``)::
-
- $ python toxbootstrap.py
-
-Note that, when configuring Jenkins slaves, you need not add `toxbootstrap.py` to
-your source tree; see the above linked Jenkins configuration example in tox
-documentation.
-
-ToDo
-----
-
-1. Detect tox in ``$PATH`` (eg: ``C:\Python26\Scripts`` or
- ``%APPDATA%\Python\Scripts``)
-
-2. Gracefully ignore PyPI xmlrpc downtime errors when checking for new release.
-
-"""
-
-__version__ = '1.6.0.dev2'
-
-import sys
-import os
-from os import path
-import logging
-
-from subprocess import Popen, PIPE, check_call, CalledProcessError
-
-USETOXDEV=os.environ.get('USETOXDEV', False)
-TENV='_toxinstall'
-
-PY3 = sys.version_info[0] == 3
-
-if PY3:
- from urllib.request import urlretrieve
- import xmlrpc.client as xmlrpclib
-else:
- from urllib import urlretrieve
- import xmlrpclib
-
-logging.basicConfig(level=logging.INFO)
-
-
-# Last stable: 1.6 (now on github)
-VIRTUALENVPY_URL = ('https://github.com/pypa/virtualenv/raw/master/virtualenv.py')
-
-def run(cmd, shell=True):
- """Run the given command in shell"""
- logging.info('Running command: %s', cmd)
- check_call(cmd, shell=shell)
-
-
-def crun(cmd, shell=True):
- """Run the given command and return its output"""
- logging.info('Running command (for output): %s', cmd)
- p = Popen(cmd, stdout=PIPE, shell=shell)
- stdout, stderr = p.communicate()
- return stdout
-
-
-def wget(url):
- """Download the given file to current directory"""
- logging.info('Downloading %s', url)
- localpath = path.join(path.abspath(os.getcwd()), path.basename(url))
- urlretrieve(url, localpath)
-
-
-def has_script(venv, name):
- """Check if the virtualenv has the given script
-
- Looks for bin/$name (unix) or Scripts/$name.exe (windows) in the virtualenv
- """
- if sys.platform == 'win32':
- return any([path.exists(path.join(venv, 'Scripts', name)),
- path.exists(path.join(venv, 'Scripts', name + '.exe'))])
- else:
- return path.exists(path.join(venv, 'bin', name))
-
-def activate_path(venv):
- """Return the full path to the script virtualenv directory"""
- if sys.platform == 'win32':
- p = path.abspath(path.join(venv, 'Scripts'))
- else:
- p = path.abspath(path.join(venv, 'bin'))
- assert path.exists(p), p
- os.environ['PATH'] = p + os.pathsep + os.environ['PATH']
- logging.info("added to PATH: %s", p)
-
-def get_script_path(venv, name):
- """Return the full path to the script in virtualenv directory"""
- if sys.platform == 'win32':
- p = path.join(venv, 'Scripts', name)
- if not path.exists(p):
- p = path.join(venv, 'Scripts', name + '.exe')
- else:
- p = path.join(venv, 'bin', name)
-
- if not path.exists(p):
- raise NameError('cannot find a script named "%s"' % (name,))
-
- return p
-
-
-def get_tox_version(venv):
- """Return the installed version of tox"""
- py = get_script_path(venv, 'python')
- s = 'import tox,sys; sys.stdout.write(str(tox.__version__))'
- if sys.version_info[:2] >= (2, 6):
- return crun('%s -s -c "%s"' % (py, s))
- else:
- return crun('%s -c "%s"' % (py, s))
-
-
-def parse_simple_version(v):
- """A simplified version of pkg_resources.parse_version
-
- This method can only parse simple versions like the ones with a set of
- numbers separated by dots (eg: 1.2.3)
- """
- return [int(c) for c in v.split('.')]
-
-
-def pypi_get_latest_version(pkgname):
- """Return the latest version of package from PyPI"""
- pypi = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
- versions = pypi.package_releases('tox')
- assert versions
- versions.sort(key=parse_simple_version, reverse=True)
- return versions[0]
-
-def ensuredir(p):
- if not path.isdir(p):
- os.makedirs(p)
-
-def cmdline(argv=None):
- logging.info('toxbootstrap version %s', __version__)
- currentdir = os.getcwd()
- #os.chdir(path.abspath(path.dirname(__file__)))
- ensuredir('.tox')
- os.chdir('.tox')
-
- os.environ['PATH'] = os.path.abspath(TENV) + os.path.pathsep + os.environ['PATH']
- # create virtual environment
- if not path.isdir(TENV) or not has_script(TENV, 'python') or \
- not has_script(TENV, 'pip'):
- # get virtualenv.py
- if not path.isfile('virtualenv.py'):
- wget(VIRTUALENVPY_URL)
- assert path.isfile('virtualenv.py')
-
- # XXX: we use --no-site-packages because: if tox is installed in global
- # site-packages, then pip will not install it locally. ideal fix for
- # this should be to first look for tox in the global scripts/ directory
- run('%s virtualenv.py --no-site-packages --setuptools %s' %
- (sys.executable, TENV))
- logging.info("removing virtualenv.py script after bootstrap venv creation")
- for x in ('', 'o', 'c'):
- try:
- os.remove("virtualenv.py%s" % x)
- except OSError:
- pass
-
- assert has_script(TENV, 'python'), 'no python script'
- assert has_script(TENV, 'pip'), 'no pip script'
- activate_path(TENV)
-
- pip = get_script_path(TENV, 'pip')
-
- # install/upgrade tox itself
- if USETOXDEV:
- run('%s install -q -i http://pypi.testrun.org '
- '--upgrade %s tox' % (pip, cache))
- elif any([
- not has_script(TENV, 'tox'),
- get_tox_version(TENV) != pypi_get_latest_version('tox')]):
- run('%s install --upgrade --download-cache=_download tox' % (pip,))
-
- toxversion = get_tox_version(TENV)
- assert has_script(TENV, 'tox')
- tox_script = path.abspath(get_script_path(TENV, 'tox'))
- logging.info('tox is installed at %s version %s', tox_script, toxversion)
-
- #virtualenv = get_script_path(TENV, 'virtualenv')
- #venv_version = crun('%s --version' % (virtualenv,)).strip()
- #logging.info('virtualenv at %s version %s', virtualenv, venv_version)
-
- # XXX: virtualenv 1.5 is broken; replace it
- #if venv_version == '1.5':
- # logging.info(
- # 'Replacing the unstable virtualenv-1.5 with the latest stable')
- # run('%s uninstall -y virtualenv' % (pip,))
- # run('%s install virtualenv!=1.5' % (pip,))
-
- # Now run the locally-installed tox
- os.chdir(currentdir)
- try:
- run([tox_script] + (argv or []), shell=False)
- except CalledProcessError:
- _, e, _ = sys.exc_info()
- logging.error('tox exited with error code %d', e.returncode)
- sys.exit(e.returncode)
-
-
-if __name__ == '__main__':
- cmdline(sys.argv[1:])
Repository URL: https://bitbucket.org/hpk42/tox/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the pytest-commit
mailing list