bpo-22831: Use "with" to avoid possible fd leaks in tests (part 2). (… · python/cpython@5b10b98 (original) (raw)
`@@ -205,31 +205,28 @@ def make_script(script_dir, script_basename, source, omit_suffix=False):
`
205
205
`script_filename += os.extsep + 'py'
`
206
206
`script_name = os.path.join(script_dir, script_filename)
`
207
207
`# The script should be encoded to UTF-8, the default string encoding
`
208
``
`-
script_file = open(script_name, 'w', encoding='utf-8')
`
209
``
`-
script_file.write(source)
`
210
``
`-
script_file.close()
`
``
208
`+
with open(script_name, 'w', encoding='utf-8') as script_file:
`
``
209
`+
script_file.write(source)
`
211
210
`importlib.invalidate_caches()
`
212
211
`return script_name
`
213
212
``
214
213
`def make_zip_script(zip_dir, zip_basename, script_name, name_in_zip=None):
`
215
214
`zip_filename = zip_basename+os.extsep+'zip'
`
216
215
`zip_name = os.path.join(zip_dir, zip_filename)
`
217
``
`-
zip_file = zipfile.ZipFile(zip_name, 'w')
`
218
``
`-
if name_in_zip is None:
`
219
``
`-
parts = script_name.split(os.sep)
`
220
``
`-
if len(parts) >= 2 and parts[-2] == 'pycache':
`
221
``
`-
legacy_pyc = make_legacy_pyc(source_from_cache(script_name))
`
222
``
`-
name_in_zip = os.path.basename(legacy_pyc)
`
223
``
`-
script_name = legacy_pyc
`
224
``
`-
else:
`
225
``
`-
name_in_zip = os.path.basename(script_name)
`
226
``
`-
zip_file.write(script_name, name_in_zip)
`
227
``
`-
zip_file.close()
`
``
216
`+
with zipfile.ZipFile(zip_name, 'w') as zip_file:
`
``
217
`+
if name_in_zip is None:
`
``
218
`+
parts = script_name.split(os.sep)
`
``
219
`+
if len(parts) >= 2 and parts[-2] == 'pycache':
`
``
220
`+
legacy_pyc = make_legacy_pyc(source_from_cache(script_name))
`
``
221
`+
name_in_zip = os.path.basename(legacy_pyc)
`
``
222
`+
script_name = legacy_pyc
`
``
223
`+
else:
`
``
224
`+
name_in_zip = os.path.basename(script_name)
`
``
225
`+
zip_file.write(script_name, name_in_zip)
`
228
226
`#if test.support.verbose:
`
229
``
`-
zip_file = zipfile.ZipFile(zip_name, 'r')
`
230
``
`-
print 'Contents of %r:' % zip_name
`
231
``
`-
zip_file.printdir()
`
232
``
`-
zip_file.close()
`
``
227
`+
with zipfile.ZipFile(zip_name, 'r') as zip_file:
`
``
228
`+
print 'Contents of %r:' % zip_name
`
``
229
`+
zip_file.printdir()
`
233
230
`return zip_name, os.path.join(zip_name, name_in_zip)
`
234
231
``
235
232
`def make_pkg(pkg_dir, init_source=''):
`
`@@ -252,17 +249,15 @@ def make_zip_pkg(zip_dir, zip_basename, pkg_name, script_basename,
`
252
249
`script_name_in_zip = os.path.join(pkg_names[-1], os.path.basename(script_name))
`
253
250
`zip_filename = zip_basename+os.extsep+'zip'
`
254
251
`zip_name = os.path.join(zip_dir, zip_filename)
`
255
``
`-
zip_file = zipfile.ZipFile(zip_name, 'w')
`
256
``
`-
for name in pkg_names:
`
257
``
`-
init_name_in_zip = os.path.join(name, init_basename)
`
258
``
`-
zip_file.write(init_name, init_name_in_zip)
`
259
``
`-
zip_file.write(script_name, script_name_in_zip)
`
260
``
`-
zip_file.close()
`
``
252
`+
with zipfile.ZipFile(zip_name, 'w') as zip_file:
`
``
253
`+
for name in pkg_names:
`
``
254
`+
init_name_in_zip = os.path.join(name, init_basename)
`
``
255
`+
zip_file.write(init_name, init_name_in_zip)
`
``
256
`+
zip_file.write(script_name, script_name_in_zip)
`
261
257
`for name in unlink:
`
262
258
`os.unlink(name)
`
263
259
`#if test.support.verbose:
`
264
``
`-
zip_file = zipfile.ZipFile(zip_name, 'r')
`
265
``
`-
print 'Contents of %r:' % zip_name
`
266
``
`-
zip_file.printdir()
`
267
``
`-
zip_file.close()
`
``
260
`+
with zipfile.ZipFile(zip_name, 'r') as zip_file:
`
``
261
`+
print 'Contents of %r:' % zip_name
`
``
262
`+
zip_file.printdir()
`
268
263
`return zip_name, os.path.join(zip_name, script_name_in_zip)
`