Commit e5e37d72 authored by Hanno Schlichting's avatar Hanno Schlichting

Merge pull request #23 from buildout/windows

I don't have any Windows VM anymore, so I didn't run the tests there. But the diff looks good and the tests continue to pass on my Mac. So I'll merge this as-is.
parents 73b3b3b2 66ae822d
......@@ -98,7 +98,6 @@ if find_links:
distribute_path = ws.find(
pkg_resources.Requirement.parse('distribute')).location
env = dict(os.environ, PYTHONPATH=distribute_path)
requirement = 'zc.buildout'
version = options.version
......@@ -135,7 +134,7 @@ if version:
cmd.append(requirement)
import subprocess
if subprocess.call(cmd, env=env) != 0:
if subprocess.call(cmd, env=dict(os.environ, PYTHONPATH=distribute_path)) != 0:
raise Exception(
"Failed to execute command:\n%s",
repr(cmd)[1:-1])
......
......@@ -10,6 +10,7 @@ zope.exceptions = 4.0.1
[py]
recipe = zc.recipe.egg
eggs = zc.buildout
zc.recipe.egg
zope.testing
interpreter = py
......
......@@ -53,11 +53,10 @@ import pkg_resources
######################################################################
# Install buildout
if subprocess.call(
[sys.executable] +
['setup.py', '-q', 'develop', '-m', '-x', '-d', 'develop-eggs'],
env = {'PYTHONPATH': os.path.dirname(pkg_resources.__file__)}):
env=dict(os.environ, PYTHONPATH=os.path.dirname(pkg_resources.__file__))):
raise RuntimeError("buildout build failed.")
pkg_resources.working_set.add_entry('src')
......
......@@ -393,8 +393,10 @@ class Buildout(DictMixin):
sep = re.compile(r'[\\/]')
if args:
eggs = '\n '.join(a for a in args if not sep.search(a))
sepsub = os.path.sep == '/' and '/' or re.escape(os.path.sep)
paths = '\n '.join(
sep.sub(os.path.sep, a) for a in args if sep.search(a))
sep.sub(sepsub, a)
for a in args if sep.search(a))
f.write('[buildout]\n'
'parts = py\n'
'\n'
......
......@@ -2575,10 +2575,8 @@ or paths to use:
>>> cd(sample_bootstrapped)
>>> remove('setup.cfg')
>>> remove('bin', 'buildout')
>>> print_(system(buildout + ' -csetup.cfg init demo other ./src'), end='')
Creating '/sample-bootstrapped/setup.cfg'.
Generated script '/sample-bootstrapped/bin/buildout'.
Getting distribution for 'zc.recipe.egg'.
Got zc.recipe.egg 1.3.3dev.
Installing py.
......
......@@ -181,7 +181,7 @@ class Download(object):
self.logger.info('Downloading %s' % url)
handle, tmp_path = tempfile.mkstemp(prefix='buildout-')
try:
os.close(handle)
try:
tmp_path, headers = urlretrieve(url, tmp_path)
if not check_md5sum(tmp_path, md5sum):
......@@ -195,8 +195,6 @@ class Download(object):
except Exception:
os.remove(tmp_path)
raise
finally:
os.close(handle)
if path:
shutil.move(tmp_path, path)
......
......@@ -94,6 +94,8 @@ def _get_index(index_url, find_links, allow_hosts=('*',)):
if index_url is None:
index_url = default_index_url
if index_url.startswith('file://'):
index_url = index_url[7:]
index = AllowHostsPackageIndex(index_url, hosts=allow_hosts)
if find_links:
......@@ -433,6 +435,7 @@ class Installer:
# Retrieve the dist:
if avail is None:
self._index.obtain(requirement)
raise MissingDistribution(requirement, ws)
# We may overwrite distributions, so clear importer
......@@ -1049,7 +1052,10 @@ def _create_script(contents, dest):
if changed:
open(dest, 'w').write(contents)
logger.info("Generated script %r.", script)
logger.info(
"Generated script %r.",
# Normalize for windows
script.endswith('-script.py') and script[:-10] or script)
try:
os.chmod(dest, 493) # 0755
......
......@@ -503,3 +503,9 @@ normalize_exception_type_for_python_2_and_3 = (
re.compile(r'^(\w+\.)*([A-Z][A-Za-z0-9]+Error: )'),
'\2')
not_found = (re.compile(r'Not found: [^\n]+/\w+/\r?\n'), '')
ignore_not_upgrading = (
re.compile(
'Not upgrading because not running a local buildout command.\n'
), '')
......@@ -2912,6 +2912,7 @@ def test_suite():
zc.buildout.testing.normalize_endings,
zc.buildout.testing.normalize_script,
zc.buildout.testing.normalize_egg_py,
zc.buildout.testing.not_found,
(re.compile('__buildout_signature__ = recipes-\S+'),
'__buildout_signature__ = recipes-SSSSSSSSSSS'),
(re.compile('executable = [\S ]+python\S*', re.I),
......@@ -2945,6 +2946,7 @@ def test_suite():
zc.buildout.testing.normalize_endings,
zc.buildout.testing.normalize_script,
zc.buildout.testing.normalize_egg_py,
zc.buildout.testing.not_found,
(re.compile('__buildout_signature__ = recipes-\S+'),
'__buildout_signature__ = recipes-SSSSSSSSSSS'),
(re.compile('[-d] distribute-\S+[.]egg'), 'distribute.egg'),
......@@ -2974,6 +2976,7 @@ def test_suite():
zc.buildout.testing.normalize_path,
zc.buildout.testing.normalize_endings,
zc.buildout.testing.normalize_exception_type_for_python_2_and_3,
zc.buildout.testing.not_found,
(re.compile('zc.buildout.buildout.MissingOption'),
'MissingOption'),
(re.compile(r'\S+buildout.py'), 'buildout.py'),
......@@ -2994,6 +2997,7 @@ def test_suite():
zc.buildout.testing.normalize_endings,
zc.buildout.testing.normalize_script,
zc.buildout.testing.normalize_egg_py,
zc.buildout.testing.not_found,
normalize_bang,
normalize_S,
(re.compile('99[.]99'), 'NINETYNINE.NINETYNINE'),
......@@ -3010,20 +3014,25 @@ def test_suite():
setUp=easy_install_SetUp,
tearDown=zc.buildout.testing.buildoutTearDown,
checker=renormalizing.RENormalizing([
zc.buildout.testing.normalize_script,
zc.buildout.testing.normalize_path,
zc.buildout.testing.normalize_endings,
zc.buildout.testing.normalize_script,
zc.buildout.testing.normalize_egg_py,
zc.buildout.testing.normalize_exception_type_for_python_2_and_3,
zc.buildout.testing.not_found,
normalize_bang,
normalize_S,
(re.compile('[-d] distribute-\S+[.]egg'), 'distribute.egg'),
(re.compile(r'\\[\\]?'), '/'),
(re.compile('(\n?)- ([a-zA-Z_.-]+)\n- \\2.exe\n'),
'\\1- \\2\n'),
]+(sys.version_info < (2, 5) and [
(re.compile('.*No module named runpy.*', re.S), ''),
(re.compile('.*usage: pdb.py scriptfile .*', re.S), ''),
(re.compile('.*Error: what does not exist.*', re.S), ''),
] or [])),
),
doctest.DocFileSuite(
......@@ -3033,11 +3042,13 @@ def test_suite():
optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS,
checker=renormalizing.RENormalizing([
zc.buildout.testing.normalize_exception_type_for_python_2_and_3,
zc.buildout.testing.not_found,
(re.compile(' at -?0x[^>]+'), '<MEM ADDRESS>'),
(re.compile('http://localhost:[0-9]{4,5}/'),
'http://localhost/'),
(re.compile('[0-9a-f]{32}'), '<MD5 CHECKSUM>'),
zc.buildout.testing.normalize_path,
zc.buildout.testing.ignore_not_upgrading,
]),
),
......@@ -3050,6 +3061,7 @@ def test_suite():
zc.buildout.testing.normalize_script,
zc.buildout.testing.normalize_egg_py,
zc.buildout.testing.normalize___pycache__,
zc.buildout.testing.not_found,
(re.compile(r'^(\w+\.)*(Missing\w+: )'), '\2'),
(re.compile("buildout: Running \S*setup.py"),
'buildout: Running setup.py'),
......@@ -3086,6 +3098,7 @@ def test_suite():
zc.buildout.testing.normalize_endings,
zc.buildout.testing.normalize_script,
zc.buildout.testing.normalize_egg_py,
zc.buildout.testing.not_found,
(re.compile('__buildout_signature__ = recipes-\S+'),
'__buildout_signature__ = recipes-SSSSSSSSSSS'),
(re.compile('[-d] distribute-\S+[.]egg'), 'distribute.egg'),
......@@ -3120,6 +3133,7 @@ def test_suite():
zc.buildout.testing.normalize_path,
zc.buildout.testing.normalize_endings,
zc.buildout.testing.normalize_script,
zc.buildout.testing.not_found,
normalize_bang,
(re.compile('Downloading.*distribute.*egg\n'), ''),
]),
......
......@@ -48,6 +48,7 @@ def test_suite():
zc.buildout.testing.normalize_egg_py,
zc.buildout.tests.normalize_bang,
zc.buildout.tests.normalize_S,
zc.buildout.testing.not_found,
(re.compile('[d-] zc.buildout(-\S+)?[.]egg(-link)?'),
'zc.buildout.egg'),
(re.compile('[d-] distribute-[^-]+-'), 'distribute-X-'),
......@@ -61,6 +62,7 @@ def test_suite():
checker=renormalizing.RENormalizing([
zc.buildout.testing.normalize_path,
zc.buildout.testing.normalize_endings,
zc.buildout.testing.not_found,
(re.compile('__buildout_signature__ = '
'sample-\S+\s+'
'zc.recipe.egg-\S+\s+'
......@@ -80,6 +82,7 @@ def test_suite():
checker=renormalizing.RENormalizing([
zc.buildout.testing.normalize_path,
zc.buildout.testing.normalize_endings,
zc.buildout.testing.not_found,
(re.compile("(d ((ext)?demo(needed)?|other)"
"-\d[.]\d-py)\d[.]\d(-\S+)?[.]egg"),
'\\1V.V.egg'),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment