Currently, running gcc-changelog's unit tests may clutter the output
with tons of warnings such as:

    .../contrib/gcc-changelog/git_email.py:40: ResourceWarning: unclosed
    file <_io.TextIOWrapper name='/tmp/tmpt5okd4qp.patch' mode='r'
    encoding='UTF-8'>
      lines = open(self.filename).read().splitlines()
    ResourceWarning: Enable tracemalloc to get the object allocation
    traceback

This commit fixes these leaks, which restores a clean testsuite output.

contrib/

        * gcc-changelog/git_email.py: Close file objects after use.
        * gcc-changelog/test_email.py: Likewise.
---
 contrib/gcc-changelog/git_email.py          | 3 ++-
 contrib/gcc-changelog/git_update_version.py | 6 ++++--
 contrib/gcc-changelog/test_email.py         | 3 ++-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/contrib/gcc-changelog/git_email.py 
b/contrib/gcc-changelog/git_email.py
index e1d6b70e80c..8c9df293a66 100755
--- a/contrib/gcc-changelog/git_email.py
+++ b/contrib/gcc-changelog/git_email.py
@@ -37,7 +37,8 @@ class GitEmail(GitCommit):
         date = None
         author = None
 
-        lines = open(self.filename).read().splitlines()
+        with open(self.filename, 'r') as f:
+            lines = f.read().splitlines()
         lines = list(takewhile(lambda line: line != '---', lines))
         for line in lines:
             if line.startswith(DATE_PREFIX):
diff --git a/contrib/gcc-changelog/git_update_version.py 
b/contrib/gcc-changelog/git_update_version.py
index 3dcc5625eda..6b6ccf68a5e 100755
--- a/contrib/gcc-changelog/git_update_version.py
+++ b/contrib/gcc-changelog/git_update_version.py
@@ -28,7 +28,8 @@ current_timestamp = 
datetime.datetime.now().strftime('%Y%m%d\n')
 
 
 def read_timestamp(path):
-    return open(path).read()
+    with open(path) as f:
+        return f.read()
 
 
 def prepend_to_changelog_files(repo, folder, git_commit, add_to_git):
@@ -40,7 +41,8 @@ def prepend_to_changelog_files(repo, folder, git_commit, 
add_to_git):
         full_path = os.path.join(folder, entry, 'ChangeLog')
         print('writting to %s' % full_path)
         if os.path.exists(full_path):
-            content = open(full_path).read()
+            with open(full_path) as f:
+                content = f.read()
         else:
             content = ''
         with open(full_path, 'w+') as f:
diff --git a/contrib/gcc-changelog/test_email.py 
b/contrib/gcc-changelog/test_email.py
index bf028a3d40a..1379502e755 100755
--- a/contrib/gcc-changelog/test_email.py
+++ b/contrib/gcc-changelog/test_email.py
@@ -33,7 +33,8 @@ class TestGccChangelog(unittest.TestCase):
 
         filename = None
         patch_lines = []
-        lines = open(os.path.join(script_path, 'test_patches.txt')).read()
+        with open(os.path.join(script_path, 'test_patches.txt')) as f:
+            lines = f.read()
         for line in lines.split('\n'):
             if line.startswith('==='):
                 if patch_lines:
-- 
2.20.1

Reply via email to