diff options
Diffstat (limited to 'src/test_setup.py')
| -rw-r--r-- | src/test_setup.py | 37 | 
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/  | 
