summaryrefslogtreecommitdiff
path: root/src/test_setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/test_setup.py')
-rw-r--r--src/test_setup.py37
1 files changed, 21 insertions, 16 deletions
diff --git a/src/test_setup.py b/src/test_setup.py
index af8ed66..b540ab2 100644
--- a/src/test_setup.py
+++ b/src/test_setup.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright (c) 2001 - 2017 The SCons Foundation
+# Copyright (c) 2001 - 2019 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -23,7 +23,7 @@
#
from __future__ import print_function
-__revision__ = "src/test_setup.py rel_3.0.0:4395:8972f6a2f699 2017/09/18 12:59:24 bdbaddog"
+__revision__ = "src/test_setup.py e724ae812eb96f4858a132f5b8c769724744faf6 2019-07-21 00:04:47 bdeegan"
"""
Test how the setup.py script installs SCons.
@@ -176,21 +176,26 @@ tar_gz = os.path.join(cwd, 'build', 'dist', '%s.tar.gz' % scons_version)
zip = os.path.join(cwd, 'build', 'dist', '%s.zip' % scons_version)
if os.path.isfile(zip):
- try: import zipfile
- except ImportError: pass
+ try:
+ import zipfile
+ except ImportError:
+ pass
else:
- zf = zipfile.ZipFile(zip, 'r')
-
- for name in zf.namelist():
- dir = os.path.dirname(name)
- try: os.makedirs(dir)
- except: pass
- # if the file exists, then delete it before writing
- # to it so that we don't end up trying to write to a symlink:
- if os.path.isfile(name) or os.path.islink(name):
- os.unlink(name)
- if not os.path.isdir(name):
- open(name, 'w').write(zf.read(name))
+ with zipfile.ZipFile(zip, 'r') as zf:
+
+ for name in zf.namelist():
+ dname = os.path.dirname(name)
+ try:
+ os.makedirs(dname)
+ except FileExistsError:
+ pass
+ # if the file exists, then delete it before writing
+ # to it so that we don't end up trying to write to a symlink:
+ if os.path.isfile(name) or os.path.islink(name):
+ os.unlink(name)
+ if not os.path.isdir(name):
+ with open(name, 'w') as ofp:
+ ofp.write(zf.read(name))
if not os.path.isdir(scons_version) and os.path.isfile(tar_gz):
# Unpack the .tar.gz file. This should create the scons_version/