Commit d5199b9d authored by Julien Muchembled's avatar Julien Muchembled

Add support for Python 3

parent 26f3d2e9
......@@ -73,7 +73,7 @@ class Recipe(object):
dependencies = []
for part in options.get('dependencies', '').split():
m = md5()
for (k, v) in self.buildout[part].iteritems():
for v in self.buildout[part].values():
m.update(v)
dependencies.append(m.hexdigest())
options['dependencies'] = ' '.join(dependencies)
......@@ -194,7 +194,7 @@ class Recipe(object):
elif retcode > 0:
log.error('Command failed with exit code %s: %s' % (retcode, args))
raise zc.buildout.UserError('System error')
except OSError, e:
except OSError as e:
log.error('Command failed: %s: %s' % (e, args))
raise zc.buildout.UserError('System error')
return files.splitlines()
......@@ -202,8 +202,8 @@ class Recipe(object):
def check_promises(self, log=None):
result = True
log = logging.getLogger(self.name)
for path in filter(None, self.options['promises'].splitlines()):
if not os.path.exists(path):
for path in self.options['promises'].splitlines():
if path and not os.path.exists(path):
result = False
log.warning('could not find promise "%s"' % path)
return result
......@@ -412,9 +412,9 @@ class Recipe(object):
st_mode = os.stat(f_abspath).st_mode
if not stat.S_ISREG(st_mode):
continue
with open(f_abspath) as f:
with open(f_abspath, 'rb') as f:
header = f.readline(128)
if header.startswith('#!') and header[-1] != '\n':
if header.startswith(b'#!') and header[-1] != b'\n':
os.rename(f_abspath, f_abspath + '.shebang')
with open(f_abspath, 'w') as f:
os.fchmod(f.fileno(), stat.S_IMODE(st_mode))
......
......@@ -135,8 +135,8 @@ class NonInformativeTests(unittest.TestCase):
def test_environment_restored_after_building_a_part(self):
# Make sure the test variables do not exist beforehand
self.failIf('HRC_FOO' in os.environ)
self.failIf('HRC_BAR' in os.environ)
self.assertFalse('HRC_FOO' in os.environ)
self.assertFalse('HRC_BAR' in os.environ)
# Place a sentinel value to make sure the original environment is
# maintained
os.environ['HRC_SENTINEL'] = 'sentinel'
......@@ -150,8 +150,8 @@ class NonInformativeTests(unittest.TestCase):
# Make sure the test variables are not kept in the environment after
# the part has been built.
self.failIf('HRC_FOO' in os.environ)
self.failIf('HRC_BAR' in os.environ)
self.assertFalse('HRC_FOO' in os.environ)
self.assertFalse('HRC_BAR' in os.environ)
# Make sure the sentinel value is still in the environment
self.assertEqual(os.environ.get('HRC_SENTINEL'), 'sentinel')
......@@ -224,7 +224,7 @@ class NonInformativeTests(unittest.TestCase):
url = '%s/testdata/package-0.0.0.tar.gz' % os.path.dirname(__file__)
file, is_temp = recipe.download_file(url)
self.assertFalse(is_temp)
self.assertEquals(file, url)
self.assertEqual(file, url)
url = 'ftp://ftp.gnu.org/welcome.msg'
file, is_temp = recipe.download_file(url)
......@@ -248,7 +248,7 @@ class NonInformativeTests(unittest.TestCase):
},
prefix=buildout_prefix
)
self.assertEquals(recipe.options.get('prefix'), buildout_prefix)
self.assertEqual(recipe.options.get('prefix'), buildout_prefix)
recipe = self.make_recipe({}, 'test', {
'url': 'file://%s/testdata/package-0.0.0.tar.gz' % os.path.dirname(__file__),
......@@ -256,7 +256,7 @@ class NonInformativeTests(unittest.TestCase):
},
prefix=buildout_prefix
)
self.assertEquals(recipe.options.get('prefix'), self.dir)
self.assertEqual(recipe.options.get('prefix'), self.dir)
def test_get_installed_files(self):
prefix = os.path.join(self.dir, 'test_parts/test_local')
......@@ -292,7 +292,8 @@ class NonInformativeTests(unittest.TestCase):
recipe.buildout_prefix = prefix
file_list = recipe.get_installed_files(ref_path)
installed_files.pop(2)
self.assertEquals(set([os.path.relpath(f, prefix) for f in file_list]), set(installed_files))
self.assertEqual(set(os.path.relpath(f, prefix) for f in file_list),
set(installed_files))
def test_honor_buidlout_keep_compile_directory(self):
buildout = {'keep-compile-dir' : 'true'}
......
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