update testing infra

This commit is contained in:
Vincent Fretin 2013-06-01 16:58:32 +02:00
parent 6fe26d2f6f
commit 42c1669962
8 changed files with 26 additions and 82 deletions

View File

@ -4,7 +4,7 @@ python:
install: install:
- mkdir -p buildout-cache/{eggs,downloads} - mkdir -p buildout-cache/{eggs,downloads}
- python bootstrap.py -c travis.cfg -d - python bootstrap.py -c travis.cfg -d
- bin/buildout -Nc travis.cfg - bin/buildout -c travis.cfg -N -q -t 3
script: script:
- bin/test - bin/test
notifications: notifications:

View File

@ -1,28 +1,11 @@
[buildout] [buildout]
plone-version = 4.2.3
package-name = collective.dms.mailcontent package-name = collective.dms.mailcontent
package-extras = [test] package-extras = [test]
extends = extends =
http://dist.plone.org/release/4.2-latest/versions.cfg https://raw.github.com/collective/buildout.plonetest/master/test-4.3.x.cfg
checkouts.cfg
sources.cfg sources.cfg
checkouts.cfg
versions.cfg versions.cfg
extensions = extensions =
mr.developer mr.developer
show-picked-versions = true
develop = .
parts +=
test
eggs +=
Pillow
[test]
recipe = zc.recipe.testrunner
eggs =
${buildout:eggs}
${buildout:package-name} ${buildout:package-extras}
defaults = ['-s', '${buildout:package-name}', '--auto-color', '--auto-progress']

View File

@ -18,13 +18,13 @@ The script accepts buildout command-line options, so you can
use the -c option to specify an alternate configuration file. use the -c option to specify an alternate configuration file.
""" """
import os, shutil, sys, tempfile, textwrap, urllib, urllib2, subprocess import os, shutil, sys, tempfile, urllib, urllib2, subprocess
from optparse import OptionParser from optparse import OptionParser
if sys.platform == 'win32': if sys.platform == 'win32':
def quote(c): def quote(c):
if ' ' in c: if ' ' in c:
return '"%s"' % c # work around spawn lamosity on windows return '"%s"' % c # work around spawn lamosity on windows
else: else:
return c return c
else: else:
@ -57,13 +57,13 @@ if not has_broken_dash_S and 'site' in sys.modules:
# out any namespace packages from site-packages that might have been # out any namespace packages from site-packages that might have been
# loaded by .pth files. # loaded by .pth files.
clean_path = sys.path[:] clean_path = sys.path[:]
import site import site # imported because of its side effects
sys.path[:] = clean_path sys.path[:] = clean_path
for k, v in sys.modules.items(): for k, v in sys.modules.items():
if k in ('setuptools', 'pkg_resources') or ( if k in ('setuptools', 'pkg_resources') or (
hasattr(v, '__path__') and hasattr(v, '__path__') and
len(v.__path__)==1 and len(v.__path__) == 1 and
not os.path.exists(os.path.join(v.__path__[0],'__init__.py'))): not os.path.exists(os.path.join(v.__path__[0], '__init__.py'))):
# This is a namespace package. Remove it. # This is a namespace package. Remove it.
sys.modules.pop(k) sys.modules.pop(k)
@ -72,10 +72,11 @@ is_jython = sys.platform.startswith('java')
setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py' setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py'
distribute_source = 'http://python-distribute.org/distribute_setup.py' distribute_source = 'http://python-distribute.org/distribute_setup.py'
# parsing arguments # parsing arguments
def normalize_to_url(option, opt_str, value, parser): def normalize_to_url(option, opt_str, value, parser):
if value: if value:
if '://' not in value: # It doesn't smell like a URL. if '://' not in value: # It doesn't smell like a URL.
value = 'file://%s' % ( value = 'file://%s' % (
urllib.pathname2url( urllib.pathname2url(
os.path.abspath(os.path.expanduser(value))),) os.path.abspath(os.path.expanduser(value))),)
@ -110,7 +111,7 @@ parser.add_option("--setup-source", action="callback", dest="setup_source",
help=("Specify a URL or file location for the setup file. " help=("Specify a URL or file location for the setup file. "
"If you use Setuptools, this will default to " + "If you use Setuptools, this will default to " +
setuptools_source + "; if you use Distribute, this " setuptools_source + "; if you use Distribute, this "
"will default to " + distribute_source +".")) "will default to " + distribute_source + "."))
parser.add_option("--download-base", action="callback", dest="download_base", parser.add_option("--download-base", action="callback", dest="download_base",
callback=normalize_to_url, nargs=1, type="string", callback=normalize_to_url, nargs=1, type="string",
help=("Specify a URL or directory for downloading " help=("Specify a URL or directory for downloading "
@ -156,7 +157,7 @@ args.append('bootstrap')
try: try:
import pkg_resources import pkg_resources
import setuptools # A flag. Sometimes pkg_resources is installed alone. import setuptools # A flag. Sometimes pkg_resources is installed alone.
if not hasattr(pkg_resources, '_distribute'): if not hasattr(pkg_resources, '_distribute'):
raise ImportError raise ImportError
except ImportError: except ImportError:
@ -211,6 +212,7 @@ if version is None and not options.accept_buildout_test_releases:
# Figure out the most recent final version of zc.buildout. # Figure out the most recent final version of zc.buildout.
import setuptools.package_index import setuptools.package_index
_final_parts = '*final-', '*final' _final_parts = '*final-', '*final'
def _final_version(parsed_version): def _final_version(parsed_version):
for part in parsed_version: for part in parsed_version:
if (part[:1] == '*') and (part not in _final_parts): if (part[:1] == '*') and (part not in _final_parts):
@ -242,7 +244,7 @@ cmd.append(requirement)
if is_jython: if is_jython:
import subprocess import subprocess
exitcode = subprocess.Popen(cmd, env=env).wait() exitcode = subprocess.Popen(cmd, env=env).wait()
else: # Windows prefers this, apparently; otherwise we would prefer subprocess else: # Windows prefers this, apparently; otherwise we would prefer subprocess
exitcode = os.spawnle(*([os.P_WAIT, sys.executable] + cmd + [env])) exitcode = os.spawnle(*([os.P_WAIT, sys.executable] + cmd + [env]))
if exitcode != 0: if exitcode != 0:
sys.stdout.flush() sys.stdout.flush()
@ -256,5 +258,5 @@ ws.add_entry(eggs_dir)
ws.require(requirement) ws.require(requirement)
import zc.buildout.buildout import zc.buildout.buildout
zc.buildout.buildout.main(args) zc.buildout.buildout.main(args)
if not options.eggs: # clean up temporary egg directory if not options.eggs: # clean up temporary egg directory
shutil.rmtree(eggs_dir) shutil.rmtree(eggs_dir)

View File

@ -1,12 +1,10 @@
[buildout] [buildout]
extends = extends =
base.cfg base.cfg
extensions +=
buildout.dumppickedversions
parts += parts +=
omelette omelette
eggs +=
ipdb
[omelette] [omelette]
recipe = collective.recipe.omelette recipe = collective.recipe.omelette

View File

@ -1,16 +1,10 @@
[buildout] [buildout]
extends = extends =
https://raw.github.com/plone/buildout.coredev/4.2/sources.cfg https://raw.github.com/plone/buildout.coredev/4.3/sources.cfg
https://raw.github.com/plone/buildout.dexterity/master/sources.cfg
always-checkout = force always-checkout = force
auto-checkout += auto-checkout +=
collective.contact.core collective.contact.core
collective.contact.widget collective.contact.widget
collective.dms.basecontent collective.dms.basecontent
collective.dms.thesaurus
plone.app.dexterity
plone.dexterity
plone.formwidget.masterselect plone.formwidget.masterselect
z3c.form
collective.z3cform.rolefield collective.z3cform.rolefield
plone.app.z3cform

View File

@ -1,8 +1,7 @@
[buildout]
extends = https://raw.github.com/plone/buildout.coredev/4.3/sources.cfg
[remotes] [remotes]
collective = git://github.com/collective
collective_push = git@github.com:collective
plone = git://github.com/plone
plone_push = git@github.com:plone
tdesvenain = git://github.com/tdesvenain tdesvenain = git://github.com/tdesvenain
tdesvenain_push = git@github.com:tdesvenain tdesvenain_push = git@github.com:tdesvenain
vincentfretin = git://github.com/vincentfretin vincentfretin = git://github.com/vincentfretin
@ -11,16 +10,10 @@ cedricmessiant = git://github.com/cedricmessiant
cedricmessiant_push = git@github.com:cedricmessiant cedricmessiant_push = git@github.com:cedricmessiant
entrouvert = git://repos.entrouvert.org entrouvert = git://repos.entrouvert.org
entrouvert_push = git+ssh://git@repos.entrouvert.org entrouvert_push = git+ssh://git@repos.entrouvert.org
zopefoundation = git://github.com/zopefoundation
zopefoundation_push = git@github.com:zopefoundation
[sources] [sources]
collective.contact.core = git ${remotes:collective}/collective.contact.core.git pushurl=${remotes:collective_push}/collective.contact.core.git collective.contact.core = git ${remotes:collective}/collective.contact.core.git pushurl=${remotes:collective_push}/collective.contact.core.git
collective.contact.widget = git ${remotes:collective}/collective.contact.widget.git pushurl=${remotes:collective_push}/collective.contact.widget.git collective.contact.widget = git ${remotes:collective}/collective.contact.widget.git pushurl=${remotes:collective_push}/collective.contact.widget.git
collective.dms.basecontent = git ${remotes:collective}/collective.dms.basecontent.git pushurl=${remotes:collective_push}/collective.dms.basecontent.git collective.dms.basecontent = git ${remotes:collective}/collective.dms.basecontent.git pushurl=${remotes:collective_push}/collective.dms.basecontent.git
collective.dms.mailcontent = git ${remotes:collective}/collective.dms.mailcontent.git pushurl=${remotes:collective_push}/collective.dms.mailcontent.git
collective.dms.thesaurus = git ${remotes:collective}/collective.dms.thesaurus.git pushurl=${remotes:collective_push}/collective.dms.thesaurus.git
plone.formwidget.masterselect = git ${remotes:collective}/plone.formwidget.masterselect.git pushurl=${remotes:collective_push}/plone.formwidget.masterselect.git plone.formwidget.masterselect = git ${remotes:collective}/plone.formwidget.masterselect.git pushurl=${remotes:collective_push}/plone.formwidget.masterselect.git
plone.app.z3cform = git ${remotes:plone}/plone.app.z3cform.git pushurl=${remotes:plone_push}/plone.app.z3cform.git collective.z3cform.rolefield = git ${remotes:collective}/collective.z3cform.rolefield.git pushurl=${remotes:collective_push}/collective.z3cform.rolefield.git
z3c.form = git ${remotes:zopefoundation}/z3c.form pushurl=${remotes:zopefoundation_push}/z3c.form
collective.z3cform.rolefield = git ${remotes:collective}/collective.z3cform.rolefield.git pushurl=${remotes:collective_push}/collective.z3cform.rolefield.git

View File

@ -1,27 +1,5 @@
[buildout] [buildout]
extends = extends =
https://raw.github.com/collective/buildout.plonetest/master/travis-4.3.x.cfg
base.cfg base.cfg
parts = download install test
parts =
download
install
test
# network speedup
eggs-directory = buildout-cache/eggs
download-cache = buildout-cache/downloads
socket-timeout = 3
allow-hosts =
*.python.org
launchpad.net
[download]
recipe = hexagonit.recipe.download
url = https://launchpad.net/plone/4.2/${buildout:plone-version}/+download/Plone-${buildout:plone-version}-UnifiedInstaller.tgz
[install]
recipe = collective.recipe.cmd
on_install = true
cmds = tar jxvf ${download:location}/Plone-${buildout:plone-version}-UnifiedInstaller/packages/buildout-cache.tar.bz2 1>/dev/null

View File

@ -1,6 +1,2 @@
[versions] [versions]
Pillow = 1.7.8 zc.buildout = 2.1.0
collective.recipe.cmd = 0.6
ecreall.helpers.testing = 1.3
hexagonit.recipe.download = 1.6
zc.buildout = 1.6.3