Updated infra to use Plone 4.3 and fixed UnicodeDecodeError

This commit is contained in:
Vincent Fretin 2013-06-01 16:06:50 +02:00
parent c02c3fc2f2
commit cf8b45425f
11 changed files with 47 additions and 109 deletions

View File

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

View File

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

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.
"""
import os, shutil, sys, tempfile, textwrap, urllib, urllib2, subprocess
import os, shutil, sys, tempfile, urllib, urllib2, subprocess
from optparse import OptionParser
if sys.platform == 'win32':
def quote(c):
if ' ' in c:
return '"%s"' % c # work around spawn lamosity on windows
return '"%s"' % c # work around spawn lamosity on windows
else:
return c
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
# loaded by .pth files.
clean_path = sys.path[:]
import site
import site # imported because of its side effects
sys.path[:] = clean_path
for k, v in sys.modules.items():
if k in ('setuptools', 'pkg_resources') or (
hasattr(v, '__path__') and
len(v.__path__)==1 and
not os.path.exists(os.path.join(v.__path__[0],'__init__.py'))):
len(v.__path__) == 1 and
not os.path.exists(os.path.join(v.__path__[0], '__init__.py'))):
# This is a namespace package. Remove it.
sys.modules.pop(k)
@ -72,10 +72,11 @@ is_jython = sys.platform.startswith('java')
setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py'
distribute_source = 'http://python-distribute.org/distribute_setup.py'
# parsing arguments
def normalize_to_url(option, opt_str, value, parser):
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' % (
urllib.pathname2url(
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. "
"If you use Setuptools, this will default to " +
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",
callback=normalize_to_url, nargs=1, type="string",
help=("Specify a URL or directory for downloading "
@ -156,7 +157,7 @@ args.append('bootstrap')
try:
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'):
raise 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.
import setuptools.package_index
_final_parts = '*final-', '*final'
def _final_version(parsed_version):
for part in parsed_version:
if (part[:1] == '*') and (part not in _final_parts):
@ -242,7 +244,7 @@ cmd.append(requirement)
if is_jython:
import subprocess
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]))
if exitcode != 0:
sys.stdout.flush()
@ -256,5 +258,5 @@ ws.add_entry(eggs_dir)
ws.require(requirement)
import zc.buildout.buildout
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)

View File

@ -1,11 +1,10 @@
[buildout]
extends =
base.cfg
parts +=
omelette
show-picked-versions = true
eggs +=
ipdb
[omelette]
recipe = collective.recipe.omelette

View File

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

View File

@ -1,10 +1,7 @@
[buildout]
extends = https://raw.github.com/plone/buildout.coredev/4.3/sources.cfg
[remotes]
collective = git://github.com/collective
collective_push = git@github.com:collective
zopefoundation = git://github.com/zopefoundation
zopefoundation_push = git@github.com:zopefoundation
plone = git://github.com/plone
plone_push = git@github.com:plone
tdesvenain = git://github.com/tdesvenain
tdesvenain_push = git@github.com:tdesvenain
vincentfretin = git://github.com/vincentfretin
@ -15,9 +12,6 @@ entrouvert = git://repos.entrouvert.org
entrouvert_push = git+ssh://git@repos.entrouvert.org
[sources]
plone.act = git ${remotes:plone}/plone.act.git pushurl=${remotes:plone_push}/plone.act.git
plone.app.z3cform = git ${remotes:plone}/plone.app.z3cform.git pushurl=${remotes:plone_push}/plone.app.z3cform.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
plone.formwidget.masterselect = git ${remotes:collective}/plone.formwidget.masterselect.git pushurl=${remotes:collective_push}/plone.formwidget.masterselect.git
z3c.form = git ${remotes:zopefoundation}/z3c.form pushurl=${remotes:zopefoundation_push}/z3c.form

View File

@ -100,9 +100,9 @@ class Organization(Container):
e.g. for HR service in Division Bar in Organization Foo :
[u"Organization Foo", u"Division Bar", u"HR service"]
"""
return [item.Title() for item in self.get_organizations_chain(first_index=first_index)]
return [item.title for item in self.get_organizations_chain(first_index=first_index)]
def get_full_title(self, separator=' / ', first_index=0):
def get_full_title(self, separator=u' / ', first_index=0):
"""Returns the full title of the organization
It is constituted by the list of the names of the organizations and
sub-organizations in this organization separated by slashes

View File

@ -6,7 +6,7 @@ from collective.contact.core.content.organization import IOrganization
@indexer(IOrganization)
def organization_searchable_text(obj):
return ' '.join(obj.get_organizations_titles())
return u' '.join(obj.get_organizations_titles())
@indexer(IHeldPosition)
@ -18,4 +18,4 @@ def held_position_searchable_text(obj):
indexed_fields.append(position.title)
organization = obj.get_organization()
indexed_fields.extend(organization.get_organizations_titles())
return ' '.join(indexed_fields)
return u' '.join(indexed_fields)

View File

@ -108,39 +108,39 @@ class TestOrganization(TestContentTypes):
def test_get_organizations_titles(self):
corpsa_titles = self.corpsa.get_organizations_titles()
self.assertIn('Armée de terre', corpsa_titles)
self.assertIn('Corps A', corpsa_titles)
self.assertIn(u'Armée de terre', corpsa_titles)
self.assertIn(u'Corps A', corpsa_titles)
self.assertEquals(len(corpsa_titles), 2)
division_alpha_titles = self.divisionalpha.get_organizations_titles()
self.assertIn('Armée de terre', division_alpha_titles)
self.assertIn('Corps A', division_alpha_titles)
self.assertIn('Division Alpha', division_alpha_titles)
self.assertIn(u'Armée de terre', division_alpha_titles)
self.assertIn(u'Corps A', division_alpha_titles)
self.assertIn(u'Division Alpha', division_alpha_titles)
self.assertEquals(len(division_alpha_titles), 3)
brigadelh_titles = self.brigadelh.get_organizations_titles()
self.assertIn('Armée de terre', brigadelh_titles)
self.assertIn('Corps A', brigadelh_titles)
self.assertIn('Division Alpha', brigadelh_titles)
self.assertIn('Régiment H', brigadelh_titles)
self.assertIn('Brigade LH', brigadelh_titles)
self.assertIn(u'Armée de terre', brigadelh_titles)
self.assertIn(u'Corps A', brigadelh_titles)
self.assertIn(u'Division Alpha', brigadelh_titles)
self.assertIn(u'Régiment H', brigadelh_titles)
self.assertIn(u'Brigade LH', brigadelh_titles)
self.assertEquals(len(brigadelh_titles), 5)
brigadelh_titles = self.brigadelh.get_organizations_titles(first_index=2)
self.assertIn('Division Alpha', brigadelh_titles)
self.assertIn('Régiment H', brigadelh_titles)
self.assertIn('Brigade LH', brigadelh_titles)
self.assertIn(u'Division Alpha', brigadelh_titles)
self.assertIn(u'Régiment H', brigadelh_titles)
self.assertIn(u'Brigade LH', brigadelh_titles)
self.assertEquals(len(brigadelh_titles), 3)
def test_get_full_title(self):
self.assertEqual(self.armeedeterre.get_full_title(),
"Armée de terre")
u"Armée de terre")
self.assertEqual(self.brigadelh.get_full_title(),
"Armée de terre / Corps A / Division Alpha / Régiment H / Brigade LH")
self.assertEqual(self.brigadelh.get_full_title(separator=' - '),
"Armée de terre - Corps A - Division Alpha - Régiment H - Brigade LH")
self.assertEqual(self.brigadelh.get_full_title(separator=' - ', first_index=2),
"Division Alpha - Régiment H - Brigade LH")
u"Armée de terre / Corps A / Division Alpha / Régiment H / Brigade LH")
self.assertEqual(self.brigadelh.get_full_title(separator=u' - '),
u"Armée de terre - Corps A - Division Alpha - Régiment H - Brigade LH")
self.assertEqual(self.brigadelh.get_full_title(separator=u' - ', first_index=2),
u"Division Alpha - Régiment H - Brigade LH")
class TestPosition(TestContentTypes):

View File

@ -1,27 +1,5 @@
[buildout]
extends =
https://raw.github.com/collective/buildout.plonetest/master/travis-4.3.x.cfg
base.cfg
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
parts = download install test

View File

@ -1,14 +1,2 @@
[versions]
Pillow = 1.7.8
collective.recipe.cmd = 0.6
decorator = 3.4.0
ecreall.helpers.testing = 1.3
ecreall.helpers.upgrade = 1.1.1
hexagonit.recipe.download = 1.6
ipdb = 0.7
ipython = 0.13.1
plone.api = 1.0.0-rc.1
six = 1.3.0
vobject = 0.8.1c
zc.buildout = 2.1.0
zope.schema = 4.2.2