diff options
author | Mats Wichmann <mats@linux.com> | 2019-03-02 17:45:34 (GMT) |
---|---|---|
committer | Mats Wichmann <mats@linux.com> | 2019-03-02 17:45:34 (GMT) |
commit | 4d40813e369694fbe3cfe5488178bbb722d67319 (patch) | |
tree | d58d6b184d4ca4fc84612c02091fce35dc6a9f90 /test/CacheDir | |
parent | fedd3ecc0921b9a4ec8dda6aba3f2de726f79345 (diff) | |
download | SCons-4d40813e369694fbe3cfe5488178bbb722d67319.zip SCons-4d40813e369694fbe3cfe5488178bbb722d67319.tar.gz SCons-4d40813e369694fbe3cfe5488178bbb722d67319.tar.bz2 |
[PYPY3] [PY 3.8] CacheDir tests use context managers
Python 3.8 complains about unclosed files on nearly all of the
CacheDir tests. PyPy3 fails 8 of the 20 tests for the same reason,
though since it's based on an earlier version of Python (3.5 at the
moment) it does not display the resourcewarning messages.
Update sequences of open().write() which are the primary problem
area to use context managers for automatic closing, and for
consistency, the rest of the open/read/write stuff as well.
With this change, all these tests pass in PyPy3. Python 3.8 does
not, as it is spewing other warning messages which also end up in
the stderr, which is fatal to this set of tests, but it has
quieted the warnings from the CacheDir tests themselves.
Signed-off-by: Mats Wichmann <mats@linux.com>
Diffstat (limited to 'test/CacheDir')
-rw-r--r-- | test/CacheDir/CacheDir.py | 11 | ||||
-rw-r--r-- | test/CacheDir/SideEffect.py | 7 | ||||
-rw-r--r-- | test/CacheDir/VariantDir.py | 11 | ||||
-rw-r--r-- | test/CacheDir/debug.py | 11 | ||||
-rw-r--r-- | test/CacheDir/environment.py | 11 | ||||
-rw-r--r-- | test/CacheDir/multi-targets.py | 6 | ||||
-rw-r--r-- | test/CacheDir/multiple-targets.py | 6 | ||||
-rw-r--r-- | test/CacheDir/option--cd.py | 11 | ||||
-rw-r--r-- | test/CacheDir/option--cf.py | 11 | ||||
-rw-r--r-- | test/CacheDir/option--cr.py | 11 | ||||
-rw-r--r-- | test/CacheDir/option--cs.py | 22 | ||||
-rw-r--r-- | test/CacheDir/scanner-target.py | 5 | ||||
-rw-r--r-- | test/CacheDir/source-scanner.py | 5 |
13 files changed, 70 insertions, 58 deletions
diff --git a/test/CacheDir/CacheDir.py b/test/CacheDir/CacheDir.py index 3d2c3b5..3b3e72b 100644 --- a/test/CacheDir/CacheDir.py +++ b/test/CacheDir/CacheDir.py @@ -53,11 +53,12 @@ SConscript('SConscript') test.write(['src', 'SConscript'], """\ def cat(env, source, target): target = str(target[0]) - open('cat.out', 'a').write(target + "\\n") - f = open(target, "w") - for src in source: - f.write(open(str(src), "r").read()) - f.close() + with open('cat.out', 'a') as f: + f.write(target + "\\n") + with open(target, "w") as f: + for src in source: + with open(str(src), "r") as f2: + f.write(f2.read()) env = Environment(tools=[], BUILDERS={'Cat':Builder(action=cat)}) env.Cat('aaa.out', 'aaa.in') env.Cat('bbb.out', 'bbb.in') diff --git a/test/CacheDir/SideEffect.py b/test/CacheDir/SideEffect.py index 4eae4c3..3242e78 100644 --- a/test/CacheDir/SideEffect.py +++ b/test/CacheDir/SideEffect.py @@ -39,15 +39,16 @@ cache = test.workpath('cache') test.write(['work', 'SConstruct'], """\ DefaultEnvironment(tools=[]) def copy(source, target): - open(target, "w").write(open(source, "r").read()) + with open(target, "w") as f, open(source, "r") as f2: + f.write(f2.read()) def build(env, source, target): s = str(source[0]) t = str(target[0]) copy(s, t) if target[0].side_effects: - side_effect = open(str(target[0].side_effects[0]), "a") - side_effect.write(s + ' -> ' + t + '\\n') + with open(str(target[0].side_effects[0]), "a") as side_effect: + side_effect.write(s + ' -> ' + t + '\\n') CacheDir(r'%(cache)s') diff --git a/test/CacheDir/VariantDir.py b/test/CacheDir/VariantDir.py index 58918be..2c3d73f 100644 --- a/test/CacheDir/VariantDir.py +++ b/test/CacheDir/VariantDir.py @@ -42,11 +42,12 @@ cat_out = test.workpath('cat.out') test.write(['src', 'SConscript'], """\ def cat(env, source, target): target = str(target[0]) - open('cat.out', 'a').write(target + "\\n") - f = open(target, "w") - for src in source: - f.write(open(str(src), "r").read()) - f.close() + with open('cat.out', 'a') as f: + f.write(target + "\\n") + with open(target, "w") as f: + for src in source: + with open(str(src), "r") as f2: + f.write(f2.read()) env = Environment(tools=[], BUILDERS={'Cat':Builder(action=cat)}) env.Cat('aaa.out', 'aaa.in') env.Cat('bbb.out', 'bbb.in') diff --git a/test/CacheDir/debug.py b/test/CacheDir/debug.py index 7e08e0b..16f4702 100644 --- a/test/CacheDir/debug.py +++ b/test/CacheDir/debug.py @@ -53,11 +53,12 @@ SConscript('SConscript') test.write(['src', 'SConscript'], """\ def cat(env, source, target): target = str(target[0]) - open('cat.out', 'a').write(target + "\\n") - f = open(target, "w") - for src in source: - f.write(open(str(src), "r").read()) - f.close() + with open('cat.out', 'a') as f: + f.write(target + "\\n") + with open(target, "w") as f: + for src in source: + with open(str(src), "r") as f2: + f.write(f2.read()) env = Environment(tools=[], BUILDERS={'Cat':Builder(action=cat)}) env.Cat('aaa.out', 'aaa.in') env.Cat('bbb.out', 'bbb.in') diff --git a/test/CacheDir/environment.py b/test/CacheDir/environment.py index 5d8eb6c..1024ce0 100644 --- a/test/CacheDir/environment.py +++ b/test/CacheDir/environment.py @@ -54,11 +54,12 @@ SConscript('SConscript') test.write(['src', 'SConscript'], """\ def cat(env, source, target): target = str(target[0]) - open('cat.out', 'a').write(target + "\\n") - f = open(target, "w") - for src in source: - f.write(open(str(src), "r").read()) - f.close() + with open('cat.out', 'a') as f: + f.write(target + "\\n") + with open(target, "w") as f: + for src in source: + with open(str(src), "r") as f2: + f.write(f2.read()) env_cache = Environment(tools=[], BUILDERS={'Cat':Builder(action=cat)}) env_nocache = env_cache.Clone() env_nocache.CacheDir(None) diff --git a/test/CacheDir/multi-targets.py b/test/CacheDir/multi-targets.py index 7977ba0..fa6e8d1 100644 --- a/test/CacheDir/multi-targets.py +++ b/test/CacheDir/multi-targets.py @@ -42,8 +42,10 @@ multiple_foo = test.workpath('multiple', 'foo') test.write(['multiple', 'SConstruct'], """\ DefaultEnvironment(tools=[]) def touch(env, source, target): - open('foo', 'w').write("") - open('bar', 'w').write("") + with open('foo', 'w') as f: + f.write("") + with open('bar', 'w') as f: + f.write("") CacheDir(r'%(cache)s') env = Environment(tools=[]) env.Command(['foo', 'bar'], ['input'], touch) diff --git a/test/CacheDir/multiple-targets.py b/test/CacheDir/multiple-targets.py index 9f94e4c..99ab8da 100644 --- a/test/CacheDir/multiple-targets.py +++ b/test/CacheDir/multiple-targets.py @@ -40,8 +40,10 @@ test.subdir('cache') test.write('SConstruct', """\ DefaultEnvironment(tools=[]) def touch(env, source, target): - open('foo', 'w').write("") - open('bar', 'w').write("") + with open('foo', 'w') as f: + f.write("") + with open('bar', 'w') as f: + f.write("") CacheDir(r'%s') env = Environment(tools=[], ) env.Command(['foo', 'bar'], ['input'], touch) diff --git a/test/CacheDir/option--cd.py b/test/CacheDir/option--cd.py index 20d1184..1620858 100644 --- a/test/CacheDir/option--cd.py +++ b/test/CacheDir/option--cd.py @@ -42,11 +42,12 @@ test.write(['src', 'SConstruct'], """ DefaultEnvironment(tools=[]) def cat(env, source, target): target = str(target[0]) - open('cat.out', 'a').write(target + "\\n") - f = open(target, "w") - for src in source: - f.write(open(str(src), "r").read()) - f.close() + with open('cat.out', 'a') as f: + f.write(target + "\\n") + with open(target, "w") as f: + for src in source: + with open(str(src), "r") as f2: + f.write(f2.read()) env = Environment(tools=[], BUILDERS={'Cat':Builder(action=cat)}) env.Cat('aaa.out', 'aaa.in') env.Cat('bbb.out', 'bbb.in') diff --git a/test/CacheDir/option--cf.py b/test/CacheDir/option--cf.py index 5e823ae..2d51e03 100644 --- a/test/CacheDir/option--cf.py +++ b/test/CacheDir/option--cf.py @@ -41,11 +41,12 @@ test.write(['src', 'SConstruct'], """ DefaultEnvironment(tools=[]) def cat(env, source, target): target = str(target[0]) - open('cat.out', 'a').write(target + "\\n") - f = open(target, "w") - for src in source: - f.write(open(str(src), "r").read()) - f.close() + with open('cat.out', 'a') as f: + f.write(target + "\\n") + with open(target, "w") as f: + for src in source: + with open(str(src), "r") as f2: + f.write(f2.read()) env = Environment(tools=[], BUILDERS={'Cat':Builder(action=cat)}) env.Cat('aaa.out', 'aaa.in') env.Cat('bbb.out', 'bbb.in') diff --git a/test/CacheDir/option--cr.py b/test/CacheDir/option--cr.py index 4ed587c..b7696c5 100644 --- a/test/CacheDir/option--cr.py +++ b/test/CacheDir/option--cr.py @@ -42,11 +42,12 @@ test.write(['src', 'SConstruct'], """ DefaultEnvironment(tools=[]) def cat(env, source, target): target = str(target[0]) - open('cat.out', 'a').write(target + "\\n") - f = open(target, "w") - for src in source: - f.write(open(str(src), "r").read()) - f.close() + with open('cat.out', 'a') as f: + f.write(target + "\\n") + with open(target, "w") as f: + for src in source: + with open(str(src), "r") as f2: + f.write(f2.read()) env = Environment(tools=[], BUILDERS={'Cat':Builder(action=cat)}) env.Cat('aaa.out', 'aaa.in') env.Cat('bbb.out', 'bbb.in') diff --git a/test/CacheDir/option--cs.py b/test/CacheDir/option--cs.py index b73fb70..feb89bd 100644 --- a/test/CacheDir/option--cs.py +++ b/test/CacheDir/option--cs.py @@ -45,11 +45,12 @@ test.subdir('cache', 'src1', 'src2') test.write(['src1', 'build.py'], r""" import sys -open('cat.out', 'a').write(sys.argv[1] + "\n") -file = open(sys.argv[1], 'w') -for src in sys.argv[2:]: - file.write(open(src, 'r').read()) -file.close() +with open('cat.out', 'a') as f: + f.write(sys.argv[1] + "\n") +with open(sys.argv[1], 'w') as f: + for src in sys.argv[2:]: + with open(src, 'r') as f2: + f.write(f2.read()) """) cache = test.workpath('cache') @@ -58,11 +59,12 @@ test.write(['src1', 'SConstruct'], """ DefaultEnvironment(tools=[]) def cat(env, source, target): target = str(target[0]) - open('cat.out', 'a').write(target + "\\n") - f = open(target, "w") - for src in source: - f.write(open(str(src), "r").read()) - f.close() + with open('cat.out', 'a') as f: + f.write(target + "\\n") + with open(target, "w") as f: + for src in source: + with open(str(src), "r") as f2: + f.write(f2.read()) env = Environment(tools=[], BUILDERS={'Internal':Builder(action=cat), 'External':Builder(action=r'%(_python_)s build.py $TARGET $SOURCES')}) diff --git a/test/CacheDir/scanner-target.py b/test/CacheDir/scanner-target.py index 7df9792..249e587 100644 --- a/test/CacheDir/scanner-target.py +++ b/test/CacheDir/scanner-target.py @@ -48,9 +48,8 @@ CacheDir(r'%s') def docopy(target,source,env): data = source[0].get_contents() - f = open(target[0].rfile().get_abspath(), "wb") - f.write(data) - f.close() + with open(target[0].rfile().get_abspath(), "wb") as f: + f.write(data) def sillyScanner(node, env, dirs): print('This is never called (unless we build file.out)') diff --git a/test/CacheDir/source-scanner.py b/test/CacheDir/source-scanner.py index f00360d..1c56499 100644 --- a/test/CacheDir/source-scanner.py +++ b/test/CacheDir/source-scanner.py @@ -50,9 +50,8 @@ CacheDir(r'%(cache)s') def docopy(target,source,env): data = source[0].get_contents() - f = open(target[0].rfile().get_abspath(), "wb") - f.write(data) - f.close() + with open(target[0].rfile().get_abspath(), "wb") as f: + f.write(data) def sillyScanner(node, env, dirs): print('This is never called (unless we build file.out)') |